Cluster

From Tmplab
Revision as of 19:54, 21 September 2013 by Samneurohack (talk | contribs) (New page: = Objectif = cf Biocluster_:_alignement Documentation de référence : [http://techtinkering.com/2009/12/02/setting-up-a-beowulf-cluster-using-open-mpi-on-linux/ Setting up a Beowulf...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Objectif

cf Biocluster_:_alignement

Documentation de référence : Setting up a Beowulf cluster using openmpi on linux

Notre cluster

online computers : 12

Racks (SM : Supermicro) :

  1. thérèse SM : Online
  2. madeleine HP : A reinstaller grub ne passe pas. eth0 est le port du bas -> OK (1 Go ECC) 2.26 Ghz
  3. ursuline SM : Online F1:04:8 doit être reset pour voir son HD MPI ip=210
  4. marcelle SM : Online 54:a8:ad SATA 256 Go (1 Go DDR 2) 2x1.86 Ghz MPI
  5. martine HP : OFF (bruit) Online B3:DB:79 (1 GO ECC) eth0 (en bas)
  6. marlene : A installer utiliser RJ 45 pres USB ports 2x3 Ghz2 Go
  7. blanche HP : Online F0:D9:A7 1.4 Ghz 34 Go MPI ip=215
  8. hortense SM : Online 51:C0:BD eth de droite Free IDE. P4 2.0 Ghz 768 Mo PC 133 80 Go MPI _ ip=216
  9. georgina : Online 90:77:AB P4 2.8 Ghz 512 Mo DDR 333 Eth de droite MPI

ATX :

  1. leopold : Online finir installer clefs ssh/blender/repertoires
  2. sidonia : 4x 3 Ghz Online finir installer clefs ssh/blender/repertoires
  3. beast : Online 62:A3:D7 MPI ip=228
  4. watson : Online 2A:FB:51 MPI ip=225

Rosalie : Online

Garence : online. Serveur de stockage : 2.5 To. Reste 4 berceaux sata vides.

Les logiciels

  • Ubuntu server 12.04 LTS
  • clustalw-mpi
  • openmpi
  • blender

Installation d'une machine esclave

  1. Installer ubuntu server 12.04 (voir script de configuration du serveur PXE).
    • Connecter le serveur sur le petit switch bleu sur watson.
    • Démarrer le serveur, verifier que le bios autorise lan boot rom
    • Sélectionner F12 si besoin (pxe boot) : le serveur doit afficher sa mac adress
    • Se logger sur watson
    • Selon la version a installer (standart ou 64 bits) : ./netboot.sh ou ./netboot64.sh
    • Le serveur doit se configurer tout seul et demarrer l'install d'Ubuntu
    • Des que l'install dialogue : brancher la machine esclave sur le gros switch noir pour continuer l'install via Internet
    • Sélectionner le serveur archive ubuntu belgique sans serveur mandataire (serveur fr surchargé)
    • Continuer l'installation avec base server et openssh
    • Nommer la machine d'après un ancien prénom féminin
    • Finir le processus puis suivre Post Install

Post Install

  • Installer les packages de base
 apt-get install openmpi1.5 clustalw-mpi puppet make gcc g++ make automake autoconf libtool htop python-setuptools python-scipy
  • Creer un utilisateur 'cluster' avec les droits root depuis le compte féminin
 sudo adduser cluster
 sudo adduser cluster sudo
  • Depuis cluster@watson : création des clefs ssh et upload du pack de base (cluster.tar.gz = contenu de /home/cluster/)
 * scp cluster.tar.gz cluster@machine:/home/cluster/
 * ssh cluster@machine
 * ssh-keygen -t rsa
 * tar -zxvf cluster.tar.gz
 * exit
 * cat ~/.ssh/id_rsa.pub | ssh -l remoteuser remoteserver.com 'cat >> ~/.ssh/authorized_keys'
    (Automatic Login : rajoute la clef publique en question dans le .ssh/authorized_keys )
  
  • Noter les machines mises sur le reseau avec la correspondance ip/machine.

Guide de survie

  • Pour lancer un calcul d'alignement : mpirun -np 8 -h mpihosts clustalw-mpi calcul.fasta (sur la baie depuis watson sur 8 processeurs)
  • Pour lancer une animation blender : multiblend -b blender/work/nom.blend -s 1 -e 1200 ( pour 1200 frames / nom.blend doit être dans watson/cluster/home/cluster/blender/work/)
  • Fichier de configuration de multiblend : /home/cluster/.multiblendrc
  • Pour lancer une commande sur la baie : pssh -h lab.hosts commande
  • Pour se connecter depuis le réseau : ssh login@machine
  • Pour redémarrer un serveur depuis ssh : sudo reboot
  • Pour éteindre un serveur depuis ssh : sudo shutdown -h now
  • Pour voir les specs depuis ssh : more /proc/cpuinfo et more /proc/meminfo
  • Ajouter un disque en ligne de commande

Outils de benchmark

Pour développer des outils de bench en python Brian/playdoh/LEela (cf github)

Modification du pack de base

  • Se logger sur cluster@watson
  • rajouter répertoires et fichiers dans /home/cluster/
  • rm cluster.tar.gz
  • Modifier les utilisateurs : chmod -R 777 *
  • tar -cvzf cluster.tar.gz

Utilisation de clustalw-mpi

Clustalw-mpi permet d'aligner des sequences en fonction de leur similarite, ce qui permet de construire (entre autre), des arbres phylogenetiques. Clustalw-mpi permet a la difference de clustalw, de travailler sur plusieurs machines en parallele. L'alignement est realise a partir d'une liste de sequences contenues dans un fichier texte au format qui s'appelle fasta, on le nommera ici monfasta.fasta.


>sequence_a

aaatccccgggggccccccc

>sequence_b

aatcccccccccccccccc

>etc ...

Apres avoir installé openmpi (voir plus haut) et clustalw-mpi sur toutes les machines via : apt-get install clustalw-mpi


  1. On va copier le fichier fasta sur toutes les machines, car le nfs qui est le systeme de fichier partage n'a pas encore ete installe.
  2. Lancer lamboot sur chaque machine.

Lancer un calcul :

  1. mpirun -np 7 -H insuline@insuline,denis@denis,beat@beat clustalw-mpi file-result.txt
  2. ou mpirun --hostfile mpihosts clustalw-mpi file-result.txt

Le resultat est affiche sur le terminal, on a la production de deux fichiers, monfasta.dnd, c'est un dendogramme qu'on va utiliser pour construire l'arbre ensuite, et monfasta.aln qui est l'alignement. On peut le visualiser avec un logiciel comme seaview. Pour installer seaview, sudo apt-get install seaview.


un hostfile, ici "mpihosts" permet de declarer le nombre de processeurs par machine, ressemble a :

beat@beat slots=4

white@white slots=1

...

Outils de management

Puppet
PSSH
clustershell

A faire :

-Installation des 3 dernières machines

-modifier les routes pour un point d'acces unique a partir de l'exterieur.

-Montage du file system NFS

-Benchmark des performances reseau

-Envoyer un rat sur la Lune

TOOLBOX genomique

a traduire

SAM (Sequence Alignment/Map) format is a generic format for storing large nucleotide sequence alignments. SAM aims to be a format that:

   Is flexible enough to store all the alignment information generated by various alignment programs;
   Is simple enough to be easily generated by alignment programs or converted from existing alignment formats;
   Is compact in file size;
   Allows most of operations on the alignment to work on a stream without loading the whole alignment into memory;
   Allows the file to be indexed by genomic position to efficiently retrieve all reads aligning to a locus. 

SAM Tools provide various utilities for manipulating alignments in the SAM format, including sorting, merging, indexing and generating alignments in a per-position format.

Comment extraire l'ADN "mitochondrial.fasta" d'un exome téléchargé sur http://www.1000genomes.org/

samtools view -b HG01879.mapped.ILLUMINA.bwa.ACB.exome.20120522.bam 'MT' > out.bam

samtools mpileup -uf ref.fasta out.bam | bcftools view -cg - | vcfutils.pl vcf2fq > cns.fq