1 example application hello_world, 2 building and running hello_world, Section 8.3.2.1 – HP XC System 2.x Software User Manual
Page 113: Section 8.3.2.2

parallelism. For information about running more complex applications, refer to the HP-MPI
user documentation.
8.3.2.1 Example Application
hello_world
To quickly become familiar with compiling and running HP-MPI programs, start with the C
version of a familiar
hello_world
program. This program is called
hello_world.c
and
prints out the text string “Hello world! I’m r of s on host”. In this text string:
•
r is the rank of the process
•
s is the size of the communicator
•
host is the host on which the program is run
The processor name is the host name for this implementation.
The source code for
hello_world.c
is stored in
$MPI_ROOT/help
and is shown below.
#include
#include
void main(argc, argv)
int argc; char *argv[];
{
int rank, size, len;
char name[MPI_MAX_PROCESSOR_NAME];
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
MPI_Comm_size(MPI_COMM_WORLD, &size);
MPI_Get_processor_name(name, &len);
printf("Hello world! I’m %d of %d on %s\n", rank, size, name);
MPI_Finalize();
exit(0);
}
8.3.2.2 Building and Running
hello_world
To build and run
hello_world.c
on a local host, named
penguin2
in this example,
perform the following steps:
1.
Change to a writable directory.
2.
Compile the
hello_world
executable file:
$ $MPI_ROOT/bin/mpicc -o hello_world $MPI_ROOT/help/hello_world.c
If
/opt/hpmpi/bin
is in the
PATH
, as it should be, this command can be simplified to
the following:
$ mpicc -o hello_world $MPI_ROOT/help/hello_world.c
3.
Run the
hello_world
executable file:
$ $MPI_ROOT/bin/mpirun -srun -n4 hello_world
If
/opt/hpmpi/bin
is in the
PATH
, this command can be simplified to the following:
$ mpirun -srun -n4 hello_world
In this command,
-n4
specifies that the number of processes to run is four, and the
allocated nodes from SLURM are to be used.
4.
Analyze
hello_world
output.
HP-MPI prints the output from running the
hello_world
executable in nondeterministic
order. The following is an example of the output:
Using HP-MPI
8-3