#include <unistd.h> #include <stdio.h>

int main()

{

char name[100]; gethostname(name, sizeof(name)); printf("%s says Hello!\n", name); return 0;

}

The following is the command line used to compile this program:

$ cc hw_hostname.c -o hw_hostname

NOTE: The following invocations of the sample hw_hostname program are run on a SLURM non-root default partition, which is not the default SLURM partition for the HP XC system software.

When run on the login node, it shows the name of the login node, n16 in this case:

$ ./hw_hostname n16 says Hello!

When you use the srun command to submit this program, it runs on one of the compute nodes. In this instance, it runs on node n13:

$ srun ./hw_hostname n13 says Hello!

Submitting the same program again with the srun command may run this program on another node, as shown here:

$ srun ./hw_hostname n12 says Hello!

The srun can also be used to replicate the program on several cores. Although it is not generally useful, it illustrates the point. Here, the same program is run on 4 cores on 2 nodes.

$ srun -n4 ./hw_hostname n13 says Hello!

n13 says Hello!

n14 says Hello!

n14 says Hello!

The output for this command could also have been 1 core on each of 4 compute nodes in the SLURM allocation.

5.3 Submitting a Parallel Job

When submitting a parallel job, you can specify the use of HP-MPI. You can also opt to schedule the job by using SLURM. Depending on which submission method you choose, read the appropriate sections, as follows:

“Submitting a Non-MPI Parallel Job” (page 51)

“Submitting a Parallel Job That Uses the HP-MPI Message Passing Interface” (page 52)

“Submitting a Parallel Job Using the SLURM External Scheduler” (page 53)

5.3.1Submitting a Non-MPI Parallel Job

to submit a parallel job

Use the following format of the LSF bsub command to submit a parallel job that does not make use of HP-MPIto an LSF node allocation (compute nodes). An LSF node allocation is created by the -nnum-procsparameter, which specifies the minimum number of cores the job requests.

bsub -nnum-procs [bsub-options] srun [srun-options]jobname [job-options]

5.3 Submitting a Parallel Job

51