Cluster

From Tmplab

Objectif

Cluster multi usages, accessible online. En ce moment calculs mpi en génétique, rendering blender, stockage de génomes.

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

Notre cluster (OUTDATED)

online computers : 15

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 : 4.5 To. Reste 3 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.
  • Pour installer exfat :
 * sudo apt-get install python-software-properties
 * sudo add-apt-repository ppa:relan/exfat
 * sudo apt-get update
 * sudo apt-get install fuse fuse-exfat exfat-utils

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
  • Pourquoi ** le systeme doit etre redémarre ** : cat /var/run/reboot-required.pkgs
  • 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
  • telechargement ftp recursif : wget -r --user %user% --password %password% ftp://%server%/full/path
  • Utilisation de screen pour detacher un "terminal", recuperable en cas de perte de connexion :
    • Création d'un terminal detachable sur la cible : screen
    • Détacher un terminal : CTRL-A d
    • Lister les terminaux mémorisés sur la cible : screen -ls
    • Se reconnecter sur un terminal détaché : screen -r
    • Lister les terminaux créée depuis un terminal détaché : CTRL-A "
    • Créer une autre instance de terminal detachable : CTR-A c
    • Reference : http://www.linux-nantes.org/Screen-qu-est-ce-donc.html

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 :

-Montage du file system NFS

-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

Genome database

GTA