Pro práce s MPI je potřeba nejprve aktivovat příslušný module. Použijeme příkaz:

module load openmpi

A nyní stačí použít wrappery překladačů mpicc, mpic++, mpif77, mpif90 místo běžného kompilátoru.

Uvažujme tento jednoduchý příklad mpitest.c

#include <stdio.h>
#include <stdlib.h>
#include "mpi.h"

int main(int argc, char *argv[])
{
  int numprocs;  /* Pocet vsech procesoru */
  int procnum;   /* Cislo aktualniho procesoru */

  /* Nejprve inicializace */
  MPI_Init(&argc, &argv);

  /* Zjisti cislo meho procesoru v ramci celeho COMM */
  MPI_Comm_rank(MPI_COMM_WORLD, &procnum);

  /* Zjisti kolik procesoru je uloza prideleno */
  MPI_Comm_size(MPI_COMM_WORLD, &numprocs);

  printf ("Hello world! od procesoru %d z celkoveho poctu %d\n", 
		  procnum, numprocs);

  /* Ukonceni prace s MPI */
  MPI_Finalize();

  return EXIT_SUCCESS;
}

Přeložíme pomocí

mpicc mpitest.c -o mpitest

Na clusteru pak spustíme předáním pbs systému takto. Vytvoříme si popisný soubor job.sh

#!/bin/bash
#SBATCH --job-name=MPI1
#SBATCH --output=mpi_output.txt
#
#SBATCH -n 16
#SBATCH -p q2
#SBATCH --constraint="InfiniBand"
#SBATCH --mail-type=ALL
#SBATCH --mail-user=madlik@karlin.mff.cuni.cz

module load openmpi

cd /usr/users/madlik/snehurka/ukazky/parallel/1
mpirun ./mpitest

A předáme systému příkazem

sbatch job.sh

Systém zařídí jeho běh na 16 procesorech. 
Detailnější popis použití SLURM čtěte zde.