HP XC System Software User's Guide Version 3.2

A Examples
This appendix provides examples that illustrate how to build and run applications on the HP
XC system. The examples in this section show you how to take advantage of some of the many
methods available, and demonstrate a variety of other user commands to monitor, control, or
kill jobs.
The examples in this section assume that you have read the information in previous chapters
describing how to use the HP XC commands to build and run parallel applications. Only examples
of building and running applications are provided in this section — detailed information about
the commands is not provided.
A.1 Building and Running a Serial Application
This example show how to build a simple application, called hello world, and launch it with
the SLURM srun command.
The following is the source code for the hello world program, located in file hw_hostname.c.
#include <unistd.h>
#include <stdio.h>
int main()
{
char name[100];
gethostname(name, sizeof(name));
printf("%s says Hello!\n", name);
return 0;
}
The hello world program is compiled in the usual way:
$ cc hw_hostname.c -o hw_hostname
When run on the login node, it shows the name of the login node; n16 in this case:
$ ./hw_hostname
n16 says Hello!
The srun command can be used to run it on one of the compute nodes in the default SLURM
partition. This time it lands on n13:
$ srun ./hw_hostname
n13 says Hello!
The srun command can also be used to replicate it on several compute nodes. This is not generally
useful, but is included for illustrative purposes.
$ srun -n4 ./hw_hostname
n13 says Hello!
n13 says Hello!
n14 says Hello!
n14 says Hello!
A.2 Launching a Serial Interactive Shell Through LSF-HPC
This section provides an example that shows how to launch a serial interactive shell through
LSF-HPC. The bsub -Is command is used to launch an interactive shell through LSF-HPC. This
example steps through a series of commands that illustrate what occurs when you launch an
interactive shell.
Examine the LSF execution host information:
$ bhosts
HOST_NAME STATUS JL/U MAX NJOBS RUN SSUSP USUSP RSV
lsfhost.localdomain ok - 12 0 0 0 0 0
A.1 Building and Running a Serial Application 125