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

Advertising
background image

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 <stdio.h>

#include <mpi.h>

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

Advertising