beautypg.com

4 developing applications, 1 application development environment overview – HP XC System 4.x Software User Manual

Page 39

background image

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

Chapter 2 “Using the System”

.

This chapter addresses the following topics:

“Application Development Environment Overview” (page 39)

“Compilers” (page 40)

“Examining Nodes and Partitions Before Running Jobs” (page 41)

“Interrupting a Job” (page 41)

“Setting Debugging Options” (page 41)

“Developing Serial Applications” (page 41)

“Developing Parallel Applications” (page 42)

“Developing Libraries” (page 46)

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 (

compute node

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 batch job scheduler to launch and manage parallel and
serial applications. When a job is submitted, LSF places the job in a queue and allows it to run
when the necessary resources become available. When a job is completed, LSF returns job output,
job information, and any errors. In addition to batch jobs, LSF can also run interactive batch jobs
and interactive jobs. An LSF interactive batch job is a batch job that allows you to interact with
the application, yet still take advantage of LSF scheduling policies and features. An LSF interactive
job is run without using the batch processing features of LSF, but is dispatched immediately by
LSF on the

LSF execution host

node. LSF is described in detail in

Chapter 10 “Using LSF”

.

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.

HP Unified Parallel C Support

HP XC System Software provides support for the HP Unified Parallel C (UPC) application
development environment.

4.1 Application Development Environment Overview

39