|Position Title||Parallel astrophysics software development intern|
|Summary||The intern will work with the mentor and a postdoctoral researcher to characterize the scaling and performance of the Enzo adaptive mesh astrophysics code on a wide variety of computing platforms, and up to tens of thousands computing cores. They will help to identify computational bottlenecks and to develop strategies to circumvent these bottlenecks. If interested, the intern will help to develop PGAS language-based solutions (most likely using Unified Parallel C) to enhance the parallelism of global data structures, or to develop and test a python-based framework for performing runtime simulation analysis.|
|Job Description||The intern will be involved with characterizing the performance and scaling of the Enzo astrophysics code (http://lca.ucsd.edu/projects/enzo) on a range of computational problems, and will assist in identifying scaling and performance bottlenecks as well as developing strategies to circumvent these bottlenecks. |
Enzo is a hybrid N-body plus hydrodynamics code used to study a range of physical situations in astrophysics and cosmology, including galaxy formation, turbulence, and star and planetary formation. The code uses the structured adaptive mesh refinement technique to achieve high spatial and temporal dynamic range; however, most astrophysical situations are dominated by gravity, and this leads to significant load imbalance between computational cores. The intern will help to identify and develop strategies to correct these imbalances.
The Enzo code uses C++ for abstraction, parallelism, and memory management, and fortran for computational kernels. The newest version of the Enzo code uses a combination of OpenMP and MPI for parallelism, and we are planning to experiment with PGAS languages such as UPC and Co-Array Fortran to abstract some of the more complicated global data structures.
Enzo is currently being run on the entire range of NSF, NASA, and DOE supercomputers. Two research teams using Enzo have been selected to be among the first to use the Blue Waters supercomputer when it comes online in 2011, and we are using the largest computing systems available to us (Kraken at NICS, Jaguar at ORNL, and Ranger at TACC) to study the performance characteristics of our code at scale. This work will continue for at least the next year, if not two.
In addition to helping to characterize Enzo's performance and scaling at high processor counts, and depending on the intern's interests, they could work on creating parallelized global data structures within Enzo using a Partitioned Global Address Space (PGAS) language (most likely Unified Parallel C, or UPC), to develop tools to do data analysis and visualization (such as volume rendering) at huge processor counts, and to develop simulation workflow and management tools.
Please note that, given the variety of projects mentioned here, up to two students could be part of this position.
|Conditions/Qualifications||Must be able to be in residence at MSU over Summer 2011. Should have some programming experience in C/C++ and/or Python. Fortran programming experience a plus. Parallel programming experience a MAJOR plus. Some flexibility in start and end dates (particularly the start date). Please note that, given the variety of projects mentioned here, up to two students could be part of this position.|
|Location||Department of Physics & Astronomy and the Institute for Cyber-Enabled Research|
Michigan State University
East Lansing, MI 48824-2320
Student will be working in the O'Shea computational astrophysics research group