wiki:mpi_task

Version 2 (modified by i22balur, 4 weeks ago) (diff)

--

Tarea MPI

Aquí lanzaremos una tarea que usará mpi para trabajar de forma paralela y con paso de mensajes entre los diferentes procesos que la componen.

#!/bin/bash
# Job name:
#SBATCH --job-name=test
#
# Account:
#SBATCH --account=account_name
#
# Partition:
#SBATCH --partition=partition_name
#
# Number of MPI tasks needed for use case (example):
#SBATCH --ntasks=40
#
# Processors per task:
#SBATCH --cpus-per-task=1
#
# Wall clock limit:
#SBATCH --time=00:00:30
#
## Command(s) to run (example):
module load gcc OpenMPI
mpirun ./a.out

Aquí podemos apreciar varias cosas:

  • El número de nodos no por tarea no se fija a 1, pues al tratarse de un programa paralelo con mpi, lo normal es que se pueda distribuir entre varios nodos que no comparten memoria (distributed memory) y que se pasan las dependencias de memoria mediante mensajes mpi.
  • Nuestro programa, a.out en este caso, se invoca mediante el comando mpirun, habiendo cargado previamente los módulos gcc y openmpi