Articles of mpi

MPICH: Comment publier_nom de telle sorte qu’une application cliente puisse le rechercher?

Tout en apprenant MPI en utilisant MPICH dans Windows (1.4.1p1), j’ai trouvé un exemple de code ici . À l’origine, lorsque port_name le serveur, je devais copier le nom de port généré et démarrer le client avec. De cette façon, le client peut se connecter au serveur. Je l’ai modifié pour inclure MPI_Publish_name() à la […]

Comment puis-je envoyer des lignes d’une masortingce à tous les processus utilisant MPI_Scatterv?

Je travaille avec l’interface MPI. Je veux diviser une masortingce (par rangées) et répartir les parties entre chaque processus. Par exemple, j’ai cette masortingce carrée 7×7. M = [ 0.00 1.00 2.00 3.00 4.00 5.00 6.00 7.00 8.00 9.00 10.00 11.00 12.00 13.00 14.00 15.00 16.00 17.00 18.00 19.00 20.00 21.00 22.00 23.00 24.00 25.00 […]

scatter in mpi

Voici le code de mpi scatter: #include #include int a[10]={1,2,3,4,5,6,7,8,9,10}; int b[1]; int main(int argc, char *argv[]) { int rank; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Barrier(MPI_COMM_WORLD); if(rank ==0){ MPI_Scatter(a,1,MPI_INT,b,1,MPI_INT,0,MPI_COMM_WORLD); } MPI_Barrier(MPI_COMM_WORLD); printf(“\n%d from rank=%d\n”,b[0],rank); MPI_Finalize(); return 0; } Je veux une sortie comme suit: 1 de rang 0 2 de rang 1 3 de rang 2 […]

MPI_reduce () avec un type de données personnalisé contenant des tableaux alloués dynamicment: erreur de segmentation

Je ne comprends pas pourquoi MPI_Reduce () commet une erreur de segmentation dès que j’utilise un type de données MPI personnalisé contenant des tableaux alloués de manière dynamic. Est-ce que quelqu’un sait ? Le code suivant se bloque avec 2 processeurs, à l’intérieur de MPI_Reduce (). Toutefois, si je supprime le membre double * d […]

Comment envoyer (MPI_Send) une structure nestede ayant des champs de pointeur dans MPI à l’aide de C

J’ai une structure: struct vertex { double a; double b; } struct polygon { int numofVertex; vertex *v; } Comment envoyer cette structure nestede dans MPI à l’aide de MPI_Send? Le problème est que la structure contient le champ de pointeur “v” en raison duquel MPI_Send se bloque. J’ai essayé MPI_Datatype pour définir un nouveau […]

MPI diffusion asynchrone de source inconnue

J’ai un projet C qui compte un nombre n de processeurs travaillant sur une sorte de recherche dans les arbres. À tout moment du programme, l’un de ces processus peut trouver quelque chose d’intéressant et vouloir l’envoyer à tous les autres processeurs de manière asynchrone. Comment puis-je écouter les nouveaux messages sur les autres processus […]

MPI Spawn: le processus racine ne communique pas avec les processus enfants

(Question du débutant) J’essaie de générer des processus de manière dynamic à l’aide de MPI_Comm_Spawn, puis de diffuser un message aux processus enfants, mais le programme s’arrête dans la diffusion depuis le processus racine vers les enfants. Je suis la documentation de http://www.mpi-forum.org/docs/docs.html mais je ne peux pas le faire fonctionner. Est-ce que quelqu’un peut […]

MPI avec C: synchronisation RMA passive

comme je n’ai pas trouvé de réponse à ma question jusqu’à présent et que je suis sur le sharepoint devenir fou du problème, je pose simplement la question qui me tourmente l’esprit 😉 Je travaille sur la parallélisation d’un algorithme d’élimination de nœud que j’ai déjà programmé. L’environnement cible est un cluster. Dans mon programme […]

En utilisant MPI, un message semble avoir été reçu avant son envoi

Dans mon programme de test ci-dessous, j’envoie un message d’un processus à un autre. La trace printfs semble indiquer ce que le message est reçu avant son envoi, pourquoi en est-il ainsi? #include #include #include /* Run with two processes */ void main(int argc, char *argv[]) { int rank, i, count; float data[100],value[200]; MPI_Status status; […]

MPI IO Masortingce cyclique de bloc de lecture et d’écriture

J’ai un projet d’école pour faire la multiplication de masortingce sur un système dissortingbué de HPC. J’ai besoin de lire une masortingce à partir d’un système d’E / S parallèle et d’utiliser pblacs pour effectuer la multiplication de masortingce en parallèle sur de nombreux nœuds de calcul (processeurs). Les données doivent être lues à l’aide […]