Parallélisme et bioinformatique

Transcription

Parallélisme et bioinformatique
Parallélisme et bioinformatique
[email protected]
Master EGOIST - Rouen
[email protected]
Parallélisme et bioinformatique
Plan
1
Introduction
Parallélisme ?
Open MPI
2
Historique
3
Pour qui ? Pour quoi ?
[email protected]
Parallélisme et bioinformatique
Parallélisme ?
[email protected]
Parallélisme et bioinformatique
C’est quoi le parallélisme ?
Principe
regrouper (physiquement ou logiquement) un ensemble de
ressources (calcul/stockage) et les faire
collaborer/travailler de concert, pour traiter des données
[email protected]
Parallélisme et bioinformatique
Pourquoi faire ?
Objectif : calculer, traiter les données...
plus vite, plus gros et différemment
Modéliser et simuler.
Effectuer de gros calculs numériques.
Vérifier/valider des modèles.
Traiter d’énormes quantités de données.
[email protected]
Parallélisme et bioinformatique
Comment s’y prendre ?
Principe
analyser le travail à effectuer,
connaître et analyser les ressources disponibles et les
données nécessaires,
diviser le travail en tâches,
répartir les tâches entre les ressources de manière
adéquate en fonction des dépendances entre les tâches et
des données.
−→ nous y reviendrons plus tard...
[email protected]
Parallélisme et bioinformatique
Anatomie d’une architecture parallèle
des ressources de stockages
des ressources de calcul
un réseau d’interconnexion
=⇒ outils de communication par le réseau
[email protected]
Parallélisme et bioinformatique
En pratique
Exécution distante
configuration de l’environnement
test d’une exécution distante
ssh
ssh-keygen -t rsa (pas de passphrase)
clef publique → authorized_keys
connexion sur chaque machine du LAN
test d’une exécution distante (édition d’un programme C,
compilation et exécution distante)
[email protected]
Parallélisme et bioinformatique
Collaboration ?
l’exécution à distance ne permet pas directement la
collaboration
collaboration ⇒ communication entre processus
Communications inter-processus
par la mémoire (segments de mémoire partagé sur une
seule machine)
par échange de messages (socket entre machines
distantes)
n processus ⇒ au moins n(n − 1)/2 sockets ! !
⇒ outils logiciels pour faciliter cette tâche → PVM puis MPI
[email protected]
Parallélisme et bioinformatique
Open MPI
[email protected]
Parallélisme et bioinformatique
Open MPI
Installation
récupération de l’archive sur
litis.univ-lehavre.fr/∼guinand/Enseignement/BioinformatiqueParallele
ouverture
installation :
./configure –prefix /vers/repertoire/installation (dans votre
${HOME} c’est bien)
make all
(sudo) make install (en fonction du répertoire d’installation)
modification des variables d’environnement (modification
.bashrc pour $PATH et $LD_LIBRARY_PATH)
vérification : mpicc et mpirun
[email protected]
Parallélisme et bioinformatique
Open MPI
Test exécution en local
édition + compilation + exécution
premier programme en C
#include<stdio.h>
#include<mpi.h>
int main(int argc,char **argv) {
MPI_Init(NULL,NULL)
printf(“bonjour la compagnie ! ! \n”) ;
MPI_Finalize()
}
[email protected]
Parallélisme et bioinformatique
Open MPI
Compilation + exécution en local
mpicc monprog.c -o monprog
mpirun monprog
mpirun -np 4 monprog
→ comment identifier les différents processus ?
[email protected]
Parallélisme et bioinformatique
Open MPI
Rang de processus
Pour que chaque processus connaisse son environnement
d’exécution, il lui faut son identifiant et le nombre de
processus qui exécutent le même programme que lui. Les
primitives MPI_Comm_rank() et MPI_Comm_size()
jouent ce rôle.
.....
int moi,lesautres ;
MPI_Init(NULL,NULL)
MPI_Comm_rank(MPI_COMM_WORLD,&moi) ;
MPI_Comm_size(MPI_COMM_WORLD,&lesautres) ;
printf(“Salut, je suis %d et il y a %d processus impliqués ! !”,moi,les
MPI_Finalize()
[email protected]
Parallélisme et bioinformatique
Open MPI
Où en sommes-nous ?
Exécution en local de plusieurs processus qui exécutent le
même code.
Toujours pas de communication entre les processus.
[email protected]
Parallélisme et bioinformatique
Open MPI
Exécution sur plusieurs machines
Environnement est prêt (ssh...)
Il faut indiquer à mpirun les machines qui font partie de
l’architecture parallèle :
→ fichier qui contient les noms des machines
exécution par mpirun -hostfile lesmachines -np 10
monprog
format complet
[email protected] :10
edgar@morin :30
cloporte :2
pc-de-louise.fr :4
[email protected]
format simple
fourmi
araignee
mouche
abeille
Parallélisme et bioinformatique
Open MPI
Exécution sur plusieurs machines
Comment identifier les machines ?
int lgNom;
char nomMachine[MPI_MAX_PROCESSOR_NAME];
MPI_Get_processor_name(nomMachine,&lgNom);
[email protected]
Parallélisme et bioinformatique
Open MPI
Exécution sur plusieurs machines
Attention ! ! Lorsque les environnements sont différents (login,
chemins vers les exécutables, etc.) l’environnement doit être
correctement paramétré sinon Open MPI ne trouve pas les
exécutables. C’est l’une des principales sources de
dysfonctionnement.
[email protected]
Parallélisme et bioinformatique
Open MPI
Où en sommes-nous ?
Exécution en local de plusieurs processus qui exécutent le
même code → Ok !
Toujours pas de communication entre les processus.
[email protected]
Parallélisme et bioinformatique
Open MPI
Communications entre processus
Pour que chaque processus puisse communiquer avec les
autres il faut qu’il puisse à la fois envoyer et recevoir des
messages. Les primitives MPI_Send(), MPI_Recv() et
MPI_Bcast() jouent ce rôle.
MPI_Send() et MPI_Recv() permettent des
communications deux-à-deux.
MPI_Bcast() permet de communiquer une information
globalement à l’ensemble des processus.
[email protected]
Parallélisme et bioinformatique
Open MPI
MPI_Send(arg1,arg2,arg3,arg4,arg5,arg6)
MPI_Recv(arg1,arg2,arg3,arg4,arg5,arg6,arg7)
arg1 : pointeur vers le buffer d’envoi ou de reception selon la primitive
arg2 : nombre d’éléments dans le buffer
arg3 : type des éléments dans le buffer
arg4 : le destinataire pour un envoi et l’émetteur pour une réception.
arg5 : étiquette du message. Cette étiquette permet de différentier deux
envois de messages ayant le même émetteur et le même recepteur.
arg6 : communicator (groupe de tâches avec leur contexte). Par défaut
nous utiliserons MPI_COMM_WORLD (i.e. tous les processus).
arg7 : permet de connaître divers détails concernant le message : tag,
source. Utile si la primitive est réglée pour recevoir tous les messages
depuis toutes les sources (MPI_ANY_TAG, MPI_ANY_SOURCE) on
peut alors connaître l’émetteur et l’étiquette après reception, sans
bloquer au moment de la reception.
[email protected]
Parallélisme et bioinformatique
Open MPI
Un petit exemple
envoi d’un entier (data) depuis le processus courant vers le processus
de rang k :
MPI_Send(&data,1,MPI_INT,k ,1,MPI_COMM_WORLD);
reception de ce message :
MPI_Recv(&datareception,1,MPI_INT,MPI_ANY_SOURCE,
1,MPI_COMM_WORLD,MPI_STATUS_IGNORE);
[email protected]
Parallélisme et bioinformatique
Open MPI
Attention
Les communications sont une source importante de problèmes
d’interblocage
processus p
...
MPI_Recv(&data,1,MPI_INT,k ,...)
...
MPI_Send(&machin,1,MPI_CHAR,k ,...)
...
[email protected]
processus k
...
MPI_Recv(&truc,1,MPI_CHAR,p,...)
...
MPI_Send(&chose,1,MPI_INT,p,...)
...
Parallélisme et bioinformatique
Open MPI
Anneau
On souhaite organiser un ensemble de processus de telle
sorte qu’ils forment un anneau logique.
Faites générer un entier aléatoire par chaque processus et
faites circuler ces entiers selon la topologie de l’anneau.
Traitement pipeline
On souhaite organiser un ensemble de 4 processus de
telle sorte qu’ils forment une chaîne de traitement pipeline.
Faites générer un entier aléatoire par chaque processus et
faites lui subir 4 traitements différens par les 4 processus
(on différencie les processus par leur rang).
[email protected]
Parallélisme et bioinformatique
Open MPI
La diffusion
MPI_Bcast(arg1,arg2,arg3,arg4,arg5)
Un processus envoie la donnée et tous les autres la
receptionne.
arg1 : pointeur vers le buffer d’envoi ou de reception selon le processus
arg2 : nombre d’éléments dans le buffer
arg3 : type des éléments dans le buffer
arg4 : émetteur de la diffusion.
arg5 : communicator (groupe de tâches avec leur contexte). Par défaut
nous utiliserons MPI_COMM_WORLD (i.e. tous les processus).
[email protected]
Parallélisme et bioinformatique
Open MPI
Un petit exemple
diffusion d’un entier (data) depuis le processus de rang 0 :
MPI_Bcast(&data,1,MPI_INT,0,MPI_COMM_WORLD);
→ tous les processus doivent exécuter MPI_Bcast() pour que
le broadcast fonctionne.
[email protected]
Parallélisme et bioinformatique
Open MPI
Optimisation parallèle
On souhaite faire collaborer k processus pour déterminer
un meilleur résultat (par exemple pour un problème
d’optimisation).
Chaque processus effectue 10 tentatives de résolution,
puis envoie aux autres son meilleur résultat.
Fonction à optimiser : trouver le plus grand entier, fonction
à disposition : générateur aléatoire d’entiers.
[email protected]
Parallélisme et bioinformatique
Historique
[email protected]
Parallélisme et bioinformatique
Historique
1950 → 1970 : les pionniers
1970 → 1990 : explosion des architectures
1990 → 2000 : extinction massive
2000 → 2010 : l’ère des géants
2010 → : les hybrides
[email protected]
Parallélisme et bioinformatique
Les pionniers (1950s-70s)
Difficulté première, la mise en oeuvre du matériel.
Challenge : augmenter le ratio
fonctionnement/maintenance. ILLIAC IV : quelques heures
de calcul/quelques semaines de maintenance.
Les premiers grands noms du parallélisme apparaissent et
avec eux, les premiers grands principes : vectorisation,
techniques de pipeline, temps partagé,
multiprogrammation...
Amdahl : IBM 701, 704, 709.
Seymour Cray : Control Data Corporation.
[email protected]
Parallélisme et bioinformatique
Les machines
CDC6600 (1964) : unités de calcul en parallèle, 10MHz, 2Mo, 9 MFlops
CDC7600 (1969) : équivalent à 10 CDC6600 : 40 MFlops
[email protected]
Parallélisme et bioinformatique
Ces années-là
transistor sur base de silicium (Texas Instrument - 1955)
premier disque dur (1957)
premier compilateur fortran (1957)
algol (1958 - 60 - 68). Algorithmic language - récursivité.
Voici un langage très en avance de son temps, il n’a pas
seulement été une amélioration de ses prédécesseurs
mais aussi une amélioration de presque tous ses
successeurs.
Bull : Gamma 60. Première machine multiprocesseurs
française.
interface RS-232 (1966)
technologie CMOS (Texas Instrument - 1967)
ARPANET (ancêtre d’Internet - 1969)
Unix (1970)
[email protected]
Parallélisme et bioinformatique
Le temps de l’exubérance (1970s-80s)
Premiers succès commerciaux.
Apparition de multiples constructeurs :
Thinking Machine Corporation (†), Sequent (†),
Telmat (†), Archipel (†), Parsytec (†),
Kendall Square Research (†), Meiko (†), BBN (†),
Digital (†), IBM, Intel, CRAY (†), MasPar (†),
Silicon Graphics (†), Sun, Fujitsu, Nec.
Offre importante et exotique : Connection Machine 1 :
hypercube de 65535 processeurs.
Problèmes majeurs : l’offre logicielle et le prix.
étape suivante : machines abordables et utilisables.
[email protected]
Parallélisme et bioinformatique
Les machines
Cray-1 (1975), Cray X-MP (1982) : 2 à 4 processeurs,
Cray-2 (1983) : 8 processeurs, Cray Y-MP (1989).
Hitachi S-810/820.
Fujitsu VP200/VP400.
Convex C-1.
Nec SX-1/2.
Connection Machine 1. 65536 processeurs. Topologie :
hypercube.
Intel iPSC/1 128 processeurs. Topologie : grille.
[email protected]
Parallélisme et bioinformatique
Les machines
Illiac IV (Burrough - 1973
CRAY-1. 1975.
80 MHz, 8 Mo, 160 MFlops
[email protected]
Parallélisme et bioinformatique
Les machines
[email protected]
Parallélisme et bioinformatique
Ces années-là
Langage pascal (Wirth - 1972)
Ray-Tomlinson : premier email (1972)
10000 composants sur 1 cm2 (1975).
premier réseau local : Datapoint système ARC (1976).
fibre optique (1977).
Support d’Ethernet par les principaux constructeurs
(1979).
Paterson - Hennessy : concept des processeurs RISC
(1980)
Tim Berners-Lee : projet World Wide Web au CERN
(1989).
[email protected]
Parallélisme et bioinformatique
Environnements (1990s)
Difficultés bien identifiées : routage, ordonnancement...
→ parallélisme automatique très limité
⇒ conception d’outils d’aide à la parallélisation : Hypertool,
Pyrros, ParaRex, Adam, Apache...
Autre problème : ratio prix/durée de vie d’une machine
parallèle extrêmement élevé.
⇒ solution apportée par PVM : utiliser des réseaux locaux de
stations de travail pour faire du calcul parallèle.
Constructeurs machines parallèles → réseaux de stations
de travail intégrés.
[email protected]
Parallélisme et bioinformatique
Les machines
Nec SX-3 (1991).
Fujitsu VP-2600 (1991).
CM-5 (1992). Topologie : fat-tree.
Cray T3D (1993). Jusqu’à 512 processeurs. Topologie :
tore 3D.
ASCI Red, et Blue (1997-1999).
[email protected]
Parallélisme et bioinformatique
Les machines
[email protected]
Parallélisme et bioinformatique
Ces années-là
Microsoft Windows 3.0 (1990), Windows 95, Windows 98
PVM (1991).
premier site web au CERN (1991)
Altavista (premier moteur de recherche) 15 millions de
pages web (1995)
création de Linux par Linus Torvald
création de Yahoo ! (1995)
annonce officielle de java (1995)
Netscape à partir de NCSA Mosaic (1994).
IBM Deep Blue bat Gary Kasparov (1997)
mise en ligne du moteur google (1997)
premier GPU (Nvidia GeForce 256) (1999)
passage à l’euro
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les Grilles
Depuis les milieu des années 90.
Constat : les matériels sont la plupart du temps peu et
sous-utilisés.
Idée : utiliser ces matériels dont le nombre est énorme,
Principe : des milliards de calculs indépendants effectués
sur les PCs de “volontaires”.
Précurseur : le projet Seti@Home
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les Grilles
⇒ meta-computing.
⇒ Grilles de calcul.
Principe de base : offrir un service tel qu’il est offert par les
producteurs d’énergie :
Electric Power Grid ↔ Computational Grid
Objectif : brancher le cable réseau du PC pour utiliser de la
puissance de calcul comme on branche une prise de
courant pour utiliser de l’électricité.
Grille de calcul = capacités de calcul + capacités de
stockage + disponibilité + interactions
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les Grilles
Eléments fondamentaux :
partage de ressources (calcul + stockage)
existence d’un réseau d’interconnexion mondial (Internet)
calcul distribué/parallèle
Contraintes :
confidentialité : accès sécurisé
gestion : partage de ressources
performance : équilibrage de charge
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les Grilles
Grille
Ressources de calcul et de stockage
Réseaux
Applications
Intergiciel : coordination de l’ensemble : authentification et
confidentialité, stockage, répartition de charge,
maintenance, etc.
Cloud Computing
évolution du grid computing
portail unique
→ Google, Amazon, IBM Blue Cloud, Intel+HP+Yahoo, etc.
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les Grappes
Depuis les milieu des années 90.
Idée des grilles de calcul intéressante mais...
Constat : les communications pénalisent une bonne
utilisation.
Remède : construire des réseaux locaux de grandes
dimensions.
Grappes de machines (clusters of machines).
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les machines
1
BlueGene/L. IBM. US. 280 TFlops. 131072 processeurs.
2
Red Storm. Cray Inc. US. 101 TFlops. 26544 processeurs.
3
Blue Gene. IBM. US. 91 TFlops. 40960 processeurs.
4
ASC Purple. IBM. US. 91 TFlops. 75 TFlops. 12208
processeurs.
5
BladeCenter. IBM. Espagne. 62 TFlops. 10240
processeurs.
6
Thunderbird. Dell. US. 53 TFlops. 9024 processeurs.
7
Tera-10. Bull SA. CEA France. 52 TFlops. 9952
processeurs.
[email protected]
Parallélisme et bioinformatique
L’ère des Géants : les machines
[email protected]
Parallélisme et bioinformatique
Les hybrides
Depuis le milieu des années 2000.
Constat : le parallélisme a été bien maîtrisé, passons à
l’intégration à grande échelle
Idée : intégré le parallélisme au sein des unités de calcul
(processeurs multicores) et graphiques (GPU et GPGPU)
Extension : construisons des environnements parallèles
qui utilisent ces technologies
[email protected]
Parallélisme et bioinformatique
Les machines
[email protected]
Parallélisme et bioinformatique
Puissance 2007
1
BlueGene/L. IBM. US. 280 TFlops. 131072 processeurs.
2
Red Storm. Cray Inc. US. 101 TFlops. 26544 processeurs.
3
Blue Gene. IBM. US. 91 TFlops. 40960 processeurs.
4
ASC Purple. IBM. US. 91 TFlops. 75 TFlops. 12208
processeurs.
5
BladeCenter. IBM. Espagne. 62 TFlops. 10240
processeurs.
6
Thunderbird. Dell. US. 53 TFlops. 9024 processeurs.
7
Tera-10. Bull SA. CEA France. 52 TFlops. 9952
processeurs.
[email protected]
Parallélisme et bioinformatique
Puissance 2008
1
Roadrunner IBM. Los Alamos DOE US. 1105 TFlops.
129600 processeurs. Nucléaire, armement, sécurité.
2
Jaguar Cray Inc. DOE US. 1059 TFlops. 150152
processeurs.
3
Pléïades SGI. NASA US. 487 TFlops. 51200 processeurs.
4
BlueGene/L. IBM. US. 478 TFlops. 212992 processeurs.
5
(9) Red Storm. Cray Inc. US. 204 TFlops. 38208
processeurs.
6
(14) Jade SGI CINES FRANCE 128 TFlops. 12288
processeurs.
7
(54) Tera-10. Bull SA. CEA France. 52 TFlops. 9952
processeurs.
[email protected]
Parallélisme et bioinformatique
Puissance 2012
1
K Computer Fujitsu (Japon). 10.5 PFlops. Sparc64.
705024 cores. Linux
2
Tianhe 1A NUDT (Chine). 2.5 PFlops. Xeon+NVidia.
186368 cores. Linux
3
Jaguar CRAY XT5 (USA). 1.75 PFlops. AMD Opteron.
224161 cores. Linux
4
Nebulae Dawning TC3600 (Chine). 1.27 PFlops.
Xeon+NVidia. 120640 cores. Linux
5
Tsubame (NEC/HP). 1.2 PFlops. Xeon+NVidia. 73278
cores. Linux
[email protected]
Parallélisme et bioinformatique
Les systèmes
Système
Linux
Unix
Mixed
BSD Based
Mac OS
Windows
% (2007)
75
15
6.40
3
0.60
0
[email protected]
% (2011)
91.4
6
2.2
0.2
0
0.2
Parallélisme et bioinformatique
Bilan ?
Toujours plus
l’augmentation de puissance ne connait pas de répit
machines parallèles → processeurs et GPU → machines
parallèles
nombre de coeurs explose
mobilité augmente : le terminal devient une interface
mais...
consommation électrique de plus en plus importante
confidentialité/données personnelles : enjeu critique
[email protected]
Parallélisme et bioinformatique
Pour qui ? Pour quoi ?
[email protected]
Parallélisme et bioinformatique
informatique : outils de traitement de l’information +
science des modèles “computables”
[email protected]
Parallélisme et bioinformatique
Qui utilise le parallélisme ?
milieux de la recherche académique et industrielle
milieux économiques et industriels, industrie
pharmaceutique, automobile, bâtiment et habitat, transport
et logistique, banque et marchés financiers, assurance,
aéronautique, secteur agroalimentaire, secteur médical,
cinéma, etc.
société civile, services publics
→ vous !
[email protected]
Parallélisme et bioinformatique
Milieux de la recherche et du développement
Infrastructure à plusieurs niveaux :
internationale : Globus, BOINC (Berkeley Open
Infrastructure for Network Computing), etc.
nationale : centre de calcul CINES, IDRIS, CEA, etc.
régionale : CALMIP, CICG, CRIHAN, etc.
locale : laboratoires, réseaux de stations, grappes de PCs
(clusters)
Applications :
physique nucléaire, mécanique céleste,
biologie moléculaire, chimie de synthèse,
mathématiques, informatique, télécommunications,
histoire, géographie, sociologie...
[email protected]
Parallélisme et bioinformatique
Physique des particules
Large Hadron Collider
principe : générer des collisions entre particules
(événements)
→ enregistrer puis traiter ces informations,
volumes extraordinaires : ∼ 15 Petaoctets par an,
utilisation de 10000 machines réparties dans la monde
entier
[email protected]
Parallélisme et bioinformatique
Industrie aéronautique et spatiale
vérification des procédures de fonctionnement (Ariane), étude
des turbulences, calculs de profils d’ailes, modélisation du bruit,
etc.
Onera : image des interactions entre les tourbillons en bout d’aile
et les turbulences résultant de la propulsion. NEC SX5 et SX6.
LLNL (Lawrence Livermore) : modélisation du bruit généré par
les moteurs d’un avion à réaction. 1 000 000 de coeurs.
[email protected]
Parallélisme et bioinformatique
Industrie aéronautique et spatiale
Airbus (POD 300 TFlops)
[email protected]
NASA Earth Exchange
(Global Earth Science)
données satellite LandSat
Parallélisme et bioinformatique
Industrie automobile
crash-tests virtuels chez un constructeur automobile :
[email protected]
Parallélisme et bioinformatique
Industrie automobile
Principe :
→ définition des caractéristiques mécaniques du véhicule
→ modélisation en 3D (maillage)
→ modélisation mathématique/mécanique des processus
de déformation
→ simulation de la dynamique de déformation des
éléments
[email protected]
Parallélisme et bioinformatique
Industrie automobile
[email protected]
Parallélisme et bioinformatique
Industrie pétrolière
conception d’outils de forage pour l’industrie pétrolière et
minière :
→ l’outil (trépan carottier) doit répondre au mieux aux
exigences des compagnies pétrolières.
code de simulation hydraulique parallèle réduit la durée de
simulation de 20 à 7 jours et augmente la vitesse
d’avancement des outils étudiés (d’environ 40 %).
[email protected]
Parallélisme et bioinformatique
Industrie pétrolière
Identification des réserves souterraines de pétrole et de gaz.
Modèles analytiques et numériques permettant la visualisation
3D de formations géologiques souterraines. Résolution visuelle
augmentée d’un facteur 10 par rapport à l’existant.
110 592 coeurs (Intel Xeon E5-2670), Pangea affiche 2.3 PFlops
−→ vidéo
[email protected]
Parallélisme et bioinformatique
Secteur du bâtiment, de l’habitat
vente par internet : conception/aménagement en ligne et
visualisation de décors 3D
principe : le calcul est déporté sur un environnement
parallèle et le résultat sous forme d’image est renvoyé au
client
[email protected]
Parallélisme et bioinformatique
Industrie du jeu et secteur des loisirs
Production d’images de synthèse pour films et jeux vidéos.
1993 : premières images de synthèse intégrées dans des
vues réelles (Jurassic Park)
1995 : Toy Story premier film entièrement en images de
synthèse.
[email protected]
Parallélisme et bioinformatique
Industrie du jeu et secteur des loisirs
District 9
Imagine Engine Design Inc. de Vancouver, Canada, a géré les
effets spéciaux de District 9, qui intègre une course
d’extraterrestres dans un documentaire naturaliste qui se
déroule à Johannesbourg, en Afrique du Sud. La société a
déployé près de 100 cartes graphiques professionnelles
NVIDIA Quadro dans ses stations Linux pour produire chaque
plan d’extraterrestre du film. [www.nvidia.com]
[email protected]
Parallélisme et bioinformatique
Services publics : énergies
gestion et production d’énergie :
EDF : gestion du réseau, fonctionnement de certains
éléments des centrales nucléaires...
prévisions météorologiques :
[email protected]
Parallélisme et bioinformatique
Services publics : Météo France
Modèle opérationnel Arpège (1998),
nombre de variables à traiter est Nv = 2,3.107
quatre variables à trois dimensions x 31 niveaux x 600 x
300 points sur l’horizontale et une variable à deux
dimensions x 600 x 300 points sur l’horizontale,
le nombre de calculs à effectuer pour une variable est Nc =
7.103
le nombre de pas de temps pour réaliser une prévision à
24 heures d’échéance est Nt = 96 (pas de temps de 15
minutes).
[email protected]
Parallélisme et bioinformatique
Météo France
Les calculs étant effectués sur l’ordinateur Fujitsu VPP700
crédité d’une vitesse de calcul R atteignant 20 gigaflops
(20 milliards d’opérations flottantes par seconde)
⇒ le temps T nécessaire pour obtenir une prévision à 24
heures d’échéance est un peu inférieur à un quart d’heure.
[email protected]
Parallélisme et bioinformatique
Météo France
Météo-France a acheté en 2008 un NEC SX-8R qui délivre
une puissance crête de 35.2 Tflops.
[email protected]
Parallélisme et bioinformatique
Météo France
Calculer plus vite : en théorie, le même calcul : ∼ 1
seconde
Calculer plus gros : nouveau modèle Arome passage
d’une maille de 10km à une maille de 2.5 km
Calculer différemment : possibilité de calculer des
événements plus localisés et ponctuels :
pluies torrentielles,
orages violents,
brouillard, etc.
[http ://www.generation-nt.com/supercalculateur-meteo-france-actualite-41587.html]
[email protected]
Parallélisme et bioinformatique
Météo/Climat
Modéliser l’intersection climat/météo (6= échelles de temps)
Intégrer les phénomènes El Niño, MJO.
Katrina
[email protected]
Humidité atmosphérique
Parallélisme et bioinformatique
Météo/Climat
NCAR
NOAA/ORNL
NOAA
NOAA/ORNL
UKMO
UKMO
KMA
KMA
Yellowstone
Gaea C2
Zeus
Gaea C1
Power 775
Power 775
Haeon
Haedam
IBM iDataPlex
Cray XE6
SGI Altix
Cray XE6
IBM
IBM
Cray XE6
Cray XE6
72288
77824
27600
41984
18432
15360
45120
45120
NCAR : National Center for Atmospheric Research
NOAA : National Oceanic and Atmospheric Administration
UKMO : United Kingdom Meteorological Office
KMA : Korea Meteorological Administration
[email protected]
Parallélisme et bioinformatique
Société civile : aménagement du territoire
simulation pour réaménagement d’un centre ville,
construction d’une ligne de tramway
[email protected]
Parallélisme et bioinformatique
Vous ?
Au coeur de vos ordinateurs :
→ pour le calcul : utilisation de processeurs dits
multi-coeurs : multicore (x10)
→ pour la visuation : en plus du CPU, les ordinateurs sont
équipés de GPU Graphics Processing Unit : manycores
(x100), de véritables machines parallèles sur un circuit
[email protected]
Parallélisme et bioinformatique
à suivre...
−→ le parallélisme au service de la biologie
−→ méthode de parallélisation d’applications
−→ métriques et mesures de performances
[email protected]
Parallélisme et bioinformatique

Documents pareils

Parallélisme et bioinformatique

Parallélisme et bioinformatique Ces années-là Langage pascal (Wirth - 1972) Ray-Tomlinson : premier email (1972) 10000 composants sur 1 cm2 (1975). premier réseau local : Datapoint système ARC (1976). fibre optique (1977). Suppor...

Plus en détail