Also schreibe ich ein Programm, um einen "virtuellen Ball" zwischen Prozessen zu hüpfen. Der Stammprozess, d. H. Die Aufgabe mit Rang 0, initialisiert das Spiel und sendet es dann an einen zufälligen Prozess, der durch rand() % size
bestimmt wird (wobei die durch den anfänglichen Rang gesetzte Zufallszahl erzeugt wird).Senden an und Empfangen von verschiedenen Prozessen in MPI
Ich habe zu tun versucht:
int rnk= rand() % size; MPI_Send(&ball,1, MPI_INT, rnk, MPI_COMM_WORLD);
Diese den Ball zum nächsten zufälligen Prozess sendet aber diese den Code beim Fahren wird durch die Blockierung MPI_Send gehalten. Ich habe gerade mit der parallelen Programmierung begonnen, daher habe ich nicht genug Verständnis dafür. Wie sende ich einen zufälligen Prozess und sende ihn dann an einen beliebigen Prozess weiter?
Alle Hinweise, Tipps, Bücher und Tutorials sind willkommen.
Bitte geben Sie eine [mcve] von dem, was Sie versucht haben. – Zulan
Siehe http://stackoverflow.com/questions/4348900/mpi-recv-from-an-unknown-source – francis
Okay, das Problem war, dass einer der MPI-Prozesse wegen einer Wettlaufsituation hängen blieb. Ich habe das gelöst und das Programm lief wie erwartet. –