pyvideo.org: Videos of Aron Ahmadiahttp://www.pyvideo.org/speaker/575/aron-ahmadia/rssen-usWed, 09 Jul 2014 00:00:00 -0500500Reproducible, Relocatable, Customizable Builds and Packaging with HashDist Part1http://www.pyvideo.org/video/2724/reproducible-relocatable-customizable-builds-an<p>Abstract</p>
This talk introduces HashDist, a critical component of the scientific software development workflow. HashDist enables highly customizable, source-driven, and reproducible builds for scientific software stacks. HashDist builds can be made relocatable, allowing the easy redistribution of binaries on all three major operating systems as well as cloud and supercomputing platforms.
<p>Description</p>
Developing scientific software is a continuous balance between not reinventing the wheel and getting fragile codes to interoperate with one another. Binary software distributions such as Anaconda provide a robust starting point for many scientific software packages, but this solution alone is insufficient for many scientific software developers. HashDist provides a critical component of the development workflow, enabling highly customizable, source-driven, and reproducible builds for scientific software stacks, available from both the IPython Notebook and the command line.
To address these issues, the Coastal and Hydraulics Laboratory at the US Army Engineer Research and Development Center has funded the development of HashDist in collaboration with Simula Research Laboratories and the University of Texas at Austin. HashDist is motivated by a functional approach to package build management, and features intelligent caching of sources and builds, parametrized build specifications, and the ability to interoperate with system compilers and packages. HashDist enables the easy specification of "software stacks", which allow both the novice user to install a default environment and the advanced user to configure every aspect of their build in a modular fashion. As an advanced feature, HashDist builds can be made relocatable, allowing the easy redistribution of binaries on all three major operating systems as well as cloud, and supercomputing platforms. As a final benefit, all HashDist builds are reproducible, with a build hash specifying exactly how each component of the software stack was installed.
This talk will feature an introduction to the problem of packaging Python-based scientific software, a discussion of the basic tools available to scientific Python developers, and a detailed discussion and demonstration of the HashDist package build manager.
The HashDist documentation is available from: http://hashdist.readthedocs.org/en/latest/
HashDist is currently hosted at: https://github.com/hashdist/hashdistAndy Terrel,Aron Ahmadia,Chris Kees,Dag Sverre Seljebotn,Ondrej CertikWed, 09 Jul 2014 00:00:00 -0500http://www.pyvideo.org/video/2724/reproducible-relocatable-customizable-builds-anTeaching Numerical Methods with IPython Notebooks 2http://www.pyvideo.org/video/2746/teaching-numerical-methods-with-ipython-notebooks<p>Abstract</p>
This tutorial will give participants an introduction to the use of IPython notebooks in teaching numerical methods or scientific computing, at the level of an undergraduate or graduate university course. Prior familiarity with notebooks is not necessary. Participants will create an interactive notebook that explains and helps students to implement and explore a numerical algorithm.
<p>Description</p>
This tutorial is targeted to those who are or soon will be teaching numerical methods or scientific computing and are interested in using Python as the programming language for their course. The tutorial will be useful both to academics teaching university courses and those in industry who run training sessions. No prior knowledge of the IPython notebook is necessary, but participants should have some familiarity with Python, Numpy, and Matplotlib.
IPython notebooks are an excellent medium for teaching nuemrical methods since they can include both mathematical explanations and executable code in a single document. The tutorial will begin with an introduction to the IPython notebook, emphasizing how to overcome aspects that can be confusing to students. Next we will go over available free resources for
- ensuring that students have a suitable computing environment, using either a cloud platform or a packaged distribution
- distributing and collecting notebooks
- converting notebooks to other formats that may be useful in a course
We will also review a number of excellent existing resources containing IPython notebooks for numerical methods courses. Using these notebooks as examples, we will discuss how to design effective notebooks for teaching, including
- typesetting mathematical equations and expressions using LaTeX
- Formatting, referencing, and layout using Markdown
- inserting complete or partial code snippets
- embedding figures and other media
- embedding interactive widgets
We will briefly discuss different approaches to using IPython notebooks in a course, including their use as the basis for
- homework assignments
- short activities during a class session
- longer laboratory sessions
Finally, participants will be asked to develop, individually or in small groups, a notebook of their own that could be used as an assignment, classroom exercise, or lecture.Aron Ahmadia,David I. KetchesonWed, 09 Jul 2014 00:00:00 -0500http://www.pyvideo.org/video/2746/teaching-numerical-methods-with-ipython-notebooksTeaching Numerical Methods with IPython Notebooks, Part 1http://www.pyvideo.org/video/2860/teaching-numerical-methods-part-1<p>Abstract</p>
This tutorial will give participants an introduction to the use of IPython notebooks in teaching numerical methods or scientific computing, at the level of an undergraduate or graduate university course. Prior familiarity with notebooks is not necessary. Participants will create an interactive notebook that explains and helps students to implement and explore a numerical algorithm.
<p>Description</p>
This tutorial is targeted to those who are or soon will be teaching numerical methods or scientific computing and are interested in using Python as the programming language for their course. The tutorial will be useful both to academics teaching university courses and those in industry who run training sessions. No prior knowledge of the IPython notebook is necessary, but participants should have some familiarity with Python, Numpy, and Matplotlib.
IPython notebooks are an excellent medium for teaching nuemrical methods since they can include both mathematical explanations and executable code in a single document. The tutorial will begin with an introduction to the IPython notebook, emphasizing how to overcome aspects that can be confusing to students. Next we will go over available free resources for
- ensuring that students have a suitable computing environment, using either a cloud platform or a packaged distribution
- distributing and collecting notebooks
- converting notebooks to other formats that may be useful in a course
We will also review a number of excellent existing resources containing IPython notebooks for numerical methods courses. Using these notebooks as examples, we will discuss how to design effective notebooks for teaching, including
- typesetting mathematical equations and expressions using LaTeX
- Formatting, referencing, and layout using Markdown
- inserting complete or partial code snippets
- embedding figures and other media
- embedding interactive widgets
We will briefly discuss different approaches to using IPython notebooks in a course, including their use as the basis for
- homework assignments
- short activities during a class session
- longer laboratory sessions
Finally, participants will be asked to develop, individually or in small groups, a notebook of their own that could be used as an assignment, classroom exercise, or lecture.Aron Ahmadia,David I. KetchesonWed, 09 Jul 2014 00:00:00 -0500http://www.pyvideo.org/video/2860/teaching-numerical-methods-part-1Teaching Numerical Methods with IPython Notebooks, Part 3http://www.pyvideo.org/video/2859/teaching-numerical-methods-part-3<p>Abstract</p>
This tutorial will give participants an introduction to the use of IPython notebooks in teaching numerical methods or scientific computing, at the level of an undergraduate or graduate university course. Prior familiarity with notebooks is not necessary. Participants will create an interactive notebook that explains and helps students to implement and explore a numerical algorithm.
<p>Description</p>
This tutorial is targeted to those who are or soon will be teaching numerical methods or scientific computing and are interested in using Python as the programming language for their course. The tutorial will be useful both to academics teaching university courses and those in industry who run training sessions. No prior knowledge of the IPython notebook is necessary, but participants should have some familiarity with Python, Numpy, and Matplotlib.
IPython notebooks are an excellent medium for teaching nuemrical methods since they can include both mathematical explanations and executable code in a single document. The tutorial will begin with an introduction to the IPython notebook, emphasizing how to overcome aspects that can be confusing to students. Next we will go over available free resources for
- ensuring that students have a suitable computing environment, using either a cloud platform or a packaged distribution
- distributing and collecting notebooks
- converting notebooks to other formats that may be useful in a course
We will also review a number of excellent existing resources containing IPython notebooks for numerical methods courses. Using these notebooks as examples, we will discuss how to design effective notebooks for teaching, including
- typesetting mathematical equations and expressions using LaTeX
- Formatting, referencing, and layout using Markdown
- inserting complete or partial code snippets
- embedding figures and other media
- embedding interactive widgets
We will briefly discuss different approaches to using IPython notebooks in a course, including their use as the basis for
- homework assignments
- short activities during a class session
- longer laboratory sessions
Finally, participants will be asked to develop, individually or in small groups, a notebook of their own that could be used as an assignment, classroom exercise, or lecture.Aron Ahmadia,David I. KetchesonWed, 09 Jul 2014 00:00:00 -0500http://www.pyvideo.org/video/2859/teaching-numerical-methods-part-3Solving the import problem: Scalable Dynamic Loading Network File Systemshttp://www.pyvideo.org/video/1201/solving-the-import-problem-scalable-dynamic-load<p>Description</p>
The most common programming paradigm for scientific computing, SPMD (Single
Program Multiple Data), catastrophically interacts with the loading strategies
of dynamically linked executables and network-attached file systems on even
moderately sized high performance computing clusters. This difficulty is
further exacerbated by "function-shipped" I/O on modern supercomputer compute
nodes, preventing the deployment of simple solutions. In this talk, we
introduce a two-component solution: collfs, a set of low-level MPI-collective
file operations that can selectively shadow file system access in a library,
and walla, a set of Python import hooks for seamlessly enabling parallel
dynamic loading scalable to tens of thousands of cores.
Aron Ahmadia,Jed Brown,William ScullinWed, 18 Jul 2012 00:00:00 -0500http://www.pyvideo.org/video/1201/solving-the-import-problem-scalable-dynamic-load