Question

J'utilise la commande actuelle pour soumettre des travaux de MPI: MPIRUN -NP No. de processeurs Nom de fichier

Ma compréhension est que la commande ci-dessus me permet de soumettre à 4 processeurs indépendants qui communiquent via MPI. Cependant, à notre installation, chaque processeur a 4 noyaux qui vont non utilisés . Les questions que j'avais sont les suivantes:

  1. est-il possible de soumettre un travail à exécuter sur plusieurs noyaux sur le même nœud ou plusieurs nœuds de la ligne de commande MPI Exécuter? Si oui, comment?

  2. Est-ce que ce qui précède nécessite des commentaires spéciaux / mis en place dans le code? Je comprends de la lecture de la littérature que le temps de communication entre les cœurs pourrait être différent de celui des transformateurs, de sorte qu'il exige de penser à la manière dont le problème est distribué ... mais pour cette question? Quoi d'autre a-t-il besoin d'estimer?

  3. Enfin, est-il une limite sur la quantité de données transférée? Existe-t-il une limite sur la quantité de données que le bus peut envoyer / recevoir? Y a-t-il une limitation sur le cache?

    merci!

Était-ce utile?

La solution

So 1 is a question about launching processes, and 2+3 are questions about, basically, performance tuning. Performance tuning can involve substantial work on the underlying code, but you won't need to modify a line of code to do any of this.

What I understand from your first question is that you want to modify the distribution of the MPI processes launched. Doing this is necessarily outside the standard, because it's OS and platform dependant; so each MPI implementation will have a different way to do this. Recent versions of OpenMPI and MPICH2 allow you to specify where the processors end up, so you can specify two processors per socket, etc.

You do not need to modify the code for this to work, but there are performance issues depending on core distributions. It's hard to say much about this in general, because it depends on your communication patterns, but yes, the "closer" the processors are, the faster the communications will be, by and large.

There's no specified limit to the total volume of data that goes back and forth between MPI tasks, but yes, there are bandwidth limits (and there are limits per message). The cache size is whatever it is.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top