Wanted: Killer Apps
NERSC IS POISED TO TAKE ON MORE SOFTWARE DEVELOPMENT PROJECTS
May 1, 2007
NERSC staff members are playing an increasingly active role in high-performance computing software integration and development, as they face a greater demand for marrying software from a variety of supercomputer makers with applications from a wide range of scientific fields.
That’s the message from David Skinner, head of NERSC’s Open Software and Programming Group, which carries out in-house software development and deployment projects to help researchers run their codes on NERSC systems. Skinner, who also is leading the new SciDAC Outreach Center, gave a talk on software development strategies recently as part of the lunchtime speakers series at NERSC.
Aside from the growing gap between what’s available from vendors and what’s needed for running a computer center, two other trends are contributing to a greater demand for in-house software development, Skinner said. One is the emergence of multidisciplinary computational science teams who layer software to build custom application frameworks. The other trend deals with the challenges presented by exploding concurrencies and data volumes.
Aside from NERSC staff, the audience also included representatives from high- performance computing vendors. Skinner emphasized the great need to “model good software practices for our own benefit and in order to help the HPC community achieve higher standards of software quality, both in terms of reliability and performance.” Skinner encouraged the audience to develop software that goes beyond fixing problems in a one-off way and toward contributing directly to software projects. He cited several software development assignments he and others have undertaken during his talk, such as the authentication program, MyProxy, that became part of the Open Science Grid’s software distribution.
Other examples included Integrated Performance Monitoring (http://ipm- hpc.sf.net), which provides performance profiles on the execution of parallel jobs at computing centers run by DOE, the Department of Defense and the National Science Foundation.
“Some of the projects started out based solely on the needs that the center NERSC has, but those software solutions turned out to be useful to larger communities,” Skinner said.
He presented a list of suggestions for staff interested in starting or joining a software development project. The list included the following tips:
• Scope the goals, needs and requirements.
• Scope the license and intellectual property constraints.
• Assemble a team and have frequent discussions.
• Establish a home for your code.
• Have someone outside the group of developers evaluate progress.
• Fan out. Find others who need similar functions and leverage their resources.
• Hand off. Feed your work back into someone else’s development efforts if possible and prudent.
Crafting a smart project proposal is equally important. NERSC’s web site contains a template that describes clearly the scope of the work, including costs, benefits and goals.
Toward the end of his presentation, Skinner invited fellow NERSC colleagues to participate in his group meetings and learn more about software development opportunities. His group is responsible for providing a host of services, including source code control, bug tracking and coding assistance.
A similar set of services also are offered to SciDAC researchers through the SciDAC Outreach Center, which serves as a clearinghouse for SciDAC activities and resources and a liaison with- in the high performance computing com- munity.
For information about SciDAC outreach, check out http://outreach.scidac.gov.
About NERSC and Berkeley Lab
The National Energy Research Scientific Computing Center (NERSC) is a U.S. Department of Energy Office of Science User Facility that serves as the primary high-performance computing center for scientific research sponsored by the Office of Science. Located at Lawrence Berkeley National Laboratory, the NERSC Center serves more than 7,000 scientists at national laboratories and universities researching a wide range of problems in combustion, climate modeling, fusion energy, materials science, physics, chemistry, computational biology, and other disciplines. Berkeley Lab is a DOE national laboratory located in Berkeley, California. It conducts unclassified scientific research and is managed by the University of California for the U.S. Department of Energy. »Learn more about computing sciences at Berkeley Lab.