24.06.2013 Views

BIF-1000 Profession de bio-informaticien - Sébastien Boisvert

BIF-1000 Profession de bio-informaticien - Sébastien Boisvert

BIF-1000 Profession de bio-informaticien - Sébastien Boisvert

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>BIF</strong>-<strong>1000</strong><br />

<strong>Profession</strong> <strong>de</strong> <strong>bio</strong>-<strong>informaticien</strong><br />

Le calcul à haute performance en <strong>bio</strong>-informatique<br />

Durée: 30 minutes<br />

<strong>Sébastien</strong> <strong>Boisvert</strong><br />

http://boisvert.info


● Institution: Université Laval<br />

● Sigle du cours: <strong>BIF</strong>-<strong>1000</strong><br />

Méta-information<br />

● Titre du cours: La profession <strong>de</strong> <strong>bio</strong>-<strong>informaticien</strong><br />

● Professeur: Patrick Lagüe<br />

●<br />

● Conférencier: <strong>Sébastien</strong> <strong>Boisvert</strong><br />

● Titre: Le calcul à haute performance en <strong>bio</strong>-informatique<br />

● Durée: 30 minutes<br />

● Lieu: Local PLT-2510, Université Laval<br />

● Date: Mercredi le 19 septembre 2012<br />

●<br />

● http://boisvert.info/<strong>BIF</strong>-<strong>1000</strong>/automne2012<br />

2


● La vie excitante d'un <strong>bio</strong>-<strong>informaticien</strong><br />

● Le calcul à haute performance en <strong>bio</strong>informatique<br />

3


● Co<strong>de</strong> source du vivant<br />

L'ADN<br />

Wikipedia, Domaine public<br />

4


● Processus <strong>bio</strong>logique<br />

La transcription<br />

Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported<br />

5


Générateurs <strong>de</strong> données <strong>bio</strong>logiques<br />

● Instrument Illumina<br />

HiSeq 2000<br />

● Séquençeur d'ADN<br />

● 600 giga bases / 11<br />

jours<br />

● L'étape limitante:<br />

analyse <strong>de</strong> données<br />

Remarques:<br />

1. Illumina et HiSeq sont <strong>de</strong>s marques déposées <strong>de</strong> Illumina Inc.<br />

6


Ordinateur<br />

● Processeur (ADN polymérase,<br />

ARN polymérase, ribosome)<br />

● Mémoire (ARN, contenu <strong>de</strong> la<br />

cellule)<br />

● Stockage (ADN, contenu <strong>de</strong> la<br />

cellule)<br />

● Logiciels (protéines)<br />

● Utilisateur (milieu extra-cellulaire)<br />

Creative Commons paternité – partage à l’i<strong>de</strong>ntique 3.0 (non transposée).<br />

7


Réseau d'ordinateurs<br />

Organisme multi-cellulaire<br />

8


Passage <strong>de</strong> messages<br />

10100101<br />

9


Boucle principale dans un jeu vidéo<br />

while(1){<br />

lire_le_clavier () ;<br />

lire_la_souris () ;<br />

lire_le_reseau () ;<br />

}<br />

mettre_a_jour_l_etat_du_jeu () ;<br />

<strong>de</strong>ssiner_sur_l_ecran () ;<br />

ecrire_sur_le_reseau () ;<br />

/* il manque un régulateur d'itérations par secon<strong>de</strong> ! */<br />

10


Boucle principale dans un logiciel<br />

distribué<br />

while(1){<br />

recevoir_les_messages () ;<br />

}<br />

lire_les_messages (<br />

avancer_l_etat_du_calcul () ;<br />

envoyer_les_messages () ;<br />

11


Courriels<br />

● Boîte <strong>de</strong> réception <strong>de</strong>s messages<br />

● Boîte d'envoi <strong>de</strong>s messages<br />

12


Envoi <strong>de</strong> messages avec MPI<br />

MPI=Message Passing Interface<br />

void send_message(struct process*current_process,uint8_t*buffer,int count,int <strong>de</strong>stination,int tag){<br />

}<br />

#if<strong>de</strong>f ASSERT<br />

assert(<strong>de</strong>stination>=0);<br />

assert(<strong>de</strong>stinationsize);<br />

#endif<br />

MPI_Request request;<br />

MPI_Isend(buffer,count,MPI_BYTE,<strong>de</strong>stination,tag,MPI_COMM_WORLD,&request);<br />

MPI_Request_free(&request);<br />

https://github.com/sebhtml/latency_checker GPLv3<br />

13


Réception <strong>de</strong> message avec MPI<br />

void receive_message(struct process*current_process,struct message*received_message){<br />

}<br />

int flag=0;<br />

MPI_Status status;<br />

MPI_Iprobe(MPI_ANY_SOURCE,MPI_ANY_TAG,<br />

MPI_COMM_WORLD,&flag,&status);<br />

received_message->tag=MESSAGE_TAG_NO_OPERATION;<br />

if(!flag)<br />

return;<br />

received_message->tag=status.MPI_TAG;<br />

received_message->source=status.MPI_SOURCE;<br />

received_message->count=0;<br />

MPI_Get_count(&status,MPI_BYTE,&(received_message->count));<br />

MPI_Recv(received_message->buffer,received_message->count,<br />

MPI_BYTE,received_message->source,received_message->tag,<br />

MPI_COMM_WORLD,&status);<br />

https://github.com/sebhtml/latency_checker GPLv3<br />

14


● Corporation financée par le gouvernement<br />

canadien<br />

● Opère <strong>de</strong>s super-ordinateurs à l'échelle du<br />

Canada<br />

● À l'Université Laval: colosse<br />

15


● 960 ordinateurs <strong>de</strong> calcul<br />

Colosse<br />

● 1920 processeurs Intel(R) Xeon(R) X5560(R)<br />

● 4 coeurs <strong>de</strong> 2.8 gigahertz par processeur<br />

● Total: 9680 coeurs<br />

● Réseau Infiniband(R) Mellanox(R) MT26428(R)<br />

● 1 000 000 000 giga octets <strong>de</strong> stockage<br />

● Système <strong>de</strong> fichiers distribué Lustre(R)<br />

● Linux (CentOS)<br />

● Rpeak: 85.3 tera FLOPS (10^12 opérations en virgule flottante par secon<strong>de</strong>)<br />

● Rmax: 77.2 tera FLOPS<br />

● http://i.top500.org/system/10195<br />

16


Logiciels sur Colosse<br />

● Besoin pour <strong>de</strong>s logiciels distribués (passage<br />

<strong>de</strong> messages)<br />

● Le même logiciel s'exécute <strong>de</strong>s centaines <strong>de</strong><br />

fois sur plusieurs ordinateurs<br />

● Un logiciel qui s'exécute s'appelle un<br />

processus<br />

● Processus distribués qui se passe <strong>de</strong>s<br />

messages pour partager <strong>de</strong>s informations<br />

17


Graphe <strong>de</strong> Bruijn<br />

18


Les systèmes logicielles “Ray”<br />

● Assemblage <strong>de</strong> novo <strong>de</strong> génomes<br />

● Métagénomes<br />

● Profilage <strong>bio</strong>logique<br />

● en C++ (portable sur systèmes POSIX(R) dont<br />

Linux(R) et Microsoft(R) Windows(R)<br />

● Utilise le passage <strong>de</strong> messages<br />

● Chaque processus envoie entre 5 000 et 10 000<br />

messages par secon<strong>de</strong> !<br />

● Licence GPLv3<br />

● <strong>Boisvert</strong> et al. (2010) Journal of Computational<br />

Biology<br />

http://dx.doi.org/doi:10.1089/cmb.2009.0238<br />

● <strong>Boisvert</strong> et al. (2012) en révision<br />

Remarque:<br />

Linux est une marque déposée <strong>de</strong> Linus Torvalds.<br />

19


Assembler <strong>1000</strong> génomes<br />

bactériens en même temps<br />

● Total: 18 hours, 25 minutes, 20 seconds<br />

● 512 processus Ray<br />

● 64 ordinateurs<br />

● ~ 1536 giga octets <strong>de</strong> mémoire distribué !<br />

● ~ 5.2 tera FLOPS<br />

20


Latence<br />

● Latence basse pour le passage <strong>de</strong> messages<br />

● 8*8*8=512<br />

● Représenter les rangs en base 8<br />

● → → → <br />

● → → → <br />

● Sur colosse, routage avec polytope régulier convexe<br />

● Aller-retour d'un message <strong>de</strong> 4000 octets: ~35<br />

microsecon<strong>de</strong>s (1 microsecon<strong>de</strong> = 10^-6 secon<strong>de</strong>)<br />

21


●<br />

●<br />

Beaucoup <strong>de</strong> messages<br />

● Rank 0: sent 1658262884 messages, received 1659261879 messages.<br />

● Rank 1: sent 1644615558 messages, received 1644613465 messages.<br />

● Rank 2: sent 1658543863 messages, received 1658541782 messages.<br />

● Rank 3: sent 1643008628 messages, received 1643006584 messages.<br />

● Rank 4: sent 1629459552 messages, received 1629457560 messages.<br />

● Rank 5: sent 1635200230 messages, received 1635198204 messages.<br />

● Rank 6: sent 1655487701 messages, received 1655485706 messages.<br />

● Rank 7: sent 1647530807 messages, received 1647528733 messages.<br />

● Rank 8: sent 1645931438 messages, received 1645929348 messages.<br />

● Rank 9: sent 1634510788 messages, received 1634508745 messages.<br />

● (502 processus Ray cachés)<br />

22


● 0,0,0 (0) -> 1,0,0 (1) Load: 77007376<br />

● 0,0,0 (0) -> 2,0,0 (2) Load: 77015518<br />

● 0,0,0 (0) -> 3,0,0 (3) Load: 77010637<br />

● 0,0,0 (0) -> 4,0,0 (4) Load: 77011423<br />

● 0,0,0 (0) -> 5,0,0 (5) Load: 77008990<br />

● 0,0,0 (0) -> 6,0,0 (6) Load: 77018635<br />

● 0,0,0 (0) -> 7,0,0 (7) Load: 77017997<br />

● 0,0,0 (0) -> 0,1,0 (8) Load: 81274715<br />

● 0,0,0 (0) -> 0,2,0 (16) Load: 77019588<br />

● 0,0,0 (0) -> 0,3,0 (24) Load: 80382939<br />

● 0,0,0 (0) -> 0,4,0 (32) Load: 78019878<br />

● 0,0,0 (0) -> 0,5,0 (40) Load: 77018488<br />

● 0,0,0 (0) -> 0,6,0 (48) Load: 77017745<br />

● 0,0,0 (0) -> 0,7,0 (56) Load: 77015266<br />

● 0,0,0 (0) -> 0,0,1 (64) Load: 81267960<br />

● 0,0,0 (0) -> 0,0,2 (128) Load: 77018529<br />

● 0,0,0 (0) -> 0,0,3 (192) Load: 77934327<br />

● 0,0,0 (0) -> 0,0,4 (256) Load: 76985462<br />

● 0,0,0 (0) -> 0,0,5 (320) Load: 76996018<br />

● 0,0,0 (0) -> 0,0,6 (384) Load: 76981051<br />

● 0,0,0 (0) -> 0,0,7 (448) Load: 73930723<br />

●<br />

Routage dynamique<br />

23


● Bibliothèque logicielle<br />

● Licence: LGPLv3<br />

24


● Compagnie <strong>de</strong> super ordinateurs<br />

● Collaboration pour porter Ray sur le produit<br />

Cray XE6<br />

● > <strong>1000</strong>0 processus Ray sur le Cray XE6<br />

Remarques:<br />

1. Cray est une marque déposée <strong>de</strong> Cray Inc.<br />

2. Il n'y a pas <strong>de</strong> lien entre Ray (le logiciel libre) et Cray (la compagnie)<br />

26


● J'ai participé à un atelier <strong>de</strong> 25 experts<br />

mondiaux organisé par Argonne.<br />

● Toutes dépenses payées<br />

● Summer 2012 Week 3: Next<br />

Generation Sequence Analysis<br />

● July 28, 2012 to August 4, 2012<br />

● Canyons Resort, 4000 Canyons<br />

Resort Drive, Park City, Utah<br />

● Ray a vraiment impressionné les<br />

experts invités !<br />

Remarque:<br />

http://www.icis.anl.gov/programs/summer2012-3a<br />

1. Argonne est géré pour le U.S. Department of Energy par UChicago Argonne, LLC.<br />

27


● Visite du laboratoire<br />

national Argonne à la<br />

mi-octobre 2012<br />

● À suivre !<br />

Remarque:<br />

1. Argonne est géré pour le U.S. Department of Energy par UChicago Argonne, LLC.<br />

28


Pério<strong>de</strong> <strong>de</strong> questions<br />

29

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!