Changes between Version 182 and Version 183 of FermeLocale


Ignore:
Timestamp:
27/02/2024 15:39:11 (3 months ago)
Author:
lambert
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FermeLocale

    v182 v183  
    286286
    287287}}}
     288
     289==== MPI avec OpenMPI ====
     290
     291Dans l'univers vanilla, les tâches MPI ne tourne que sur une seule machine en utilisant tous les cœurs et processeurs demandés dans la limite des capacités de la machine hôte.
     292
     293**run.sh**
     294
     295run.sh est un script shell pour faire le setup de l'environnement.
     296
     297{{{
     298#!/bin/bash
     299
     300export LD_LIBRARY_PATH=/usr/lib64/openmpi/lib/:${LD_LIBRARY_PATH}
     301export PATH=/usr/lib64/openmpi/bin/:${PATH}
     302
     303mpirun $*
     304
     305}}}
     306
     307L'executable est compilé au préalable avec : {{{/usr/lib64/mpi/bin/mpicc simple.c -o simple}}}
     308
     309**simple.c**
     310
     311#include <stdio.h>
     312#include <mpi.h>
     313
     314int main(int argc, char** argv) {
     315    int rank, size;
     316
     317    // Initialisation de l'environnement MPI
     318    MPI_Init(&argc, &argv);
     319
     320    // Obtention du rang du processus
     321    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
     322
     323    // Obtention de la taille du communicateur
     324    MPI_Comm_size(MPI_COMM_WORLD, &size);
     325
     326    // Affichage du rang et de la taille
     327    printf("Hello from process %d of %d\n", rank, size);
     328
     329    // Finalisation de l'environnement MPI
     330    MPI_Finalize();
     331
     332    return 0;
     333}
     334
     335**simple.submit**
     336{{{
     337universe              = vanilla
     338executable            = run.sh
     339arguments             = -np 8 simple
     340
     341output                = simple.out
     342error                 = simple.err
     343log                   = simple.log
     344
     345should_transfer_files = yes
     346when_to_transfer_output = on_exit
     347transfer_input_files = simple
     348
     349# Spécifiez le nombre de slots (processus MPI) requis
     350request_cpus = 1
     351request_memory = 1024M
     352request_disk   = 10240K
     353
     354#+Requirements           = OpSysAndVer =?= "AlmaLinux"
     355#+Requirements           = machine     =?= "lpsc-c21.in2p3.fr"
     356+Requirements            = member(machine, {"lpsc-c22.in2p3.fr", "lpsc-c23.in2p3.fr"})
     357
     358queue
     359
     360}}}
     361
     362==== MPI avec MPICH ====
     363
     364Dans l'univers vanilla, les tâches MPI ne tourne que sur une seule machine en utilisant tous les cœurs et processeurs demandés dans la limite des capacités de la machine hôte.
     365
     366**run.sh**
     367
     368run.sh est un script shell pour faire le setup de l'environnement.
     369
     370{{{
     371#!/bin/bash
     372
     373export LD_LIBRARY_PATH=/usr/lib64/mpich/lib/:${LD_LIBRARY_PATH}
     374export PATH=/usr/lib64/mpich/bin/:${PATH}
     375
     376mpirun $*
     377
     378
     379}}}
     380
     381L'executable est compilé au préalable avec : {{{/usr/lib64/mpich/bin/mpicc simple.c -o simple}}}
     382
     383**simple.c**
     384
     385#include <stdio.h>
     386#include <mpi.h>
     387
     388int main(int argc, char** argv) {
     389    int rank, size;
     390
     391    // Initialisation de l'environnement MPI
     392    MPI_Init(&argc, &argv);
     393
     394    // Obtention du rang du processus
     395    MPI_Comm_rank(MPI_COMM_WORLD, &rank);
     396
     397    // Obtention de la taille du communicateur
     398    MPI_Comm_size(MPI_COMM_WORLD, &size);
     399
     400    // Affichage du rang et de la taille
     401    printf("Hello from process %d of %d\n", rank, size);
     402
     403    // Finalisation de l'environnement MPI
     404    MPI_Finalize();
     405
     406    return 0;
     407}
     408
     409**simple.submit**
     410{{{
     411universe              = vanilla
     412executable            = run.sh
     413
     414# Attention au chemin relatif pour l'executable avec MPICH: ./simple et pas simple
     415arguments             = -np 8 ./simple
     416
     417output                = simple.out
     418error                 = simple.err
     419log                   = simple.log
     420
     421should_transfer_files = yes
     422when_to_transfer_output = on_exit
     423transfer_input_files = simple
     424
     425# Spécifiez le nombre de slots (processus MPI) requis
     426request_cpus = 1
     427request_memory = 1024M
     428request_disk   = 10240K
     429
     430#+Requirements           = OpSysAndVer =?= "AlmaLinux"
     431#+Requirements           = machine     =?= "lpsc-c21.in2p3.fr"
     432+Requirements            = member(machine, {"lpsc-c22.in2p3.fr", "lpsc-c23.in2p3.fr"})
     433
     434queue
     435
     436}}}
     437
    288438
    289439=== Univers parallel ===