2014-06-14 3 views
1

Ma question est-ce qu'il est possible d'utiliser --bind-to-core flag lors de l'overubscribing? J'utilise la version MPI 1.5.4 OUVERT et d'essayer avec un facteur surévaluer la 2 (32 processus sur 16 noyaux) en utilisant:MPI ouvert: en utilisant bind-à-core tout en surabondant

mpirun --bind-to-core --bynode --npersocket 32 --mca mpi_yield_when_idle 1 -n 32 ./$prog 

Mais il me renvoie une erreur:

32 total processes failed to start 

Cependant, si Je n'utilise pas --bind-to-core tout fonctionne bien. Quel est le problème ici? Est-il possible de résoudre?

Répondre

2

L'option -npersocket active --bind-to-socket et est en conflit avec --bind-to-core. Vous pouvez probablement le contourner en écrivant un rankfile - très similaire à un fichier hôte mais il contient également des informations de liaison pour chaque rang. Par exemple, pour lier les processus 4 à 2 noyaux sur l'hôte localhost, le rankfile suivant peut être utilisé:

rank 0=localhost slot=0 
rank 1=localhost slot=0 
rank 2=localhost slot=1 
rank 3=localhost slot=1 

Rankfiles sont prévus pour mpiexec avec l'option --rankfile. Consultez le Open MPI documentation pour plus d'informations.

+0

Merci. Existe-t-il un autre moyen de vérifier les liaisons pour confirmer l'allocation? En ce qui me concerne --report-bindings ne fournit aucune sortie concernant les liaisons de processus –

+0

Est-ce que vous redirigez par hasard le flux d'erreur standard vers '/ dev/null'? –

+0

Je ne pense pas qu'il soit redirigé là-bas. J'utilise le système de soumission LSF pour mes travaux et j'obtiens d'autres erreurs et sorties dans le fichier journal vers lequel je redirige la sortie. –

Questions connexes