2010-04-13 3 views
1

Je commence la programmation sur un cluster géré OpenMPI. J'utilise la commande suivante pour exécuter mon exécutable:mpirun nombre réel de processeurs utilisés

mpirun -np 32 file 

Maintenant, ce que je comprends est que 32 spécifie le nombre de processus qui devraient être créés. Ils peuvent être créés sur le même processeur. Ai-je raison?

Je remarque une augmentation du temps d'exécution avec l'augmentation du nombre de processus. Est-ce que ce qui précède pourrait être une raison pour cela? Comment puis-je connaître la politique d'exécution et de planification du cluster?

Est-il correct de supposer que le cluster sur lequel je travaille aura de nombreux processus en cours d'exécution sur chaque nœud, tout comme ils fonctionnent sur mon PC.

+0

Pouvez-vous poster des paires (nombre de processus, temps d'exécution) que nous pouvons examiner pour voir exactement comment le temps d'exécution est lié au nombre de processus? – suszterpatt

Répondre

1

Je m'attendrais à ce que votre système de gestion des tâches (qui est?) Alloue 1 processus MPI par cœur. Mais c'est une question de configuration et votre cluster ne peut pas être configuré comme je l'espère. Pouvez-vous voir quels processus sont en cours d'exécution sur les différents cœurs de votre cluster au moment de l'exécution?

Il existe de nombreuses explications pour augmenter le temps d'exécution avec un nombre croissant de processus, plusieurs bons qui incluent la possibilité d'un processus par cœur. Mais plusieurs processus par cœur constituent une explication potentielle.

Pour en savoir plus sur les stratégies de votre cluster, demandez à l'administrateur du cluster. Non, je pense qu'il est atypique pour les processeurs de cluster (ou coeurs) d'exécuter plusieurs processus MPI simultanément.

+0

J'ajouterai simplement que si vous exécutez ce travail de manière interactive sur un nœud de développement, les processus s'exécutent probablement tous sur un nœud (donc s'il a 8 cœurs, vous exécutez 4 processeurs par cœur). Si, par contre, vous exécutez cette ligne dans le cadre d'un script de soumission de travail, comme Mark l'indique ci-dessus, en l'absence de problèmes de configuration ou de malentendus, vous exécutez probablement un proc par core. –

Questions connexes