Environnements logiciels

Using IFB NNCR

Jacques van Helden

2018-10-09

Outils en ligne de commandes : pourquoi ?

Environnements de travail

La plupart des outils bioinformatiques peuvent être compilés pour les systèmes opérateurs de type Unix (Linux, Mac OS X), et ne tournent pas sous Windows.

Différents environnements de travail peuvent être utilisés pour utiliser ces outils.

Machine virtuelle

Virtualisation basée sur des conteneurs

Machines virtuelles versus containers

**Comparaison de solutions de virtualisation.** Droite: machine virtuelle; centre: container Docker; droite: container Singularity . Source: Greg Kurtzer keynote at HPC Advisory Council 2017 @ Stanford

Comparaison de solutions de virtualisation. Droite: machine virtuelle; centre: container Docker; droite: container Singularity . Source: Greg Kurtzer keynote at HPC Advisory Council 2017 @ Stanford

Installation d’applications dans le système opérateur local

Conda

Grappe de serveurs (computer cluster)

Une grappe de calcul est un ensemble d’ordinateurs (appelés *noeuds) qui peuvent être utilisés ensemble pour paralléliser des tâches.

**Grappe de serveurs.** En avant-plan: *Homo sapiens* tentant d'établir une interaction physique avec les machines.  Source: <https://en.wikipedia.org/wiki/Parallel_computing>

Grappe de serveurs. En avant-plan: Homo sapiens tentant d’établir une interaction physique avec les machines. Source: https://en.wikipedia.org/wiki/Parallel_computing

Parallélisation des tâches

La parallélisation des tâches (parallel computing) consiste à lancer simultanément uen série de processus informatiques sur un système informatique.

Les tâches peuvent être distribuées sur plusieurs processeurs (Computer Processing Unit, CPU) d’un même ordinateur et/ou sur plusieurs ordinateurs (grappes de serveurs).

La distribution des tâches sur les processeurs et ordinateurs repose sur un logiciel appelé gestionnaire de tâches (job scheduler). Les utilisateurs soumettent les tâches (sous forme de commandes de terminal) au gestionnaire, qui pilote leur exécution sur les différents processeurs et/ou noeuds d’une grappe.