Funktionsübersicht
. .
Gruppen, Kontexte und Kommunikatoren
Hilfesystem für den Message Passing Interface Standard MPI
MPI_Group_range_incl
Erzeugt eine neue Gruppe aus mehreren ausgewählten Bereichen einer
gegebenen Gruppe
Syntax:
MPI_Group_range_incl( group, n, ranges, newgroup )
Input Parameter:
group1 - Gruppe (handle)
n - Anzahl der Tripel in ranks (integer)
ranges - Feld von Integer-Tripeln bestehend aus (erster, letzter,
Schrittweite). Erster und letzter bezeichnen die Ränge der Prozesse zwischen
denen Schittweite angibt, jeder wievielte Prozeß mit einzubeziehen ist. Aus
den auf diese Art ausgewählten Prozessen wird letztlich die neue Gruppe
gebildet. Es dürfen nur gültige Ränge angegeben werden und die Schrittweite
muß ungleich Null sein. erster > letzter und eine negative Schrittweite
ist jedoch möglich.
Output Parameter:
newgroup - neue Gruppe (handle)
Aufruf:
Aus einer Gruppe von mindestens 8 Prozessen werden die Prozesse 1, 3, 5, 6
und 7 für die neue Gruppe ausgewählt.
#include "mpi.h"
#define MAX 2
MPI_Group group, newgroup;
int n;
int ranges[MAX][3];
...
MPI_Comm_group(MPI_COMM_WORLD, &group);
ranges[0][0]=1; /* erster */
ranges[0][1]=5; /* letzter */
ranges[0][2]=2; /* Schrittweite */
ranges[1][0]=6; /* erster */
ranges[1][1]=7; /* letzter */
ranges[1][2]=1; /* Schrittweite */
n=MAX;
MPI_Group_range_incl(group, n, ranges, &newgroup);
...
MPI_Group_free(&newgroup);
...
Beispiel