chdb, an MPI application for embarrasingly parallel problems

Embarrassingly parallel problems

An embarrassingly parallel problem is a problem for which little or no effort is required to separate the problem into a number of parallel tasks [11]

chdb, which stands for Calcul à Haut débit using a database, is a very convenient application for distributing those parallel tasks among several processors. It is a generalist tool, which is able to present the input files taken from a hierarchy and call the same command line for every file.

chdb is written in C++ and uses the MPI library : MPI has a standardized API. There are several MPI implementations, some of them opensource, it is thus a defacto standard and may now be installed on any parallel computer.

Input and output data

The input data can be a set of files read from a single hierarchy. The output data can be also a set of files, written to an analogous hierachy (intermediate directories are created by chdb).

But it will be possible in the near future to read the input data from a specialized database, and to write the output data to some other similar database.

Distribution of jobs and load balancing

The jobs are currently distributed using MPI, using a client-server paradigm : the master process is the server, the other processes (the slaves) are the clients. Thus, you must have at least 2 processes running. More generally speaking if you want N slaves working you must ask for N+1 MPI processes.

one input file per job in a first-in, first-out basis. However, files may be sorted in alphabetical order, or sorted in size : doing the hypothesis that the biggest the file, the longest the job (which is true for certain applications), files are presented to the processors from biggest to smallest, which can lead to some load balancing improvement.

We are currently working on a more sophisticated distribution method, taking advantage of the architecture of the target machine.

Future improvements

Many improvements are planned :

  1. Storage of the input files and output files in a database
  2. Interrupt and restart of the processing (checkpointing)
  3. Read two input directories and combine each pair of files as data input
  4. Distribution of jobs on the processors using MPI for the internode communication, and forking several processes inside the nodes

Reading the documentation

The chdb documentation for use in Calmip is available here.

Licensing and download

chdb is currently only available for the CALMIP users, however its distribution under a free license is planned in the next months.

Voir aussi

Bibliothèques scientifiques

FFTw HDF5

Logiciels scientifiques

Gaussian MEEP

Se connecter à EOS

Se connecter à Eos À partir de la plupart des réseaux académiques toulousains, on peut se connecter sur EOS par ssh :

L’espace-disque

L’espace disque d’EOS L’ espace disque d’EOS est constitué de trois espaces différents, chacun a une utilisation spécifique.

Lancer un calcul sur EOS

Lancer un calcul sur EOSLe mode interactif Pour la phase de mise au point

Documentations obsolètes concernant eos

L’uvprod (obsolète)

Améliorer les performances

Améliorer les performances de vos codes Vous trouverez dans cette rubrique différents moyens de déboguer votre application, d’améliorer les performances et d’optimiser un calcul sur le système de calcul EOS.

Comment fonctionne le système de Modules

Les commandes module permettent de personnaliser son environnement en termes de compilateurs, librairies, application (calcul, visu, etc...) de manière extrêmement simple.

ParaView

Lancement de ParaView Obligatoirement à partir d’un nœud graphique. Attention Si l’environnement openFoam est lancé, la commande ParaView n’est pas disponible : utilisez plutô

EOS schématisé : un peu de vocabulaire

Les termes techniques permettant de caractériser les différentes parties du supercalculateur

Gaussview

Utilisation de Gaussview Positionner l’environnement gaussian comme indiqué dans l’article sur Gaussian, puis :

XCrySDen

Lancer XCryDen à partir du menu graphique ! Ou... Lancer XCrysDen sur la frontale :

Jmol

Jmol est un outil de visualisation de molécules Lancer Jmol à partir du menu graphique Ou... lancer Jmol en ligne de commande :

gabedit

Pour l’utiliser : [@eoslogin1] gabedit

compiler ses codes sur EOS

Le système de calcul EOS utilise le système d’exploitation linux. Ainsi deux environnements de compilation sont disponibles :

Une simulation en vidéo

Cette page présente une démonstration synthétique de l’usage du supercalculateur EOS.

Salome

SALOME propose des outils de pré/post-traitement et de couplage de codes de calcul pour la simulation numérique, ilintègre un module de visualisation (qui repose sur paraview).

VisIt

Lancement de VisIt Obligatoirement à partir d’un nœud graphique. VisIt est accessible à partir du menu graphique visit est également utilisable en ligne de commande :

A ParaView tutorial for parallel visualisation

In this tutorial, we explain how you can use several cores with ParaView for a better interactivity when visualizing huge quantities of data