Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
Dernière révisionLes deux révisions suivantes
documentation:tutorials:build:c [2015/02/23 13:19] ltaulelldocumentation:tutorials:build:c [2021/06/04 12:35] cicaluga
Ligne 7: Ligne 7:
 ==== Compilation du programme ==== ==== Compilation du programme ====
  
-  * Définition du l'environnement) :  
  
-<code> +**Définition de l'environnement** : 
-source /usr/local/modeles/gnu-4.6.3 +
-</code>+
  
-  * Vérification de la version du compilateur 
  
-<code> +  * définition de l'environnement **pour bash**  
-gcc --version+<code bash>
  
-gcc (GCC) 4.6.3+module load IntelComp/2017.
 + 
 +ou  
 + 
 +module load intel/2019.5  
 </code> </code>
  
-  * Compilation+  * vérification de la version du compilateur 
 +<code> 
 +icc --version 
 +icc (ICC) 17.0.4 20170411 
 +Copyright (C) 1985-2017 Intel Corporation.  All rights reserved. 
 +</code> 
 + 
 +**Compilation** :
  
 <code> <code>
-gcc -o SommeVecVecSEQ.c.exe SommeVecVecSEQ.c+icc -o SommeVecVecSEQ.exe SommeVecVecSEQ.c (avec intel)
 </code> </code>
  
-Le fichier binaire (exécutable) ''SommeVecVecSEQ.c.exe'' a été généré. 
  
 +
 +Le fichier binaire (exécutable) ''SommeVecVecSEQ.exe'' a été généré.
  
 ==== Exécution sur le serveur de compilation : ==== ==== Exécution sur le serveur de compilation : ====
  
 <code> <code>
-./SommeVecVecSEQ.c.exe+./SommeVecVecSEQ.exe
 </code> </code>
  
Ligne 53: Ligne 61:
  
  
-On utilise un script de soumission [[documentation:tutorials:submit&#job_sequentiel|batch.csh]] (ou [[documentation:tutorials:submit&#job_sequentiel|batch.sh]], pour le shell bash) pour soumettre le job sur les clusters de calcul.+On utilise un script de soumission [[documentation:tutorials:submit:jobsequentielbash|batch.sh]] pour le shell bash (ou [[documentation:tutorials:submit:jobsequentieltcsh|batch.csh]], pour le shell tcsh) pour soumettre le job sur les clusters de calcul.
  
 C'est le script de soumission qui configure l'environnement puis appelle votre binaire (avec ses options, s'il en a) sur le noeud d'execution. C'est le script de soumission qui configure l'environnement puis appelle votre binaire (avec ses options, s'il en a) sur le noeud d'execution.
  
-''SGE -> batch.csh -> binaire''+''SGE -> batch.sh -> binaire''
  
 <code> <code>
-qsub batch.csh+qsub batch.sh
  
-Your job 769504 ("batch.csh") has been submitted+Your job 769504 ("batch.sh") has been submitted
  
 qstat qstat
Ligne 82: Ligne 90:
  C =           10          10          10          10          10          10          10          10          10          10  C =           10          10          10          10          10          10          10          10          10          10
 </code> </code>
- 
  
  
Ligne 89: Ligne 96:
 Le programme [[documentation:examples:sommevecvecpar.c|SommeVecVecPAR.c]] effectue la somme des deux vecteurs A et B. Le résultat est mis dans C.  Chaque étape est effectuée sur 2 processus. Si le programme est exécuté sur plusieurs cœurs, seuls deux cœurs sont effectivement utilises. Le programme [[documentation:examples:sommevecvecpar.c|SommeVecVecPAR.c]] effectue la somme des deux vecteurs A et B. Le résultat est mis dans C.  Chaque étape est effectuée sur 2 processus. Si le programme est exécuté sur plusieurs cœurs, seuls deux cœurs sont effectivement utilises.
  
-====Compilation du programme====+==== Compilation du programme ====
  
-  * Définition du l'environnement+=== Définition de l'environnement : === 
 + 
  
-<code> +  * définition de l'environnement   
-source /usr/local/modeles/openmpi-1.4.5-gnu-4.6.3+<code bash
 +module load IntelComp/2017.4 (ou module load intel/2019.5 )    
 +module load IntelComp/2017.4/OpenMPI/3.0.0 (ou intel/2019.5/impi/2019.5.281)
 </code> </code>
 +
  
   * Vérification   * Vérification
 <code> <code>
 mpicc -showme mpicc -showme
-gcc -I/softs/openmpi-1.4.5-gcc-4.6.3/include -pthread -L/softs/openmpi-1.4.5-gcc-4.6.3/lib -lmpi -lopen-rte -lopen-pal -lrdmacm -libverbs -ldl -lnsl -lutil -lm+ 
 +icc -I/applis/PSMN/debian9/software/Compiler/IntelComp/2017.4/Core/OpenMPI/3.0.0/include -pthread -Wl,-rpath -Wl,/applis/PSMN/debian9/software/Compiler/IntelComp/2017.4/Core/OpenMPI/3.0.0/lib -Wl,--enable-new-dtags -L/applis/PSMN/debian9/software/Compiler/IntelComp/2017.4/Core/OpenMPI/3.0.0/lib -lmpi
 </code> </code>
  
-  * Compilation+=== Compilation : === 
  
 <code> <code>
-mpicc -o SommeVecVecPAR.c.exe SommeVecVecPAR.c+mpicc -o SommeVecVecPAR.exe SommeVecVecPAR.c
 </code> </code>
  
-Le fichier binaire (exécutable) ''SommeVecVecPAR.c.exe'' a été généré. 
  
 +Le fichier binaire (exécutable) ''SommeVecVecPAR.exe'' a été généré.
  
 ==== Exécution sur le serveur de compilation ==== ==== Exécution sur le serveur de compilation ====
  
 <code> <code>
-mpirun -np 2 ./SommeVecVecPAR.c.exe+mpirun -np 2 ./SommeVecVecPAR.exe
 </code> </code>
  
Ligne 140: Ligne 153:
 ==== Exécution sur les nœuds ==== ==== Exécution sur les nœuds ====
  
-On utilise un script de soumission [[documentation:tutorials:submit&#job_parallele|batch.csh]] (ou [[documentation:tutorials:submit&#job_parallele|batch.sh]] pour le shell bash) pour soumettre le job sur les clusters de calcul.+On utilise un script de soumission [[documentation:tutorials:submit:accueil&#job_parallele|batch.sh]] pour le shell bash (ou [[documentation:tutorials:submit:jobparalleleshellcsh|batch.csh]] pour le shell tcsh) pour soumettre le job sur les clusters de calcul.
  
 C'est le script de soumission qui configure l'environnement puis appelle votre binaire (avec ses options, s'il en a) sur les noeuds d'execution. C'est le script de soumission qui configure l'environnement puis appelle votre binaire (avec ses options, s'il en a) sur les noeuds d'execution.
  
-''SGE -> batch.csh -> binaire''+''SGE -> batch.sh -> binaire''
  
 <code> <code>
-qsub batch.csh+qsub batch.sh
  
-Your job 772030 ("batch.csh") has been submitted+Your job 772030 ("batch.sh") has been submitted
  
 qstat qstat
Ligne 188: Ligne 201:
  C local ( proc            1  )  =           10          10          10          10          10  C local ( proc            1  )  =           10          10          10          10          10
 </code> </code>
-