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 nodes) 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 LSF execution host node. LSF-HPC is
described in detail in Chapter 10 “Using LSF-HPC”.
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:
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.
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.
HP UPC is a parallel extension of
the C programming language, which runs on both common types of multiprocessor
systems: those with a common global address space (such as SMP) and
those with distributed memory. UPC provides a simple shared memory
model for parallel programming, allowing data to be shared or distributed
among a number of communicating processors. Constructs are provided
in the language to permit simple declaration of shared data, distribute
shared data across threads, and synchronize access to shared data
across threads. This model promises significantly easier coding of
parallel applications and maximum performance across shared memory,
distributed memory, and hybrid systems.
See the following Web page for more information
about HP UPC:
http://www.hp.com/go/upc