Mon, Jan 10, 2022

2 PM – 5 PM EST (GMT-5)

Add to Calendar

Online Event

46
Registered

Registration

Details

This session will cover tips, tricks, tools, and techniques to make more effective and productive use of Python in research computing. It will cover aspects of Python in more detail than is typical in introductory treatments, with emphasis on best practices for making one’s code more “Pythonic”, on avoiding common pitfalls when using Python in research computing, and on understanding available tools within the base Python language and the broader Python ecosystem. An assortment of topics will be covered, including Python’s underlying object model, what decorators are and how they work, and useful modules and tools. The target audience is current users of Python who know the basics but would like to be more effective and professional in their Python code development. This session will be heavily hands-on.

Learning objectives:

Participants will come away with a stronger foundation of how Python works “under the hood” and of some best practices for Python programming, both in and out of scientific contexts.

Knowledge prerequisites:

Participants should have a fair amount of Python use under their belts, even if their Python knowledge is not “deep”. In other words, attendees should be comfortable with basics of Python syntax and constructs (e.g. how loops and if/else statements work, how to define functions, what lists/tuples/dictionaries are, how slices work, etc). This session is not appropriate for those without prior Python experience or prior programming experience.

Hardware/software prerequisites:

For the hands-on portions of this session, participants should install the Anaconda Python 3 distribution –" which includes Jupyter notebooks –" on their laptops in advance. Instructions can be found at https://researchcomputing.princeton.edu/learn/workshops-live-training/hardware-and-software-requirements-picscie-workshops Alternately, participants without Python 3 installed on their laptops who prefer to run Jupyter Notebooks remotely on one of Princeton’s systems can do so the “myadroit” web interface to the Adroit cluster. To access myadroit, you should first register for an account on Adroit ( as described here: https://researchcomputing.princeton.edu/systems/adroit) and then connect to “myadroit” and start a Jupyter session (as described here: https://github.com/PrincetonUniversity/hpc_beginning_workshop/tree/master/03_web_interface).

Session format:

Presentation, demo, and hands-on

What to expect:
Single workshop (one-off workshop –" 2 hours total)

Meet the facilitator:
Henry Schreiner is a Computational Physicist / Research Software Engineer in High Energy Physics. He received his Ph.D. in experimental high-energy physics from the University of Texas at Austin. Henry is currently funded by the IRIS-HEP project, developing tools for the next era of the Large Hadron Collider (LHC). He is an admin of Scikit-HEP, and also the lead web developer for IRIS-HEP and Scikit-HEP. Henry is also a maintainer/core developer for pypa/build, scikit-build, cibuildwheel, pybind11, and plumbum for Python, and primary author of CLI11 for C++. He is also the author of a variety of CMake, GPU, and Python training courses and classes.

To request accommodations for this event, please contact the workshop or event facilitator at least 3 working days prior to the event.

Hosted By

| View More Events
Co-hosted with: PICSciE/Research Computing

Contact the organizers