senden Ich möchte so einen Wert an eine Position in Array eines anderen Prozesses senden. soMPI - wie ein Wert an eine bestimmte Position im Array
1st process: MPI_ISend (&val..., process, ..)
2nd process: MPI_Recv (&array[i], ..., process, ...)
Ich weiß also, die i-Nummer auf dem ersten Prozess, auch ich weiß, dass ich nicht eine Variable verwenden kann - i zuerst senden und dann val, wie andere Prozesse i (zweiter Prozess ändern können, ist Akzeptieren von Nachrichten von vielen anderen).
Ich habe ein Problem, dass Tags für andere Zwecke verwendet werden und der erste Prozess sollte zum Beispiel 4 Werte an den zweiten Prozess im Zyklus senden, also sollte ein anderer, und so weiter. Ich kann sie nicht packen, da sie nicht an aufeinanderfolgenden Orten sind. MPI_Put und Get sind nicht wirklich wünschenswert. Also, nur dann befreien Tags und teilen Sie die Informationen mit ihnen hilft? –
Ich bin mir nicht sicher, aber klingt für mich, dass 'MPI_Gatherv' Ihre Probleme lösen könnte? Sie packen die Nachrichten in einem Array pro Rang (füllen Sie es in nicht aufeinander folgenden Orten, [oder ist das unmöglich?]) Und sammeln Sie diese lokalen Arrays in Rang_2. – SamVanDonut