Funktionsübersicht
. .
Gruppen, Kontexte und Kommunikatoren
Hilfesystem für den Message Passing Interface Standard MPI
MPI_Group_range_excl
Erzeugt eine neue Gruppe aus mehreren ausgewählten Bereichen einer
gegebenen Gruppe
Syntax:
MPI_Group_range_excl( 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ß nicht in der neuen Gruppe
sein soll. Aus den verbleibenden 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 entfernt. Aus den verbleibenden (0, 2, 4 und allen mit Rang größer 7)
wird eine neue Gruppe gebildet.
#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_excl(group, n, ranges, &newgroup);
...
MPI_Group_free(&newgroup);
...