ENVIRONNEMENT DE COMPILATION ET LIBRAIRIES SUR ANTARES

Documents pareils
Optimisation de logiciels de modélisation sur centre de calcul

Rapport d activité Volet Technique

Rapport 2014 et demande pour Portage de Méso-NH sur Machines Massivement Parallèles du GENCI Projet 2015 : GENCI GEN1605 & CALMIP-P0121

Infrastructures Parallèles de Calcul

Gestion de clusters de calcul avec Rocks

Guide d installation JMap 5.0

Architecture des ordinateurs

Rapport de stage Master 2

CAHIER DES CHARGES D IMPLANTATION

Rapport d activité Volet Technique

LIVRET D INFORMATION. Livret d information des utilisateurs des ressources GENCI dans les centres nationaux

Architectures web/bases de données

<Insert Picture Here> Exadata Storage Server et DB Machine V2

Les mésocentres HPC àportée de clic des utilisateurs industriels

Architecture des calculateurs

Journée Utiliateurs Nouvelles du Pôle ID (Informatique) Pierre Neyron, LIG/CNRS

Chapitre 1. Infrastructures distribuées : cluster, grilles et cloud. Grid and Cloud Computing

LIVRET D INFORMATION. Livret d information des utilisateurs des ressources GENCI dans les centres nationaux

Systèmes d exploitation

Tests de performance du matériel

Quantification d incertitude et Tendances en HPC

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Contrôle Non Destructif : Implantation d'algorithmes sur GPU et multi-coeurs. Gilles Rougeron CEA/LIST Département Imagerie Simulation et Contrôle

Pré-requis techniques. Yourcegid Secteur Public On Demand Channel

Règles et paramètres d'exploitation de Caparmor 2 au 11/12/2009. Pôle de Calcul Intensif pour la mer, 11 Decembre 2009

Comment reproduire les résultats de l article : POP-Java : Parallélisme et distribution orienté objet

Rapport d activité. Mathieu Souchaud Juin 2007

La Forge INRIA : bilan et perspectives. Hervé MATHIEU - 11 mai 2010

Retour d expérience en Astrophysique : utilisation du Cloud IaaS pour le traitement de données des missions spatiales

Sébastien Geiger IPHC Strasbourg

SIGAMM/CRIMSON COMMISSION UTILISATEUR du 05/12/2014

Évaluation et implémentation des langages

Serveur Lynx CALLEO Application 2240S Fiches Technique

Système Principal (hôte) 2008 Enterprise x64

Cluster de calcul Freeware en Océanographie Opérationnelle

Serveur Lynx CALLEO Application 2240 Fiches Technique

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server 3, 3.5

Mesurer les performances (CPU) sous Linux

Initiation au HPC - Généralités

Cours Informatique Master STEP

Détection d'intrusions en environnement haute performance

Eléments d architecture des machines parallèles et distribuées

Institut Supérieure Aux Etudes Technologiques De Nabeul. Département Informatique

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Communications performantes par passage de message entre machines virtuelles co-hébergées

Pré-requis techniques

1 Description générale de VISFIELD

SERVEUR CALLEO APPLICATION R269M

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

THÈSE. pour obtenir le grade de. Spécialité : "Informatique : Systèmes et Communications"

SafeKit. Sommaire. Un livre blanc de Bull Evidian

Segmentation d'images à l'aide d'agents sociaux : applications GPU

IBM SPSS Modeler Text Analytics Server for Windows. Instructions d installation

SERVEUR LYNX CALLEO DATACENTER 2460

Drupal : Optimisation des performances

Version de novembre 2012, valable jusqu en avril 2013

Diagrammes de Package, de déploiement et de composants UML

Chapitre I Notions de base et outils de travail

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Performance Computing 2012/13 GUIDE TECHNOLOGIQUE

ParallelKnoppix. Majid Hameed. Copyright 2005 Majid Hameed. Copyright 2005 Gauthier Savart. Copyright 2005 Joëlle Cornavin

Evaluation des performances de programmes parallèles haut niveau à base de squelettes

SYSTEME DE STOCKAGE UNIFIE EMC VNXe3200

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

WinReporter Guide de démarrage rapide. Version 4

Protection des données avec les solutions de stockage NETGEAR

StruxureWare Power Monitoring v7.0. La nouvelle génération en matière de logiciel de gestion complète d énergie

Introduction à la programmation des GPUs

Network Shutdown Module V3 Extension du Manuel Utilisateur pour architecture Virtualisée VMWare ESX Server

Retour d exprience sur le cluster du CDS

Etude d architecture de consolidation et virtualisation

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Tutoriel Création d une source Cydia et compilation des packages sous Linux

Informatique. Les réponses doivent être données en cochant les cases sur la dernière feuille du sujet, intitulée feuille de réponse

NatStar V8.00. Ce document présente la liste des nouvelles fonctionnalités de la 8.00, disponible à partir de septembre 2013.

Rapport d'activité 2014 de la plate-forme technologique CISM

Julien MATHEVET Alexandre BOISSY GSID 4. Rapport RE09. Load Balancing et migration

Linux embarqué: une alternative à Windows CE?

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

INFO-F-404 : Techniques avancées de systèmes d exploitation

Communiqué de Lancement Sage CRM v Editions Express, Standard et Avancée Module CRM Sage 100 Entreprise. Communiqué de Lancement Sage CRM 6.

FileMaker Server 14. Guide de démarrage

Introduction au calcul parallèle avec OpenCL

pfsense Manuel d Installation et d Utilisation du Logiciel

Maîtriser les technologies Big Data pour obtenir des résultats en quasi-temps réel

Manuel du logiciel PrestaTest.

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

<Insert Picture Here> Solaris pour la base de donnés Oracle

Programmation parallèle et ordonnancement de tâches par vol de travail. Thierry Gautier MOAIS, INRIA, Grenoble

3 ème journée des utilisateurs de l archivage

Projet d'infrastructure de stockage mutualisée

Environnements de développement (intégrés)

Retour d expérience, portage de code Promes dans le cadre de l appel à projets CAPS-GENCI

Windows Server Chapitre 1: Découvrir Windows Server 2008

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

ERP Service Negoce. Pré-requis CEGID Business version sur Plate-forme Windows. Mise à jour Novembre 2009

Outils pour les réseaux de neurones et contenu du CD-Rom

Structure fonctionnelle d un SGBD

EMC VNX VG2 GATEWAY. Caractéristiques techniques ARCHITECTURE

Cluster High Performance Computing. Dr. Andreas Koch, Cluster Specialist

Transcription:

ACC-TB-v2 ENVIRONNEMENT DE COMPILATION ET LIBRAIRIES SUR ANTARES Référence du document: idata-dev-08- Révision 08 - Date de création : 24/02/2015 Validation : PBM le 24/02/2015 Documents référencés : aucun Résumé : Environnement de compilation et librairies sur ANTARES Ce document fournit les informations nécessaires à la compilation d un code : exemples de Makefile, utilisation de l une ou l autre des deux librairies MPI (Intel MPI, Open MPI), compilation des codes accélérés sur GPU, options du compilateur Intel, utilisation des librairies mathématiques (MKL, FFTW) et des librairies de format de données (HDF5, NETCDF). Révisions : 01 : 03/11/2010, P. Bousquet-Mélou 02 : 14/03/2011, P. Bousquet-Mélou : description de la configuration mise à jour (armoire «Westmere), modifications librairie MKL 10.2 (mise à jour de l aide en ligne Intel pour l édition de lien) 03 : 03/08/2011, P. Bousquet-Mélou : mises à jour pour la compilation des codes accélérés sur GPU 04 : 06/09/2012, P. Bousquet-Mélou : description de la configuration mise à jour (matériel installé début 2012), référence à l URL de documentation GPU 05 : 08/10/2012, P. Bousquet-Mélou : extension «EQUIPEX» du cluster 06 : 24/07/2013, P. Bousquet-Mélou : nouvel environnement sur Red Hat 6.3 07 : 09/04/2014, P. Bousquet-Mélou : description de la configuration mise à jour (matériel Ivy bridge installé début 2014) 08 : 24/02/2015, P. Bousquet-Mélou : norme MPI-3 Accessibilité CRIHAN : OUI EXTÉRIEURS : OUI RESTREINT : NON CRIHAN Technopôle du Madrillet 745, avenue de l Université 76800 SAINT-ÉTIENNE DU ROUVRAY Tél. : 02 32 91 42 91 - Fax : 02 32 91 42 92 - mailto:crihan-admin@crihan.fr www.crihan.fr SIRET Nº 383 599 990 00025 - CODE APE 7219Z

SUR ANTARES Page 2/14 Table des matières Description de la configuration 3 Matériel 3 Logiciel 3 Environnement de compilation 4 Compilation des codes séquentiels 4 Compilation des codes parallèles MPI 4 Normes MPI-1 et MPI-2 4 Norme MPI-3 4 Compilation avec la librairie Intel MPI 4 Compilation avec la librairie Open MPI 5 Compilation de code CUDA ou OpenCL pour accélération sur GPU 5 Récapitulatif des commandes de compilation 5 Options de compilation Intel 6 Options d optimisation 6 Options de débogage 8 Options utilitaires 9 Options de gestion des formats libre ou fixe des fichiers Fortran 9 Librairies mathématiques 10 MKL (Intel Math Kernel Library) 10 FFTW 11 Librairies de formats de données 12 HDF5 12 NetCDF (Network Common Data Form) 14

TECHNIQUE ENVIRONNEMENT DE COMPILATION ET LIBRAIRIES SUR ANTARES 1. Révision 08 Page 3 /14 Description de la configuration La grappe de calcul ANTARES est une solution IBM idataplex d une puissance de 45 TFlops en CPU (3692 cœurs), 13 TFlops GPU et 2 TFlops Xeon Phi. Elle constituée de cinq armoires identiques à celle représentée ci-dessous. 1.1. Matériel 158 nœuds de calcul dx360-m2 (processeur «Nehalem EP», 1264 cœurs), dont 33 appartiennent à l Ecole Centrale de Nantes (ECN) 169 nœuds de calcul dx360-m3 (processeur «Westmere EP», 2028 cœurs) 20 nœuds de calcul dx360-m4 (processeur «Ivy Bridge», 400 cœurs), dont 18 ECN 13,4 To de mémoire DDR3 Réseau Intel InfiniBand QDR à faible latence et haut débit (40 Gbit/s) 280 To d espace disque rapide (brut) Nœud de calcul dx360-m2 : bi - processeurs 4-cœurs Intel Nehalem EP @ 2,8 GHz 24 Go de mémoire DDR3 Nœud de calcul dx360-m3 : bi - processeurs 6-cœurs Intel Westmere EP @ 2,8 GHz 48 ou 96 Go de mémoire DDR3 12 nœuds dx360-m3 sont dotés chacun d un espace disque interne de 10 To. 3 nœuds dx360-m3 sont dotés de 96 Go de mémoire. 13 nœuds dx360-m3 contiennent chacun deux modules GPU NVIDIA Fermi M2050. Nœud de calcul dx360-m4 : bi - processeurs 10-cœurs Intel Ivy Bridge @ 2,5 GHz 64 ou 256 Go de mémoire DDR3 1 nœud dx360-m4 (de visualisation) contient 2 GPU NVIDIA Quadro et 256 Go de mémoire DDR3 1 nœud dx360-m4 contient 2 cartes Xeon Phi et 256 Go de mémoire DDR3 1.2. Logiciel Système d exploitation Linux 64 bits (Red Hat 6.3) Gestionnaire de soumission de travaux IBM LoadLeveler Scripts de soumission : /soft/loadl/crihan_modeles_scripts Système de fichiers rapide IBM GPFS Environnement de développement : Compilateurs Intel 13.1 et Gnu 4.4.6 Fortran, C, C++ (support OpenMP) Librairies Intel MPI 4.1.0, Intel MPI 5.0.2 (support MPI-3) et Open MPI 1.4.3 Librairie mathématique Intel MKL 11.0.3 (dont BLAS, LAPACK, FFT) et FFTW API CUDA 5.0 et 6.5 (programmation GPU) Makefiles : /soft/makefiles Grappe de calcul ANTARES de type IBM idataplex (réduite à une armoire)

2. Environnement de compilation Sur l architecture d ANTARES, les sont naturellement conseillés. Les compilateurs Gnu g77 (Fortran 77), gfortran (Fortran 90), gcc (C) et g++ (C++) sont aussi disponibles. 2.1. Compilation des codes séquentiels Les commandes de compilation Intel pour un code séquentiel sont les suivantes : pour le Fortran 77 / 90 / 95 : ifort pour le C : icc pour le C++ : icpc Des modèles élémentaires de de fichiers Makefile ainsi qu un README se trouvent dans le répertoire : /soft/makefiles/serialcodes 2.2. Compilation des codes parallèles MPI Des modèles élémentaires de fichiers Makefile ainsi qu un README se trouvent dans le répertoire : /soft/makefiles/mpicodes 2.2.1. Normes MPI-1 et MPI-2 Les deux librairies Intel MPI 4.1.0 et Open MPI 1.4.3 sont disponibles pour des applications utilisant des fonctions des normes MPI-1 et MPI-2. Lors du portage d une telle application sur ANTARES, il est conseillé de tester ces deux librairies MPI. 2.2.2. Norme MPI-3 Pour des applications utilisant des fonctions de la norme MPI-3 (communication collective non bloquante par exemple), la librairie Intel MPI 5.0.2 est disponible. Son environnement s active par la commande suivante (qui peut être placée dans un fichier ~/.bash_profile (et non ~/.bashrc) à créer par l utilisateur, s il n utilise pas d autre librairie MPI) : source /opt/intel/impi/5.0.2.044/bin64/mpivars.sh 2.2.3. Compilation avec la librairie Intel MPI L environnement de la librairie Intel MPI 4.1.0 est activé par défaut. Les commandes de compilation avec Intel MPI sont les suivantes : pour le Fortran 77 / 90 / 95 : mpiifort pour le C : mpiicc pour le C++ : mpiicpc SUR ANTARES Page 4/14 Ces trois commandes utilisent respectivement les ifort, icc et icpc avec Intel MPI. ATTENTION : Noter les deux «i» dans le nom de la commande mpiicc précédente Avec Intel MPI, les commandes mpif90, mpicc (un seul «i») et mpicxx existent également, mais elles utilisent respectivement les compilateurs de Gnu gfortran, gcc et g++, moins conseillés que les.

2.2.4. Compilation avec la librairie Open MPI L environnement de la librairie Open MPI n est pas activé par défaut. Avant de compiler un code avec Open MPI, il faut activer son environnement avec la commande suivante : login@antares-adm:~: source /soft/environment/openmpi/openmpi-intel.sh Les commandes de compilation avec Open MPI sont les suivantes : pour le Fortran 77 / 90 / 95 : mpif90 pour le C : mpicc pour le C++ : mpicxx Après exécution de la commande «source» précédente, mpif90, mpicc et mpicxx utilisent respectivement les ifort, icc et icpc avec Open MPI. Pour l utilisation des compilateurs Gnu (moins conseillés) avec Open MPI, il faut mettre à jour l environnement avec la commande suivante : login@antares-adm:~: source /soft/environment/openmpi/openmpi-gnu.sh Les commandes mpif90, mpicc et mpicxx, dans ce cas, utilisent respectivement les compilateurs Gnu gfortran, gcc et g++ avec Open MPI. Si à l issue de ses tests, un utilisateur ne souhaite pas utiliser la librairie Intel MPI, mais uniquement la librairie Open MPI, il peut activer l environnement nécessaire de manière permanente dans son fichier ~/.bash_profile : login@antares-adm:~: cat.bash_profile # Librairie Open MPI / compilateur Intel source /soft/environment/openmpi/openmpi-intel.sh > /dev/null 2.3. Compilation de code CUDA ou OpenCL pour accélération sur GPU Se référer à la page http://www-tech.crihan.fr/calcul/tech/documentation-ibm-cluster-idataplex-antares/gpgpu/ 2.4. Récapitulatif des commandes de compilation SUR ANTARES Page 5 /14 Type de code / librairie utilisée Hybridation MPI / OpenMP Activation de l environnement Compilateur Commandes de compilation Fortran / C / C++ Séquentiel (ou OpenMP) - - Intel (conseillé) Gnu ifort / icc / icpc gfortran / gcc / g++ MPI / Intel MPI 4.1.0 (normes MPI-1 et MPI-2) Support complet (niveau «MPI_THREAD_ MULTIPLE») - Intel (conseillé) Gnu mpiifort / mpiicc / mpiicpc mpif90 / mpicc / mpicxx

SUR ANTARES Page 6/14 Type de code / librairie utilisée Hybridation MPI / OpenMP Activation de l environnement Compilateur Commandes de compilation Fortran / C / C++ MPI / Intel MPI 5.0.2 (norme MPI-3) Support complet (niveau «MPI_THREAD_ MULTIPLE») source /opt/ intel/impi/ 5.0.2.044/ bin64/ mpivars.sh Intel (conseillé) Gnu mpiifort / mpiicc / mpiicpc mpif90 / mpicc / mpicxx MPI / Open MPI 1.4.3 (normes MPI-1 et MPI-2) Non supportée (niveau «MPI_THREAD_ SINGLE») «source /soft/ environment/ openmpi/ openmpiintel.sh» «source /soft/ environment/ openmpi/ openmpignu.sh» Intel (conseillé) Gnu mpif90 / mpicc / mpicxx mpif90 / mpicc / mpicxx 2.5. Options de compilation Intel Les guides utilisateur des pour Linux sont fournis en ligne : Fortran : https://software.intel.com/en-us/node/510405 C et C++ : http://software.intel.com/sites/products/documentation/doclib/iss/2013/ compiler/cpp-lin/ 2.5.1. Options d optimisation Les options d optimisation conseillées sont les suivantes (compilation et édition de lien) : Option d optimisation Description -O2 Optimisation de base -O2 -xsse4.2 Optimisation de base, avec instructions SSE spécifiques Nehalem (vectorisation) -O3 Optimisation avancée -O3 -xsse4.2 Optimisation avancée, avec instructions SSE spécifiques Nehalem (vectorisation)

SUR ANTARES Page 7 /14 Option d optimisation -openmp Description Activation des directives OpenMP Lors du portage d un code sur ANTARES, il est conseillé de tester la validité et la performance des quatre premières options du tableau précédent. Pour les codes multi-threadés contenant des directives OpenMP, l option «-openmp» doit être utilisée à la compilation et à l édition de lien. D autres options peuvent parfois améliorer les performances ; leur validité sur un code donné doit être vérifiée : Option d optimisation -ip -ipo -no-prec-div -fast (codes séquentiels ou OpenMP, mais pas MPI) Description Interprocedural optimization (autorise l «inlining» de sousprogrammes présents dans un même fichier source) Interprocedural optimization (autorise l «inlining» de sousprogrammes présents dans des fichiers sources séparés) Optimisation du calcul de divisions de nombres réels Correspond au jeu d instructions : «-O3 -xhost -ipo -no-prec-div -static» où «-xhost» génère le même niveau d optimisation que «-xsse4.2» sur l architecture du processeur Nehalem

SUR ANTARES Page 8/14 Option d optimisation «-O3 -xhost -ipo -no-prec-div» (tous types de code, y compris MPI) Description - Optimisation avancée, - Instructions SSE spécifiques Nehalem (vectorisation), - Optimisations interprocédurales, - Optimisation du calcul de divisions de nombres réels «-fast» peut s utiliser à la compilation et à l édition de lien d un code séquentiel ou OpenMP, mais pas à l édition de lien d un code MPI : l instruction «-static» (utilisation de librairies statiques) est incompatible avec les librairies dynamiques MPI. Pour un code MPI, l option «-O3 -xhost -ipo -no-prec-div» peut être utilisée à la compilation et à l édition de lien. 2.5.2. Options de débogage L option «-g» est indispensable pour obtenir des informations de débogage. Les trois instructions suivantes sont conseillées, la première à essayer en premier : -O2 -g -traceback -O2 -g -traceback -check bounds -O0 -g -traceback -check bounds «-traceback» permet d obtenir la pile d exécution des sous-programmes d un code jusqu à un arrêt provoqué par une exception : le nom du fichier source et le numéro de ligne de l instruction de code où l erreur se produit sont obtenus. «-check bounds» permet de détecter à l exécution, et parfois à la compilation, les débordements d indices de tableaux hors des limites déclarées ; cette option peut toutefois ralentir beaucoup l exécution d un calcul. L option «-O0» supprimant toute optimisation, le temps de calcul peut être considérablement augmenté si l exception de code se produit assez loin dans le temps après le début de son exécution. ATTENTION : Avec ifort, sans aucune option de compilation, l option «-O2» est appliquée. En revanche, lorsque la seule option «-g» est utilisée, «-O0» est appliquée automatiquement ; si «-O2» est souhaitée, il faut spécifier cette option («-O2 -g»).

SUR ANTARES Page 9 /14 2.5.3. Options utilitaires Option -cpp -I /home/group/login/inc -module /home/group/login/mod -p Description Interprétation du preprocessing C (#define, #ifdef, etc.) dans les codes sources Fortran. Répertoire des fichiers inclus (insérés dans des sources avec : #include «fichier.h») Répertoire des fichiers.mod produits par la compilation de modules Fortran 90 (par défaut, ces fichiers sont produits dans le répertoire courant). Option de profilage (compilation et édition de lien) ; après exécution, un profil s obtient avec gprof : gprof./code.exe gmon.out > prof.out 2.5.4. Options de gestion des formats libre ou fixe des fichiers Fortran Dans le «format libre», les instructions Fortran débutent et finissent dans un intervalle quelconque de numéros de colonne ; les sauts de ligne sont désignés par le caractère & en fin de ligne. Dans le «format fixe», les instructions commencent à partir de la septième colonne et doivent se terminer, par défaut, avant la soixante-douzième colonne (comprise) ; les sauts de ligne sont désignés par un caractère quelconque en sixième colonne. Pour un fichier d extension.f : Le format fixe est supposé par défaut par le compilateur. Si le format est fixe, mais avec des lignes dépassant la colonne 72, il faut ajouter l option «-extend-source» (la limite est alors située en colonne 132). Si le format est libre, il faut introduire l option «-free». Pour un fichier d extension.f90 : Le format libre est supposé par défaut par le compilateur. Si le format est fixe, il faut introduire l option «-fixed». Si le format est fixe, mais avec des lignes dépassant la colonne 72, il faut introduire les options «-fixed -extend-source» (la limite est alors située en colonne 132).

2.6. Librairies mathématiques 2.6.1. MKL (Intel Math Kernel Library) Le Manuel de Référence de MKL 11.0.3 est disponible sur le lien suivant : http://download-software.intel.com/sites/products/documentation/doclib/mkl_sa/ 11/11.0.3/mklman.pdf Fonctionnalités TECHNIQUE MKL contient des sous-programmes optimisés pour architecture Intel : 1. Librairie d algèbre linéaire BLAS (Basic Linear Algebra Subprograms) : BLAS 1 : opérations vecteur - vecteur BLAS 2 : opérations matrice - vecteur BLAS 3 : opérations matrice - matrice Versions «Sparse» de BLAS 1-3 : extensions aux vecteurs et matrices creux, représentés sous forme compressée 2. Librairie d algèbre linéaire LAPACK (Linear Algebra PACKage) : Cet ensemble de sous-programmes permet de résoudre des systèmes d équations linéaires d inconnues réelles ou complexes, pour différents types de matrice (générale, bande, triangulaire, triangulaire bande, tridiagonale, symétrique définie positive, hermitienne définie positive, etc.) Les opérations suivantes sont réalisables avec les sous-programmes LAPACK de MKL : factorisation de matrice, équilibrage de matrice, résolution de systèmes d équations linéaires, estimation du nombre-condition d une matrice, raffinement de la solution d un système et calcul de l erreur numérique (après factorisation de la matrice d un système et calcul de la solution), inversion de matrice Deux catégories de sous-programmes sont distinguées : des sous-programmes de calcul («computational routines») pour chaque étape de la résolution d un système, par exemple la factorisation LU avec dgetrf, le calcul de la solution d un système avec dgetrs, le raffinement et la détermination de l erreur avec dgerfs, des sous-programmes pilotes («driver routines») qui effectuent les différentes étapes de résolution en un seul appel ; par exemple les trois opérations précédentes sont réalisées par un appel unique à dgesvx. 3. Librairies parallèles d algèbre linéaire PBLAS, BLACS et ScaLAPACK : SUR ANTARES Page 10/14 ScaLAPACK (Scalable Linear Algebra PACKage) contient un ensemble de sous-programmes parallèles, pour architecture à mémoire distribuée, issus des sous-programmes LAPACK. ScaLAPACK s appuie sur deux autres librairies : PBLAS (Parallel Basic Linear Algebra Subprograms) : version parallèle de BLAS pour architecture à mémoire distribuée, BLACS (Basic Linear Algebra Communication Subprograms) : librairie de communication par passage de message, fondée sur MPI. Elle permet, après avoir défini une grille de processus, d échanger des blocs de matrice.

SUR ANTARES Page 11/14 4. Sous-programmes de calcul FFT (Fast Fourier Transform) : MKL possède ses propres sous-programmes de calcul de DFT (Discrete Fourier Transform) séquentiels, multi-threadés ou à parallélisme distribué. Le chapitre 12 du Manuel de Référence de MKL 11.0.3 (voir lien précédent) décrit l expression générale des FFT disponibles et les fonctions de calcul «forward» (signe négatif dans l exposant) et «backward» (signe positif dans l exposant). Une Interface de support des sous-programmes de la librairie FFTW est également disponible pour le calcul de DFT. Cette interface permet de compiler avec MKL, sans les modifier, des codes utilisant des sous-programmes de la librairie FFTW (http:// www.fftw.org). Edition de lien avec MKL Un README et des modèles de fichiers Makefile, avec les options d édition de lien pour des codes utilisant les composantes BLAS, LAPACK ou FFTW de MKL, figurent dans le répertoire : /soft/makefiles/mkl Intel fournit une aide pour le choix des options d édition de lien à utiliser pour la compilation de codes utilisant la librairie MKL : http://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/ Sur cette page, il faut sélectionner : «Intel(R) product» : MKL 11.0 «OS» : Linux «architecture» : Intel(R) 64 «compiler» : Intel (Fortran ou C/C++) ou Gnu (Fortran ou C/C++) «dynamic or static linking» : Static et les autres caractéristiques spécifiques au cas traité : entiers simple ou double précision, code séquentiel / threadé (OpenMP), librairie Intel MPI ou Open MPI dans le cas d utilisation de sous-programmes parallèles de FFT (option CDFT), ScaLAPACK ou BLACS. Par exemple, dans le cas d un code utilisant des sous-programmes BLAS ou LAPACK et des entiers simple précision, compilé avec le compilateur Intel, le jeu des librairies MKL à placer en édition de lien est le suivant : -Wl,--start-group ${MKLROOT}/lib/intel64/libmkl_intel_lp64.a ${MKLROOT}/lib/intel64/ libmkl_sequential.a ${MKLROOT}/lib/intel64/libmkl_core.a -Wl,--end-group -lpthread -lm 2.6.2. FFTW Cette librairie permet le calcul de transformées de Fourier discrètes (DFT) sur des données de type réel ou complexe dans une ou plusieurs dimensions. Le répertoire /soft/library/fftw3.3.2 contient quatre versions de la librairie FFTW 3.2.2 :

SUR ANTARES Page 12/14 Répertoire /soft/library/fftw3.2.2/ fftw3.2.2 /soft/library/fftw3.2.2/ fftw3.2.2-single-precision /soft/library/fftw3.2.2/ fftw3.2.2-openmp /soft/library/fftw3.2.2/ fftw3.2.2-single-precisionopenmp Version de la librairie FFTW 3.2.2 version séquentielle, double précision version séquentielle, simple précision version multi-threadée OpenMP, double précision version multi-threadée OpenMP, simple précision Un README et un modèle de fichier Makefile, avec les options d édition de lien pour un code Fortran utilisant la librairie FFTW, figure dans le répertoire : /soft/makefiles/fftw Le manuel utilisateur de FFTW 3.2.2 se trouve sur le lien http://www.fftw.org/fftw3_doc/. La librairie MKL possède également une interface de support des sous-programmes de FFTW : les codes utilisant ces sous-programmes peuvent être compilés avec la librairie MKL, sans modifications. 2.7. Librairies de formats de données 2.7.1. HDF5 Cette librairie est particulièrement adaptée à l exécution performante d écriture et de lecture de grands volumes de données scientifiques. Son utilisation est décrite sur le lien http://www.hdfgroup.org/hdf5/. Les versions 1.8.4 et 1.8.5 de HDF5 sont disponibles sur ANTARES. HDF5 1.8.10 Répertoire Version de la librairie HDF5 1.8.10 /soft/library/hdf5-1.8.10-ifc-impi-parallel /soft/library/hdf5-1.8.10-ifc-ompi-parallel version Fortran, C, parallèle Intel MPI, compatible version Fortran, C, parallèle Open MPI, compatible Les commandes de compilation pour l utilisation des différentes versions de HDF5 1.8.10 sont indiquées dans un README placé dans chacun des répertoires indiqués.

SUR ANTARES Page 13/14 HDF5 1.8.8 Répertoire /soft/library/hdf5-1.8.8-ifc-static Version de la librairie HDF5 1.8.8 version Fortran, C, C++, séquentielle, compatible Les commandes de compilation pour l utilisation de cette version de HDF5 1.8.8 sont indiquées dans un README placé dans chacun le répertoires indiqué. HDF5 1.8.5 Répertoire Version de la librairie HDF5 1.8.5 /soft/library/hdf5-1.8.5-ifc-static /soft/library/hdf5-1.8.5-ifc-impi-parallel /soft/library/hdf5-1.8.5-ifc-ompi-parallel version Fortran, C, C++, séquentielle, compatible version Fortran, C, parallèle Intel MPI, compatible version Fortran, C, parallèle Open MPI, compatible Les commandes de compilation pour l utilisation des différentes versions de HDF5 1.8.5 sont indiquées dans un README placé dans chacun des répertoires indiqués. HDF5 1.8.4 Répertoire Version de la librairie HDF5 1.8.4 /soft/library/hdf5-1.8.4-gnu-static /soft/library/hdf5-1.8.4-gnu-impi-parallel /soft/library/hdf5-1.8.4-gnu-ompi-parallel version Fortran, C, C++, séquentielle, compatible compilateurs Gnu version Fortran, C, parallèle Intel MPI, compatible compilateurs Gnu version Fortran, C, parallèle Open MPI, compatible compilateurs Gnu Les commandes de compilation pour l utilisation des différentes versions de HDF5 1.8.4 sont indiquées dans un README placé dans chacun des répertoires indiqués.

2.7.2. NetCDF (Network Common Data Form) Cette librairie permet la création, l accès ou le partage de données scientifiques organisées en tableaux, sous un format indépendant des architectures matérielles. Son utilisation est décrite sur le lien http://www.unidata.ucar.edu/software/netcdf/ docs/. NetCDF 1.4.3 TECHNIQUE SUR ANTARES Page 14/14 Répertoire /soft/library/netcdf-4.1.3 /soft/library/netcdf-4.1.3_gnu4.4.6 Version de la librairie NETCDF 4.1.3 version Fortran, C, C++, séquentielle, compatible version Fortran, C, C++, séquentielle, compatible compilateurs Gnu Les commandes de compilation pour l utilisation de ces librairies sont indiquées dans un README placé dans chacun des répertoires indiqués. NetCDF 1.4.1 Répertoire /soft/library/netcdf-4.1.1 /soft/library/netcdf-4.1.1-hdf5 Version de la librairie NETCDF 4.1.1 version Fortran, C, C++, séquentielle, compatible version Fortran, C, C++, séquentielle, compatible, avec support HDF5 Les commandes de compilation pour l utilisation de ces librairies sont indiquées dans un README placé dans chacun des répertoires indiqués.