logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 13-03-2017 21:48:54

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

mpirun - une tâches, plusieurs CPU

Bonjour à tous,

Je travail en ce moment sur un projet de cluster de calcul qui n'en est pour le moment qu'à son balbutiement.
J'ai décidé de tester différents programmes permettant de se simplifier la vie au moment de la création du cluster. Ces tests sont fait à partir d'une Virtualbox.  Mon choix c'est arrêté sur PelicanHPC. L'installation est vraiment simple pour ceux que ça intéressent wink

Une fois le cluster mis en place j'ai voulu tester l’exécution d'une tâche simple afin de voir comment ça fonctionne. Après quelques recherches j'en suis arrivé à utilisé mpirun afin le script python suivant:


i=0
while (i<6):
     print (i)
     i=i+1



J'ai alors constaté que le script était exécuter une fois par CPU. L'objectif est plutôt de répartir la charge de travail d'une même tâche sur différents CPU afin d'accélérer l'exécution de tâches complexes comme de la compilation ou de la virtualisation.

Si vous savez comment utiliser mpirun (ou une autre commande) pour répartir la charge sur les différents CPU du cluster je suis preneur car même après plusieurs heures de recherche je n'ai pour le moment rien trouvé scratchhead.gif

Merci d'avance smile

Hors ligne

#2 13-03-2017 23:51:24

Philou92
Adhérent(e)
Lieu : Hauts de Seine
Distrib. : Debian bookworm
Noyau : Linux 6.1.0-13-amd64
(G)UI : LightDM et Xfce4.18
Inscription : 29-04-2015

Re : mpirun - une tâches, plusieurs CPU

Peut-être utiliser la classe multiprocessing.pool sous python. hmm

Tousse antique Ovide !

Hors ligne

#3 14-03-2017 17:42:33

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : mpirun - une tâches, plusieurs CPU

Salut Philou,

L'idée est d’exécuter du code python, entre autre, mais pas que. Donc les solutions de "réécriture" de programmes ne passent pas dans mon cas hmm

Hors ligne

#4 14-03-2017 19:30:02

otyugh
CA Debian-Facile
Lieu : Quimperlé/Arzano
Distrib. : Debian Stable
Inscription : 20-09-2016
Site Web

Re : mpirun - une tâches, plusieurs CPU

répartir la charge de travail d'une même tâche sur différents CPU afin d'accélérer l'exécution de tâches complexes comme de la compilation ou de la virtualisation.


C'est possible, ça ? J'avais compris qu'il fallait avoir codé "de manière à hacher la tâche en petits bouts" pour profiter d'un cluster. Dans ton cas de code, chaque tour de boucle dépend des valeur du précédent, donc je vois pas trop l'intêret ; et si on répartit bêtement les instructions une à une d'un processeur à l'autre, je pense que le gain serait négatif vu qu'il faudrait sans cesse charger les valeur d'un côté à l'autre, ça ferait plein d'accès mémoire, or c'est ce qu'il y a de plus lent dans l'histoire (bien plus que le calcul lui-même)... Non ? Ou alors j'ai mal compris x)

Un programme parallèle est composé d'une suite de processus, où chaque processus exécute une ou plusieurs tâches. La création d'un programme parallèle implique la répartition de la charge, c'est-à-dire la décomposition de l'ensemble du calcul en petites tâches et l'affectation des tâches aux unités3.

Le but visé par les algorithmes de répartition de charge est d'obtenir une décomposition optimale : que le travail soit réparti de manière équilibrée entre les processeurs, et que les communications entre les différents processeurs soient réduites au minimum. En plus de la répartition des tâches, réalisée avant leur exécution, il existe également des algorithmes visant à déplacer des tâches en cours d'exécution vers un processeur moins occupé3.

https://fr.wikipedia.org/wiki/R%C3%A9pa … _de_charge

Dernière modification par otyugh (14-03-2017 19:35:13)


virtue_signaling.pngpalestine.png

Hors ligne

#5 14-03-2017 19:50:39

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : mpirun - une tâches, plusieurs CPU

Salut otyugh,

Je te rassure, tu as l'air de bien avoir compris ce que j'essaie de faire tongue
Dans le cas présent, avec le script en python que j'ai donné, tu as raison, ça sera bien plus lent que de laisser faire le calcul. Cependant, ce n'est qu'un test et l'idée est de faire exécuter des tâches plus complexes et lourdes comme de la virtualisation par exemple smile

Hors ligne

Pied de page des forums