Articles of mpi

Comment passer d’un tableau 2D dans MPI et créer une valeur de tag dynamic en langage C?

Je suis nouveau dans la programmation MPI. J’ai un tableau 8 par 10 que je dois utiliser pour trouver la sum de chaque ligne en parallèle. En rang 0 (processus 0), il générera la masortingce 8 sur 10 en utilisant un tableau à 2 dimensions. J’utiliserais ensuite le numéro de tag comme première valeur d’index […]

MPI_Waitall échoue

Je me demande si quelqu’un peut m’éclairer sur la fonction MPI_Waitall. J’ai un programme qui passe des informations en utilisant MPI_Isend et MPI_Irecv. Une fois tous les envois et les réceptions terminés, un processus du programme (dans ce cas, le processus 0) imprimera un message. Mon Isend / Irecv fonctionne, mais le message est imprimé […]

MPI Envoyez et recevez des questions

J’ai des questions sur les opérations d’envoi et de réception de MPI. Supposons que 2 threads MPI essaient de s’envoyer un message. Voici trois extraits de code faisant cela: D’abord (bloquer ‘envoyer’ et ‘recevoir’): … int data = …; … MPI_Send( &data, sizeof( int ), MPI_INT, (my_id == 0)?1:0, 0, MPI_COMM_WORLD ); MPI_Status status; MPI_Recv( […]

Sortir gracieusement avec MPI

J’essaie de quitter gracieusement mon programme après si Rdinput renvoie une erreur. #include #include #include #define MASTER 0 #define Abort(x) MPI_Abort(MPI_COMM_WORLD, x) #define Bcast(send_data, count, type) MPI_Bcast(send_data, count, type, MASTER, GROUP) //root –> MASTER #define Finalize() MPI_Finalize() int main(int argc, char **argv){ //Code if( rank == MASTER ) { time (&start); printf(“Initialized at %s\n”, ctime […]

Terminer tous les processus avec MPI

J’utilise MPI pour rechercher une solution de manière à diviser l’espace du problème entre les différents threads. Chaque thread passe par une boucle for et chaque itération est candidate à une solution. Le problème est que, lorsqu’un thread trouve la solution, je veux qu’il en informe les autres et ils doivent tous se terminer immédiatement […]

Envoi de fragments dissortingbués d’un tableau 2D au processus racine dans MPI

J’ai un tableau 2D réparti sur une grid de processus MPI (3 x 2 processus dans cet exemple). Les valeurs du tableau sont générées dans le processus de dissortingbution de cette partie du tableau, et je souhaite rassembler toutes ces parties au processus racine pour les afficher. Jusqu’à présent, j’ai le code ci-dessous. Cela génère […]

Convertir une trace de libc en un numéro de ligne source

J’ai une application MPI qui combine les sources C et Fortran. Parfois, il se bloque à cause d’un bogue lié à la mémoire, mais j’ai du mal à le trouver (c’est quelque part dans le code de quelqu’un d’autre, ce que je ne connais pas très bien pour le moment). Je n’ai pas encore réussi […]

Pourquoi mon programme MPI ne fonctionne-t-il pas correctement?

Je suis un débutant dans MPI et j’ai un devoir, je ne vous demande pas de le résoudre, je n’ai besoin que de comprendre pourquoi mon programme fonctionne mal. Voici le problème Écrivez un programme MPI C qui simule un jeu de table de ping-pong. 2 processus doivent seulement être utilisés. Les processus utilisent MPI_Send […]

MPI_Bcast dans une instruction if?

J’expérimente avec MPI et j’ai continué à avoir cette erreur lorsque je l’exécutais via mpirun sur la ligne de commande. ———————————————————————————————- mpirun noticed that the job aborted, but has no info as to the process that caused that situation. ———————————————————————————————- Je ne sais pas pourquoi, car les autres programmes mpi fonctionnent parfaitement. Voici mon code. […]

Le MPI_Datatype le plus approprié pour la «décomposition en blocs»?

Avec l’aide de Jonathan Dursi et osgx , j’ai maintenant effectué la “décomposition en ligne” parmi les processus: rangée http://img535.imageshack.us/img535/9118/ghostcells.jpg J’aimerais maintenant essayer l’approche de “décomposition en blocs” (photo ci-dessous): block http://img836.imageshack.us/img836/9682/ghostcellsblock.jpg Comment doit-on s’y prendre? Cette fois, le MPI_Datatype sera nécessaire, non? Quel type de données serait le plus approprié / facile à utiliser? […]