View
2
Download
0
Category
Preview:
Citation preview
Calcul scientifique
David Sanchez
LCPQ
<david.sanchez@irsamc.ups-tlse.fr>
Qui suis-je ?
● David Sanchez● Ingénieur d'études systèmes et réseaux @
LCPQ Toulouse● DUT R&T Béziers 2006-2008● LP R&T ASUR Béziers 2008-2009● https://twitter.com/dvdsnchzit● http://fr.linkedin.com/in/dsanchez34● http://fr.viadeo.com/fr/profile/david.sanchez30
Le LCPQ c'est quoi ?
● Laboratoire de Chimie et Physique Quantiques.● Université Paul Sabatier - Toulouse 3.● Unité Mixte de Recherche (UPS/CNRS)● Membre de l'IRSAMC (Institut de Recherche sur
les Systèmes Atomiques et Moléculaires Complexes).
● Membre du Labex NEXT (Nano-mesures Extrêmes-Théorie).
● Laboratoire de recherche théorique en chimie quantique et physique moléculaire.
Le LCPQ fait quoi ?
● Production de codes de calcul et de simulation :– https://github.com/LCPQ– http://irssv2.ups-tlse.fr/codes/
● Applications scientifiques et technologiques :– Industrie pharmaceutique : mise au point de
médicaments.– Electronique : nano & micro - électronique.– Matériaux : nanotubes de carbone, graphène, etc.– Catalyse : réactions enzymatiques, industrie pétrolière.
Comment ?
Pour calculer tout ça
● Il faut résoudre l'équation de Schrödinger :
– Ψ : Fonction d’onde électronique de l’état fondamental du système.
– R : Vecteur de R.– 3N contenant les positions des électrons
– E0 : Énergie correspondante
● Travail dans un espace à 3N dimensions.
Se pose donc un « petit » problème
● Approches usuelles– Ψ(R) est exprimée sur base finie de fonctions– On résout le problème approché avec des méthodes de
Krylov ⇒ Algèbre linéaire avec de grandes matrices (∼ 10⁸ × 10⁸)
● Approche utilisé par une des équipes :– CIPSI : Résoudre le problème approché dans un espace
plus petit (∼ 10⁴ × 10⁴).– QMC : Utiliser des méthodes stochastiques (Monte Carlo
Quantique) pour résoudre le problème exact dans tout le reste de l’espace.
Exemple
● Calculons l'énergie d'atomisation de 55 molécules :
Be, CH3Cl, F, HCO, Na, P, SiH2(3B1), BeH, CH4, F2, HF, Na2, P2, SiH3, C, Cl, H2CO, HOCl, NaCl, PH2, SiH4, C2H2, Cl2, H2O, Li, NH, PH3, SiO, C2H4, ClF, H2O2, Li2, NH2, S, SO, C2H6, ClO, H2S, LiF, NH3, S2, SO2, CH, CN, H3COH, LiH, NO, Si, CH2(1A1), CO, H3CSH, N, O, Si2, CH2(3B1), CO2, HCl, N2, O2, Si2H6, CH3, CS, HCN, N2H4, OH, SiH2(1A1).
Workflow
● En CIPSI– Sur une machine à 16 cœurs à mémoire
partagée : entre 500 et 5000 heures cpu.
● En QMC– Le run va tourner sur des dizaines de milliers
de cœurs : entre 5000 et 200 000 heures cpu.
On a à notre disposition
Le pc de bureau
● 1 socket de type x86_64, quad-core, hyperthreading, ~3GHz.
● Entre 4 et 16Go de RAM.● HDD d'environ 2To ou SSD de 256Go.● Carte graphique nvidia ou ati quand
non-intégré.● Réseau gigabit ethernet.● Environ 700€
Le serveur de calcul
● 2 sockets x86_64, 10/12/14 cœurs/socket, hyperthreading, entre 2,3 et 2,8 Ghz/cœur.
● 64Go de RAM.● HDD 15k tpm ou SSD, avec raid0 si utile.● Réseau ethernet gigabit et 10GbE,
infiniband.● Carte accélératrice type Nvidia Tesla, AMD
Firepro, Intel Xeon Phi.● Environ 7000€ voir plus.
Faisons un cluster au labo !
● X serveurs de calcul.● Format rack : 1U, 2U, parfois plus gros selon le hardware.● Réseau « management » : switch ethernet.● Réseau rapide/faible latence : infiniband et 10GbE (en cut-
through switching).● Un serveur de login.● Un ordonnanceur (SLURM / Torque / SGE).● Un NAS pour le stockage non temporaire volumineux.● Un système de fichiers partagé (BeeGFS par exemple ou Lustre).● Partie logicielle « maison », centos ou debian/ubuntu avec divers
outils.● Refroidissement et électricité (jusqu'à 40 x 500W par baie, soit
20kW).● On arrive vite à 250 000€.
Clusters du LCPQ
Si le cluster du labo ne suffit pas
● Il y a les supercalculateurs !– Machines compactes (90 serveurs/baie)– Réseaux faible latence et haut-débit (infiniband ou
ethernet 10Gb minimum).– Système de fichiers parallèle pour le stockage
temporaire des calculs (Lustre / BeeGFS / GPFS).– Plusieurs serveurs de login.– Ordonnanceur de jobs (SLURM / Torque / SGE).– Refroidissement liquide jusqu'au processeur.– La consommation électrique explose (plusieurs MW).– Coût d'acquisition supérieur au million d'euros.
CALMIP : EOS
Définitions
● Flop : Opération flottante (MUL, ADD). Opération sur les nombres à virgule flottantes (nombre réels). Ex : 3,14159.
● Flops/s : Nombre d'opérations flottantes à la seconde.● SP : Simple Précision (flottants 32 bits).● DP : Double Précision (flottants 64 bits).● RPeak : performance crête en Flops/s.● RMax : performance après passage au benchmark Linpack.● Exemple : Xeon E5-2680v3, 12 coeurs, 2,5GHz, 4 ADD and 4
MUL par cycle.– RPeak : 12 x (4+4) x 2,5x10⁹ = 240x10⁹ flops/s = 240GFlops/s (DP).
● Exemple : Xeon Phi x200, 72 coeurs, 1,0-1,3GHz– RPeak : 72 x (2 + 2) x 1,2x10⁹ = 3,4x1012 flops/s = 3,4TFlops (DP).
Top500 – Qui a la plus grosse ?
● Classement des 500 machines publiques les plus rapides de la planète.
● 2 fois par an (mai et novembre).● Dominé par Tianhe-2 (Chine) depuis juin 2013.
– Plus de 3 millions de coeurs :● Xeon E5-2692 (12coeurs @ 2,2GHz), 1 PB de RAM.● Xeon Phi 31S1P.● Réseau custom « TH Express-2 ».● 12,4 PB de stockage partagé.● RPeak : 54,9 PFlops, RMax : 33,8 PFlops, ratio Peak/Max : 61,5 %.● Consommation : 17,8MW, 24MW avec le refroidissement.● 390 millions de $.● EOS (399ème) chez Calmip est à RPeak = 274,2TFlops, Rmax = 255,1TFlops, ratio : 93 %.● Occigen au CINES : 77 %.
● www.top500.org
Tianhe-2
170 racks au total
OCCIGEN (Cines – France)
● 27 racks pour le calcul● 7 racks pour les services et le
stockage
Alors je calcule où ?
Ressources disponibles en France
● Tier 0 – Europe > 10M d'heures CPU.● Tier 1 – France ~ 1-10M d'heures
CPU.● Tier 2 – Région : 100k – 1M d'heures
CPU.● ''Tier 3'' : ressources locales (pc,
cluster local).
Tier 0 – Europe
● PRACE : Partnership for Advance Computing in Europe.– 25 pays membres– 6 machines disponibles :
● CURIE (France), Intel Sandy Bridge, 1,35PFlops.● FERMI (Italie), IBM BlueGene/Q, 1,7PFlops.● Hazel Hen (Allemagne), Intel Haswell, 5,6PFlops.● JUQUEEN (Allemagne), BlueGene/Q, 5PFlops● MareNostrum (Espagne), Intel Sandy Bridge, 925TFlops.● SuperMUC (Allemagne), Intel Sandy Bridge, 2,9PFlops.
– En cumulé, c'est plus de 300k cœurs disponibles et plus de 1,7 million de jobs par jour.
● http://www.prace-ri.eu/
Tier 1 – France
● GENCI : Grand Equipement Nationnal de Calcul Intensif– IDRIS (Orsay)
● Ada, 230TFlops.● Turing, 836TFlops.
– CINES (Montpellier)● OCCIGEN, 1,6PFlops.
– TGCC (Bruyères-le-Chatel)● Curie en configuration complète, 2PFlops.
● France Grilles– 18 sites physique.– 32 000 processeurs.– 31 Po de stockage.
Tier 2 – Régional
● CALMIP : CALcul en Midi-Pyrénées– EOS, 12240 cœurs, 255 Tflops RMax (274
TFLops RPeak).– Eosmesca : 128 coeurs, 2To de RAM. 4
machines connectés via Bull Coherency Switch. Basés sur des Intel Xeon Haswell à 16coeurs/2,2GHz.
● CloudMIP : partie régionale de France Grilles, opérée par l'IRIT, 256 cœurs
« Tier 3 » - Local
● LCPQ : sv26– 100 serveurs.– Divers cpus : Intel Xeon, Intel Atom, AMD Barcelona.– De 16 à 192Go de RAM.– Réseau 10GbE et certains serveurs en infiniband.– Serveur de login/gestion des jobs : 12 cœurs, 64Go
de ram, 7To de stockage pour débuter, 14To max à terme. Quota de 50Go/utilisateur.
– Ordonnanceur SLURM.– Nas de 15To.– Système de fichier parallèle BeeGFS, 30To.
HP Moonshot
Définitions
Mémoire partagée ou distribuée ?
● Mémoire partagée– C'est la mémoire accessible en local sur un pc
ou serveur.
● Mémoire distribuée– Elle est répartie sur plusieurs nœuds.
Séquentiel/parallèle
● Séquentiel– Traitement suivant un ordre prédéfini.
● Parallèle– Plusieurs traitements peuvent être effectués en
simultané.
OpenMP
● Interface de programmation pour le calcul parallèle sur les machines à mémoire partagée
● Disponible sous GNU/Linux, OS X, Windows
● Langages : C, C++, Fortran● Actuellement en version 4.0● Alternative : OpenACC (cpu/gpu)
OpenMP – Exemple sans optimisation
#include<stdio.h>
#include<stdlib.h>
int main (int argc, char const *argv[]){
int n;
for(n=0;n<8;n++){
printf("Element %d traité\n",n);
}
return EXIT_SUCCESS;
}
OpenMP - Optimisons
#include<stdio.h>
#include<stdlib.h>
#include<omp.h>
int main (int argc, char const *argv[]){
int n;
#pragma omp parallel for
for(n=0;n<8;n++){
printf("Element %d traité par le thread %d \n",n,omp_get_thread_num());
}
return EXIT_SUCCESS;
}
MPI
● Message Passing Interface● Bibliothèques de fonctions● C, C++, Fortran● Standard de communication pour des
programmes parallèles sur systèmes à mémoire distribuée
● Opensource : OpenMPI & MPICH2● http://www.idris.fr/formations/mpi.html● http://www.idris.fr/data/cours/parallel/mpi/ID
RISMPI.pdf
Dans le monde de théorie
● Le mieux est de mixer OpenMP et MPI pour exploiter au max les ressources fournies.
● Sauf que le code devient complexe.● MPI à ses limites sur un grand nombre
de nœuds.● Remplacer MPI par de l'asynchrone
type ØMQ ?
Parlons hardware
Réseaux
Types de réseaux HPC
● Etoile● Fat-tree● 2D Mesh● 2D à 6D Torus● 3D Hypercube● Compromis entre bande passante,
prix, faisabilité physique,
Infiniband
● Le plus utilisé dans le HPC● Haut-débit, faible latence● Actuellement c'est le FDR qui est
utilisé (14GB/s), le plus souvent agrégé par 4, ce qui donne un unique lien à 56GB/s.
● Futur : EDR, 25GB/s, soit 100GB/s en x4.
Omni-path
● Mis au point par intel, après rachat équipe réseau Cray et de Qlogic
● Réseau à 100GB/s● Optimisations pour MPI● Switchs 48 ports, là où infiniband est
limité à 36.● Annoncé moins cher et moins
énergivore qu'infiniband.
BXI
● Bull eXascale Interconnect● Accélération hardware● 64k nœuds, MPI hardware● Implémentation du protocole Portals
4.
Cray
● Gemini, 3D Torus (https://www.nersc.gov/users/computational-systems/retired-systems/hopper/configuration/interconnect/).
● Aries, topologie ''Dragonfly'' (http://www.nersc.gov/assets/Uploads/NERSC.XC30.overview.pdf).
● Partie racheté par Intel en 2012.
IBM
● 5-D Torus.● Infiniband ou 10G Ethernet.● https://www.alcf.anl.gov/files/IBM_BGQ
_Architecture_0.pdf
Ethernet
● 1/10/40 Gb/s.● Le 25G et 50G en cours de
standardisation.● Le cut-through switching est
nécessaire pour diminuer la latence.● Présent sur les petits clusters.
Architecture CPU
Architecture CPU – Xeon Phi
Temps d'accès
● Les latences sont l'ennemi de la performance en HPC.– RAM : ns– infiniband : µs– HDD : ms
OpenHPC
● Elaboration d'un framework opensource.
● Réunion de divers acteurs du HPC– Laboratoires, contructeurs, développeurs, etc
● Faciliter le développement d'applications HPC.
● http://www.openhpc.community/
Stockage et HPC
● NAS/SAN classique (EMC, NetApp, etc)● Mais on trouvera le plus souvent :
– Lustre– GPFS– BeeGFS (en-FHGFS)– Etc
● Avec de nouvelles approches (Lustre sur ZFS)
HPC et Big-data
● On parle de plus en plus de coupler HPC avec big-data.
● La biologie génère d'énormes quantités de données (ADN notamment).
● Les simulations « classiques » devenant de plus en plus grosse, la quantité de données à stocker progresse aussi.
HPC au futur
● Tianhe-2 va être mis à jour avec des accélérateurs maison suite à interdiction import matériel Intel HPC.
● Summit (150PFlops) et Sierra (100PFlops)– IBM Power 9 / Nvidia Volta.– NVLink remplace PCI-Express.– Espace mémoire cohérent ram/mémoire vidéo.
HPC au futur
● ''Aurora'' : prochaine machine à +150PFlops sur base Intel Xeon Phi
HPC au futur
● Tera-1000– Programme entre le CEA et Bull pour
développer une machine exaflopique.– Première tranche en cours avec – Deuxième tranche (2017) : arriver à 25 Pflops
avec une consommation électrique identique à Tera-100 (2010 / 1PFlops / 4,5MW).
HPC au futur
● Enfin l'année d'ARM ?● Pas sûr avec la contre-offensive
d'Intel avec le Xeon-D
HPC au futur
● Bataille dans les réseaux.● HPC dans le cloud (openstack vs
baremetal).● Conteneurs (docker/lxc/whatever).● Unikernel (Un binaire qui contient tout
le nécesaire à l'exécution d'une application).
● Portabilité.
Citation
● Le HPC, c'est aller vite pour être compétitif.
Questions ?
Recommended