web-dev-qa-db-fra.com

mpirun - pas assez d'emplacements disponibles

Habituellement, lorsque j'utilise mpirun, je peux le "surcharger", en utilisant plus de processeurs qu'il n'y en a actuellement sur mon ordinateur. Par exemple, sur mon Mac à quatre cœurs, je peux exécuter mpirun -np 29 python -c "print 'hey'" aucun problème. Je suis sur une autre machine maintenant, ce qui génère l'erreur suivante:

$ mpirun -np 25 python -c "print 'hey'"
--------------------------------------------------------------------------
There are not enough slots available in the system to satisfy the 25 slots 
that were requested by the application:
  python

Either request fewer slots for your application, or make more slots available
for use.
--------------------------------------------------------------------------

Pourquoi le mpirun "overclocking" ne fonctionne-t-il pas ici? Existe-t-il un moyen de surmonter ce message d'erreur et de réussir à exécuter avec plus de processeurs que ceux disponibles?

20
kilojoules

Selon https://www.open-mpi.org/faq/?category=running#oversubscribing vous pouvez sursouscrire votre nœud en utilisant un fichier hôte. Avant de continuer, veillez à ce que vous puissiez gravement dégrader les performances du nœud. En outre, si le système que vous utilisez pour exécuter l'application utilise un système de file d'attente, cela peut ne pas être valide.

Créez d'abord un fichier hôte (nommé fichier hôte) contenant

localhost slots=25

Exécutez simplement votre application comme

mpirun --hostfile hostfile -np 25 python -c "print 'hey'"
13
Harald

Apparemment, la sursouscription peut être obtenue en utilisant l'option "- overubscribe" avec mpirun - a fait l'affaire pour moi avec le couple de course/maui

31
dwaylooper