360 likes | 536 Views
Blue Gene, présentation générale. François BOTHOREL- Architecte HPC. Motivations du projet Blue Gene. Répondre aux limites des clusters traditionnels en termes de performance/consommation/administration/complexité/fiabilité
E N D
Blue Gene, présentation générale François BOTHOREL- Architecte HPC
Motivations du projet Blue Gene • Répondre aux limites des clusters traditionnels en termes de performance/consommation/administration/complexité/fiabilité • On constate qu’un grand nombre d’applications scientifiques tirent partie d’un grand nombre de processeur • Construire un système capable d’évoluer jusqu’à > 100k processeurs • avec des processeurs faible consommation • le plus dense possible incluant la mémoire et les réseaux • Un rapport calcul/communication constant • Finalement, l’idée est simple
La ligne de produits BlueGene: Blue Gene/P PPC 450 @ 850MHz 3+ PF Blue Gene/Q Power Multi-Core 20+ PF Blue Gene/L PPC 440 @ 700MHz 360+ TF 2004 2010 2007
Principes de base BG/L • Système massivement parallèle : un très grand nombre de noeuds • Basse consommation, pour une meilleure densité (25W / Noeud) • Haute performance unitaire en calculs flottants • Technologie “system on a chip” (intégration) • Interconnexion des noeuds selon un tore 3D • Facilité de construction des configurations étendues (chaque noeud à 6 voisins) • Les I/O et opérations globales se font sur des réseaux auxiliaires • Les applications se font selon un modèle SPMD (passage de message) • Un processus par noeud • Temps système diminué
System BG/L : vue d’ensemble 64 Racks, 64x32x32 Rack 32 Node Cards 2 midplanes Node Card 180/360 TF/s 64 TB (32 chips 4x4x2) 16 compute, 0-2 IO cards 2.8/5.6 TF/s 1 TB Compute Card 2 chips, 1x2x1 90/180 GF/s 32 GB Chip 2 processors 5.6/11.2 GF/s 1.0 GB 2.8/5.6 GF/s 4 MB
Compute Card : 2 noeuds Metral 4000 connector (180 pins) Heatsinks designed for 15W 54 mm (2.125”) 206 mm (8.125”) wide, 14 layers 1GB DDR
Midplane torus, tree, barrier, clock, Ethernet service port connects 16 compute cards 32- way (4x4x2) node card Ethernet-JTAG FPGA DC-DC converters 2 optional IO cards Gb Ethernet connectors through tailstock Latching and retention
Rack de Calcul, vue réelle Hot Air Cold Air
Node Card 32 Compute Cards up to 2 I/O cards Blue Gene/P System Rack up to 256 racks Cabled 32 Node Cards up to 64x10 GigE I/O links Quad-Core PowerPC System-on-Chip (SoC) up to 3.56 PF/s 512 or 1024 TB 14 TF/s 2 or 4 TB Compute Card 1 chip, 20 DRAMs The system scales to256 racksachieving 3.56 PF/speak 435 GF/s 64 or 128 GB Chip 4 processors 13.6 GF/s 2 or 4 GB DDR2 13.6 GF/s 8 MB EDRAM
Les éléments d’un système Blue Gene Host System Service Node and Front End Nodes SuSE SLES9/10, HPC SW Stack, File Servers, Storage Subsystem, XLF/C Compilers, DB2 Blue Gene Rack(s) Hardware/Software
Architecture générale d’un système Blue Gene • Les racks de BG/L sont intégrés dans un cluster plus général • Ce cluster est généralement composé • D’un ou plusieurs serveurs frontaux • D’un serveur de « service » • De serveurs de fichiers • De baies de stockage • Ce cluster est un cluster de gestion qui permet : • De contrôler les racks de calcul • De fournir un système de fichier aux racks • De soumettre des travaux aux racks de calcul Racks Blue Gene
Organisation hiérarchique Nœud de service : management du système de manière transparente à l’utilisateur • Nœuds I/O : fournissent un panel de services plus complets comme les sockets, la gestion des fichiers…tourne sous Linux • Nœuds de calcul : dédiés aux processus utilisateurs, micro noyau CNK Blue Gene
Nœud de base du BG/L • 1 nœud de base = 1 chip + 1 GB de mémoire ( BG/P: 2 ou 4 GB) • 2 CPU par nœud (BG/P: 4 CPU) • Chaque CPU possède une unité SIMD ( 2 FMA/cycle) • 2 types de nœud : I/O et calcul (ratio de 1:16 à 1:128 selon config), diffèrent par l’OS tourné • Réseaux intégrés • Pas de pagination • Kernel de calcul simplifié pour les nœuds de calcul et Linux pour les nœuds I/O • Pas de SMP ni cohérence de cache, 1 processus/ processeur (BG/P: le nœud de base dispose d’une cohérence mémoire SMP)
Les réseaux (1/3) : Tore 3D • Relie tous les noeuds de calcul, pas les noeuds d’I/O • Communication avec les voisins • Point à Point • Routage Hardware • Bande passante : 2.1 GB/s par noeud • 4 µs de latence entre proches voisins pour un saut (hop) avec MPI, 10 µs au plus loin
Les réseaux (2/3) : Global Tree (Arbre) • Relie les noeuds de calcul aux noeuds I/O • Dorsale de communication pour les applications I/O, sockets… • Opérations arithmétiques implémentées • Dorsale de communication spécialisée pour le calcul : • One to All Broadcast, All to All, • Opérations de réduction sur les noeuds de calcul • 700MB/s de bande passante • Latence : 5 µs (Round Trip Worst Case)
Les réseaux (3/3) : Autres • Réseau de contrôle • Permet l’accès du nœud de service aux nœuds I/O et calcul • Debug,monitoring… • Ethernet • Uniquement actif dans les nœuds d’I/O • Permet aux applications de communiquer avec l’extérieur (I/O, contrôle, interaction utilisateurs) • Global Barrier & Interrupt (basse latence) • Permet d’implémenter le « MPI_Barrier » • Relie tous les nœuds de calcul et I/O • Latence de la boucle 1,3 µs (65536 nœuds )
Torus Compute nodes only Direct access by app DMA Collective Compute and I/O node attached 16 routes allow multiple network configurations to be formed Contains an ALU for collective operation offload Direct access by app Barrier Compute and I/O nodes Low latency barrier across system (< 1usec for 72 rack) Used to synchronizetimebases Direct access by app 10Gb Functional Ethernet I/O nodes only 1Gb Private Control Ethernet Provides JTAG, i2c, etc, access to hardware. Accessible only from Service Node system Clock network Single clock source for all racks Les réseaux du Blue Gene/P
Le hardware, du point de vue programmeur • Deux CPUs par chip (BG/P : 4 CPU) • Chaque CPU peut effectuer 2 multiply/adds flottants • 32 x 64-bit double FP Registers • La fréquence des CPUs est de 700 MHz (relativement lent, mais équilibré avec la mémoire, contrôleur mémoire intégré…) (BG/P: 850 MHz) • Adressage mémoire 32 bits • La performance crête est de 5.6 GFlops par noeud. (BG/P: 13.6 GFlops) • Mémoire intégrée : L1 (32KB) , L2 (4KB, prefetch), L3 ( 4MB) (BG/P 8MB) • Tore 3D • Point to point: MPI_ISEND, MPI_IRECV • Global combine/broadcast tree network • Collectives: MPI_GATHER, MPI_SCATTER • Barrier/Interrupt • Synchronisation : MPI_BARRIER
CPU0 CPU1 CPU0 CPU1 2 façons d’utiliser le hardware • Mode virtuel • CPU0 et CPU1 gère des taches indépendantes « virtuelles » • Chacun effectue ses calculs et sa communication • Le calcul et la communication ne se recouvrent pas • Performance de 5.6 Gflops • Mode coprocesseur • CPU0 gère le calcul • CPU1 gère les communications • La communication recouvre le calcul • Performance crête de 5.6/2=2.8 Gflops
Mode virtuel VS Mode coprocesseur • Virtuel • Le double de puissance • Mais pas le double de performances : • Moitié moins de mémoire (512 MB / CPU) • Moitié moins de cache L3 • Moitié moins de bande passante réseau • Le CPU se charge du calcul ET des communications • Coprocesseur • Seulement 1 CPU dispo pour exécuter le code utilisateur • Mais toute la mémoire a disposition ( 1GB) • L’autre CPU décharge la communication • Uniquement bénéfique lors de l’utilisation de communications point à point
Application Application Application CPU2 CPU3 P P P P Core 1 Core 2 Core 3 Core 1 Core 3 P P P Core 1 Core 2 Core 3 Core 0 Core 0 Core 2 Core 0 T T T T T M M M M M M M Memory address space Memory address space Memory address space Blue Gene/P job modes allow flexible use of node resources
Les points forts du BG • Une exploitation totalement centralisée: tout se passe sur le nœud de service • Les partitions de calcul démarrent à chaque nouveau calcul: pas d’effet induit d’un calcul sur les suivants • Un environnement de programmation standard • Linux complet sur les nœuds frontaux • Un micro noyau (CNK) sur les nœuds de calcul qui fournit une compatibilité Linux et POSIX • Le temps de calcul est très stable (pas d’interférence du système d’exploitation) • Le système BG/L à LLNL) démarre en moins de 15 min • Le temps de démarrage d’un job n’est que de quelques secondes, même sur des milliers de processeurs
Environnement software simple et familier • Modèle de programmation SPMD, Fortran, C, C++ avec MPI • Compilateurs GNU et IBM (supportent la SIMDization) • Support total des langages • Environnement de développement Linux, avec implémentation de la plupart des appels systèmes POSIX • Les compilations et autres, s’exécutent sur les frontaux Linux • Les utilisateurs compilent, débuguent et soumettent les jobs depuis les frontaux • Pas de jobs concurrents au sein d’une même partition de calcul, un processus par processeur • Mémoire virtuelle = mémoire physique • Débuggeurs moniteurs hardware, outils de traces
Outils HPC sur Blue Gene • Outils haute performance • HPC Toolkit • MPI • Basé sur MPICH2 • Optimisé pour BG, compatible MPI 1.2 • Compilateurs GNU • Optimisés BG • C,C++ • Librairies scientifiques GNU • FFTW • Lapack, Scalapack, BLAS • … • Compilateurs XL • Options spécifiques BlueGene –qarch=440d • LoadLeveler • Meme api • Backfilling pour une meilleure utilisation du système • GPFS • Système de fichier haute performances • Tourne sur les I/O nodes et les serveurs • ESSL/MASSv • Librairies IBM optimisées pour tirer partie du PPC440 (double FPU) • Librairie statique pour applications 32 bits : Maths, FFT • Interfaçage en C, C++, FORTRAN
Systèmes de fichiers Lustre at LLNL, PVFS2 at ANL Gestionnaires de travaux SLURM at LLNL, Cobalt at ANL Condor HTC (porting for BG/P) Parallel Debugger Etnus TotalView (for BG/L as of now, porting for BG/P) Allinea DDT and OPT (porting for BG/P) Bibliothèques FFT Library - Tuned functions by TU-Vienna VNI (porting for BG/P) Outils de performance HPC Toolkit: MP_Profiler, Xprofiler, HPM, PeekPerf, PAPI Tau, Paraver, Kojak Outils HPC sur Blue Gene
memory 0 1 2 3 process Network MPI • Single Program Multiple Data • Librairie la plus utilisée pour la programmation parallèle (C/C++, FORTRAN) • Implémente le modèle par passage de message : une collection de processus communiquant par des messages • www.idris.fr/su/Parrallele/Pages_generale.html • http://www.llnl.gov/computing/tutorials/mpi_performance/#Protocols
MPI sur Blue Gene • Implémentation MPI standard basées sur MPICH2 d’Argonne • BlueGene/L MPI est conforme au standard MPI 1.2 : • Pas de communication one-sided (BG/L) • Pas de spawn des processus • Support le modèle de threads MPI_THREAD_SINGLE • MPI/IO fonctionne • Tirer le meilleur parti de l’implémentation MPI Blue Gene est plus difficile (schéma de communication) • Grande échelle • Réseaux particuliers (privilégier les communications globales) • Gestion des I/O
MPICH2 PMI pt2pt datatype topo collectives Abstract Device Interface torus tree GI CH3 MM bgl simple uniprocessor mpd bgltorus socket Message Layer Torus Device Tree Device GI Device CIO Protocol MPI : Software model Message passing “glue” Packet Layer
I/O I/O I/O I/O I/O I/O I/O I/O I/O Ethernet fabric NSD NSD NSD NSD NSD SAN fabric DISK DISK DISK DISK GPFS sur Blue Gene • 3 niveaux • Premier niveau constitué des I/O nodes, qui sont des clients GPFS • Second niveau est constitué d’un cluster de serveurs GPFS • Troisième niveau constitué par les disques • La connexion entre le premier et le second niveau est en Ethernet • La connexion entre le second et le troisième tiers est en Fibre Channel
Service node Front-end node Central Manager llsubmit Startd Scheduler mpirun CMCS LoadLeveler • L’utilisateur soumet un job depuis un des frontaux • La commande « llsubmit » contacte le « Central Manager » pour placer le job dans la file d’attente • Le « Scheduler » rappatrie la liste des jobs pour appliquer les règles d’ordonnancement • Le « Scheduler » utilise le CMCS pour créer une partition et demande au « Central Manager » de démarrer le job • Le « Central Manager » contact le démon « Startd » sur le frontal pour lancer mpirun • mpirun contact le CMCS pour lancer le job sur la parition et reste actif sur le frontal pour agir comme un proxy
Life Sciences: In-Silico Trials, Drug Discovery Geophysical Data Processing Upstream Petroleum Biological Modeling – Brain Science Physics – Materials Science Molecular Dynamics Financial Modeling Streaming Data Analysis Computational Fluid Dynamics Environment and Climate Modeling Life Sciences: Sequencing Why and for What is Blue Gene used? • Improve understanding – significantly larger scale, more complex and higher resolution models; new science applications • Multiscale and multiphysics – From atoms to mega-structures; coupled applications • Shorter time to solution – Answers from months to minutes
What is driving the need for Petascale computing in Environment and Geosciences? Example Petascale Challenges: Climate • 5 years/day at 10km resolution, global scale (mesoscale structure) Weather • 1 day/hour at 5km resolution, global scale • 1 day/hour at 1km resolution, continental scale (thunderstorms) • 2 hours/day at 10m resolution, local scale (tornadoes) Oceanography • 40 years/month at 10km resolution, global scale (eddy scale with biology) Hydrology • 10 years/week at 1km resolution, large basin scale SpaceWeather • Coronal Mass Ejections (CME) faster than real-time (coronal B-field fine structure) EarthSystemScience • Model coupling across multiple scales and domains
Examples of Applications Enabled & Scalable* on BG/LLatest list: http://www.ibm.com/servers/deepcomputing/bluegene/siapps.html Classified Defense and Scientific Research • Physics: GFMC , GTC, Nimrod, QCD-IBM, QMC, SPHOT, RXMD, GENE • Astro Physics: Capreole, CubePM, Flash, Enzo • High-Res Atmospheric/Ocean, Weather & Climate: XHIRLAM, POP, HOMME, WRF • Material Science: FDTD Nanophotonics, ParaDis, LSMS Bio Sciences • Classical Molecular Dynamics: DL-POLY, Blue Matter, SPaSM, ddCMD, MDCASK, Grasp, LAMMPS, Amber (8 and 9), NAMD, Rosetta • Quantum Chemistry: CASTEP, GAMESS, CPMD, FEQMD, Qbox, CPV, Divcon Discovery Suite, VASP • BioInformatics: GigTigs, PaCE, mpiBlast, FASTA/Smith-Waterman, HMMER • Medical: PNEO, Blue Brain, GNS, Immunetrics, SPLIT MCAD/CAE • CFD: CDP, PETSc-FUN3D, PPanel, AVBP, Code_Saturne, NEKTON, DNS, SAGE, Miranda, Raptor, Overflow-2, FUN3D, Ludwig, NEK5000, NSU3D • CAE/Crash: ADVC • Petroleum/Seismic: AWM,PSTM/PSDM/Ray Tracer, MOSRP, Hercules Other • CAE/EDA: EMF3 Petroleum • Petroleum/Reservoir: IPARS • Other/Supply Chain: MIPO/SmartOps Lbraries, Tools, Benchmarks • Libraries: PETSc, ATLAS/BLAS/LAPACK, ESSL, Scalapack, Global Arrays, FFTW • Tools: PBS Pro, Accelerant, Lustre, GPFS, HPC Toolkit, LoadLeveler, KOJAK, LSF, TotalView, TAU/KTAU, Condor-HTC • Benchmarks: GUPS, HPL-Linpack, HPC Challenge, Sweep3D, SPPM, UMT2K *NOTE: Scalable in our list are codes that scale at least to 512 nodes (1/2 rack of BG). These are either published results or the code owners allowed IBM to talk about their results on the BG/L systems.
Examples of Applications Ported to BG/P*Latest list: http://www.ibm.com/servers/deepcomputing/bluegene/siapps.html Applications ported to BG/L will run on BG/P after recompile • General performance improvement of 2.4 going from BG/L to BG/P • Some applications have ratio >2.4 due to “superscaling • SMP mode with 4 threads on BG/P can achieve better performance than BG/L nodes Classified Defense and Scientific Research • Physics: DSTASR, SPHOT, ICEPIC, GENE, QCD-IBM, MiLC • Astro Physics: Flash • High-Res Atmospheric/Ocean, Weather & Climate: BOM, HOMME, NLOM/HYCOM, POP, WRF, HYCOM • Material Science: PARATEC Bio Sciences • Classical Molecular Dynamics: LAMMPS, NAMD, Amber9 • Quantum Chemistry: CPMD, DALTON, GAMESS • Docking: DOCK6 • Bio Informatics: HMMER, PBPI MCAD/CAE • CFD: AVUS, CTH, NECK5000, Overflow2, Raptor, StarCD Libraries and Tools • Libraries: ESSL, IMSL, LoadLeveler • Tools: TotalView, Allinea, VNI • Benchmarks: HPC Challenge, HPL-Linpack, MPP Test, NAS, OOCORE, PALLAS, SPPM, Stream, UMT2K, NAS Serial, NAS OpenMP, NAS Parallel, * NOTE: These are either published results, published benchmarks, or the code owners allowed IBM to talk about their porting status. Many other applications are currently being ported over and tested.