NERSCPowering Scientific Discovery for 50 Years

Wanted: Killer Apps


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-, 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

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, NERSC serves almost 10,000 scientists at national laboratories and universities researching a wide range of problems in climate, 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.