4 developing applications, 1 application development environment overview, 2 compilers – HP XC System 3.x Software User Manual
Page 37
4 Developing Applications
This chapter discusses topics associated with developing applications in the HP XC environment. Before
reading this chapter, you should you read and understand
Chapter 1 “Overview of the User Environment”
and
.
This chapter addresses the following topics:
•
“Application Development Environment Overview” (page 37)
•
•
“Examining Nodes and Partitions Before Running Jobs” (page 38)
•
“Interrupting a Job” (page 38)
•
“Setting Debugging Options” (page 39)
•
“Developing Serial Applications” (page 39)
•
“Developing Parallel Applications” (page 39)
•
“Developing Libraries” (page 43)
4.1 Application Development Environment Overview
The HP XC system provides an application development environment that enables developing, building,
and running applications using multiple nodes with multiple cores. These applications can be parallel
applications using many cores, or serial applications using a single core.
The HP XC system is made up of nodes that are assigned one or more roles. Nodes with the login role
(login nodes) and nodes with the compute role (
s) are important to the application developer:
•
Compute nodes run user applications.
•
Login nodes are where you log in and interact with the system to perform such tasks as executing
commands, compiling and linking applications, and launching applications. A login node can also
execute single-core applications and commands, just as on any other standard Linux system.
Applications are launched from login nodes, and then distributed and run on one or more compute nodes.
The HP XC environment uses the LSF-HPC batch job scheduler to launch and manage parallel and serial
applications. When a job is submitted, LSF-HPC places the job in a queue and allows it to run when the
necessary resources become available. When a job is completed, LSF-HPC returns job output, job
information, and any errors. In addition to batch jobs, LSF-HPC can also run interactive batch jobs and
interactive jobs. An LSF-HPC interactive batch job is a batch job that allows you to interact with the
application, yet still take advantage of LSF-HPC scheduling policies and features. An LSF-HPC interactive
job is run without using the batch processing features of LSF-HPC, but is dispatched immediately by
LSF-HPC on the
node. LSF-HPC is described in detail in
Regardless of whether an application is parallel or serial, or whether it is run interactively or as a batch
job, the general steps to developing an HP XC application are as follows:
1.
Build the code by compiling and linking with the correct compiler. Note that compiler selection, and
set up of appropriate parameters for specific compilers, is made easier by the use of modules.
2.
Launch the application with the bsub, srun, or mpirun command.
The build and launch commands are executed from the node to which you are logged in.
4.2 Compilers
You can use compilers acquired from other vendors on an HP XC system. For example, Intel C/C++ and
Fortran compilers for the 64-bit architecture and Portland Group C/C++ and Fortran compilers on the
CP4000 platform.
Intel, PGI, and Pathscale compilers are not supplied with the HP XC system.
You can use other compilers and libraries on the HP XC system as on any other system, provided they
contain single-core routines and have no dependencies on another message-passing system.
displays the compiler commands for Standard Linux, Intel, and PGI compilers for the C, C++,
and Fortran languages.
4.1 Application Development Environment Overview
37