4.6.1 Serial Application Build Environment

You can build and run serial applications in the HP XC programming environment. A serial application is a command or application that does not use any form of parallelism.

An example of a serial application is a standard Linux command, such as the ls or hostname command. A serial application is basically a single-core application that has no communication library calls such as MPI.

4.6.2 Building Serial Applications

This section discusses how to build serial applications on an HP XC system. Compiling, linking, and running serial applications are discussed.

To build a serial application, you must be logged in to an HP XC node with the login role. Serial applications are compiled and linked by invoking compilers and linkers.

You launch a serial application either by submitting it to LSF with the bsub command, or by invoking the srun command to run it. The process is similar to launching a parallel application, except that only one compute node core is used. To run on an compute node processor, the serial application and any required dynamic libraries must be accessible from that node. A serial application can also be tested locally by running it on the login node.

4.6.2.1 Compiling and Linking Serial Applications

Serial applications are compiled and linked by invoking compile and link drivers.

You can change compilers by using modules. For information about using modules, see “Overview of Modules” (page 33).

As an alternative to using dynamic libraries, serial applications can also be linked to static libraries. Often the -staticoption is used to do this.

For examples of building serial applications with the GNU C, GNU Fortran, and Intel C/C++, and Intel Fortran compilers, see “Building and Running a Serial Application” (page 115).

4.7 Developing Parallel Applications

This section describes how to build and run parallel applications. The following topics are discussed:

“Parallel Application Build Environment” (page 42)“Building Parallel Applications” (page 45)

For further information about developing parallel applications in the HP XC environment, see the following:

“Launching Jobs with the srun Command” (page 81)“Debugging Parallel Applications” (page 63)Chapter “Advanced Topics” (page 107)

4.7.1Parallel Application Build Environment

This section discusses the parallel application build environment on an HP XC system.

The HP XC parallel application environment allows parallel application processes to be started and stopped together on a large number of application cores, along with the I/O and process control structures to manage these kinds of applications.

The HP XC system software uses the HP-MPI distributed memory programming model for building and running parallel applications. In addition to using HP-MPI for parallel application development, OpenMP and Pthreads can be used in conjunction with HP-MPI or separately under the HP XC system software. The section discusses these development tools as they relate to the HP XC system.

42 Developing Applications