Expanding supercomputing by improving programmer productivity

Supercomputers are only as useful as the software they can effectively run. In order to expand that base of software, it must be easier to write and debug code on massively parallel systems. The Ohio Supercomputer Center’s high-level language initiative addresses this pressing need through a combination of software development, a robust production services environment, and in-house research and consulting.

“By taking this holistic approach to generating efficient supercomputing applications for our researchers, we’re able to capitalize on all the components within the cycle of innovation - development, experimentation, and analysis - and continuously improve our services,” said David Hudak, Ph.D., senior research scientist, Ohio Supercomputer Center.

For example, OSC researchers developed ParaM, a collection of internally and externally developed software, including bcMPI, pMatlab, and GNU Octave, that also incorporates a launcher and installer to facilitate downloading the program. ParaM is installed and supported on OSC clusters as part of its production services environment, along with MatlabMPI, MATLAB DCE, and Star-P. iPython is slated for installation soon.

“Providing our user community these various software options serves dual purposes,” Dr. Hudak said. “The variety enables researchers to select parallel computing languages they most prefer, and just as important, it creates a test bed for exploring these systems.”

ParaM and bcMPI

MATLAB, a commercial mathematical modeling package, and GNU Octave, its open source counterpart, are leading choices for computational science and numeric application prototyping. Researchers at the Ohio Supercomputer Center developed ParaM to improve the potential for applying these high-level languages to larger problems in these domains.

ParaM enables developers to directly write parallel code in MATLAB with either a “message passing” or “global array” parallel programming model. By leveraging the GNU Octave interpreter, ParaM works on a wide variety of machines that don’t support MATLAB, such as Itanium and POWER processors, and it uses modern interconnects like Infiniband and Myrinet.

bcMPI was developed as part of the ParaM project; it is a software package that implements message passing interface (MPI) extensions for MATLAB and GNU Octave. It consists of a core library that interfaces to the MPI library, a toolbox for MATLAB, and a toolbox for Octave.

bcMPI implements a subset of the MPI application program interface. The MATLAB language bindings are simpler than the standard bindings for C or Fortran: data types are detected at run time, received data is returned by value, and data communication functions accept variable number of parameters. Where possible, compatibility with MatlabMPI has been maintained.

Both ParaM and bcMPI are open source programs. They are available for download at www.bluecollarcomputing.org/applications/bcMPI/download.shtml.


Project Lead:

David Hudak, Ph.D., Ohio Supercomputer Center

OSC Project Team:

• Ashok Krishnamurthy, Ph.D.

• Neil Ludban

• Vijay Gadepally

• Stan Ahalt, Ph.D.

• Juan Carlos Chaves, Ph.D.

• Bracy Elton, Ph.D.

• Judy Gardiner, Ph.D.

• Brian Guilfoos

• John Nehrbass, Ph.D.

• Siddharth Samsi

• Jose Unpingco, Ph.D.

Funding Source:

• U.S. Department of Energy

• U.S. Department of Defense, High Performance Computing Modernization Program User Productivity Enhancement and Technology Transfer (HPCMP PET)

For more information: