Exécutez Gromacs plus rapidement lors du redimensionnement avec la parallélisation

gromacs1 3

Gromacs a été développé par ScalaLife et financé par le European Research Council. Gromacs est un package open source polyvalent conçu pour analyser la dynamique moléculaire des molécules biochimiques. En raison de sa popularité, nous avons décidé d'utiliser Gromacs pour démontrer les étapes nécessaires pour paralléliser une seule tâche sur plusieurs dynos (c'est-à-dire des cœurs de calcul). Vous pouvez trouver le tutoriel de base original de Gromacs ici, et un autre tutoriel de parallélisation ici.

Notre exemple simule une membrane phospholipidique, constituée de 1024 23 lipides dipalmitoylphosphatidylcholine (DPPC) dans une configuration bicouche avec 121,846 molécules d'eau par lipide, pour un total de 50 XNUMX atomes. Lorsque vous rencontrez des problèmes à grande échelle, envisagez de paralléliser votre travail sur plusieurs bancs d'essai pour réduire le temps d'exécution. Si vous parvenez à paralléliser votre travail sur deux bancs d'essai, vous pourriez potentiellement réduire la durée d'exécution de votre travail de XNUMX %.

Lorsque nous avons parallélisé notre exemple sur quatre bancs d’essai, le temps d’exécution a été réduit de moitié.
table
Comme vous pouvez le constater, nous n'avons pas constaté une amélioration de 4 fois du temps d'exécution lors de la parallélisation sur quatre cœurs (par rapport à l'exécution sur un seul cœur). Il existe des retards associés à (a) la décomposition du travail et (b) la transmission des messages entre les différents dynos impliqués dans le travail. De plus, si la décomposition n’est pas bien effectuée, le déséquilibre de charge qui en résulte entraîne des retards supplémentaires.

Heureusement, Gromacs fournit aux utilisateurs un outil de comptabilité du temps pour suivre tous ces facteurs. Pour l'utiliser, ouvrez simplement le fichier "job-name".log avec un éditeur de texte :
d'exécution
L'unité de temps ici est en secondes CPU. Vous pouvez calculer le temps réel passé sur chaque partie du travail en divisant cette valeur par le nombre de dynos impliqués, qui, dans ce cas, est de quatre dynos. La décomposition du domaine, l'attente, la communication et la lecture/écriture sont quelques-uns des facteurs qui nous empêchent d'atteindre une mise à l'échelle idéale. Cependant, les utilisateurs avancés peuvent utiliser les données fournies par Gromacs pour tirer des leçons des exécutions inefficaces et concevoir une parallélisation plus efficace.

Inscrivez-vous pour une démo

Apprenez-en davantage sur la façon dont Rescale transforme l’espace cloud HPC.