2015-08-03 5 views
0

Lorsque j'exécute mon programme sur un ordinateur, avec 4 processus, il se termine presque instantanément. Lorsque j'essaie de l'exécuter dans un cluster de deux ordinateurs (le cluster a été vérifié et était OK), il ne finira pas!Le programme ne se termine pas lorsque deux nœuds sont utilisés

J'avais fait un run il y a longtemps dans le cluster et je me souviens qu'il était plus lent que dans la course sur le pc, mais il se terminerait!

Voici mon run.sh:

#!/bin/bash 

start=100 
end=100 
for ((i = $start; i <= $end; ++i)) ; 
do 
     mpiexec -f machinefile -n 4 ./test ../../l_matrices/Lmat_755.mtx 1 755 755 $i $i 2 2 0 0 
done 

et j'ai vérifié que deux processus sont frayé dans chaque nœud.

Voici mon machinefile:

hostname1.gr:2 
hostname2.gr:2 

Qu'est-ce qui se passe?

+0

Comment est-ce lié à [tag: C++] exactement ?? –

+0

Oh oui @ πάνταῥεῖ, je prévoyais de poster du code aussi, mais je ne l'ai pas fait, donc il devrait être retiré, merci! – gsamaras

+0

Êtes-vous sûr que le script de soumission est correct? la boucle entrera-t-elle terminée après une itération? intentionnel? –

Répondre

1

(en supposant que le script est correct et le début et la fin des valeurs variables sont intentionnelles, ce ne sera pas faire quelque chose de significatif que mpiexec exécutera deux copies du même fichier avec les mêmes arguments une fois)

Vérifiez les chemins - Vous avez utilisé des chemins relatifs, ce qui peut entraîner des problèmes car l'exécution se produit dans le répertoire par défaut après la connexion, généralement votre répertoire personnel.

+1

Juste pour l'histoire, j'ai changé quelque chose dans le code, ce qui provoque ce comportement. Je viens d'essayer une ancienne version de mon projet et ça marche très bien. – gsamaras