shmem_group_create_strided(3)
shmem_group_create_strided, shmem_group_delete - Create or delete a SHMEM process group object
Showing IRIX 6.5.30 (default release). Last changed in IRIX 6.5.22.
NAME shmem_group_create_strided, shmem_group_delete - Create or delete a SHMEM process group object SYNOPSIS C or C++: #include <mpp/shmem.h> int shmem_group_create_strided(int PE_start, int PE_stride, int PE_size, int racom, int *isync) void shmem_group_delete(int handle); Fortran: include "mpp/shmem.fh" INTEGER PE_start, PE_stride, PE_size INTEGER racom(SHMEM_GROUP_COM_SIZE) INTEGER isync(SHMEM_GROUP_SYNC_SIZE) INTEGER handle handle = SHMEM_GROUP_CREATE_STRIDED(PE_start, PE_stride, PE_size, racom, isync) CALL SHMEM_GROUP_DELETE(handle) DESCRIPTION The shmem_group_create_strided function identifies a group of SHMEM processes that comprise a SHMEM group. The returned handle is used thereafter to identify this group of SHMEM processes to the glio_group_shmem() routine. The shmem_group_delete function deallocates the SHMEM process group opaque object. Both shmem_group_create_strided and shmem_group_delete are collective routines executed by all processes in the process group. The arguments are as follows: PE_start The lowest PE number of the group of PEs. PE_start must be of type integer. If you are using Fortran, it must be a default integer value. PE_stride The stride between consecutive virtual PE numbers in the active set. PE_stride must be of type integer. If you are using Fortran, it must be a default integer value. PE_size The number of PEs in the group. PE_size must be of type integer. If you are using Fortran, it must be a default integer value. racom A remotely accessible array in PE PE_start's memory of type int/integer and size SHMEM_GROUP_COM_SIZE. This array must be initialized to 0 before any PE enters shmem_group_create. This array is used for communication by this group of processes during SHMEM collective operations performed by this group of PES. The instance of this data object on PE PE_start cannot be used for any other purpose until after shmem_group_delete is called for this group handle. Because this group of PEs accesses racom only on PE PE_start, the same racom to be used by several SHMEM PE groups that have different PE_start numbers. To use a common example, disjoint groups of PEs may all use the same symmetric racom array. isync A symmetric array of type int and size SHMEM_GROUP_SYNC_SIZE used to optimize collective operations. If isync is NULL (C) or SHMEM_NULL (Fortran), SHMEM allocates the needed storage internally. This array must be initialized to 0 before any PE enters shmem_group_create. This array is used for synchronization within SHMEM collective routines. This array can be used for any collective operations on other PE groups as long as those groups are disjoint with the set of PES in this group. If this argument is NULL or SHMEM_NULL, shmem_group_create_strided() allocates a remotely accessible, possibly non-symmetric, isync array for internal use by this group on every PE. RETURN VALUES shmem_group_create_strided returns a handle that is used thereafter to identify the corresponding group of SHMEM processes. EXAMPLES The following Fortran program opens global file globfile for access from SHMEM processes (PEs) 0 and 1. PEs 2 and higher will not access the file. program global_subset include "mpp/shmem.fh" integer racom, handle common /racom/ racom(SHMEM_GROUP_COM_SIZE) call start_pes(0) racom = 0 c Define a SHMEM group and then open globfile across this group if (my_pe().le.1) then call assign("assign -F global u:20",ier) handle = shmem_group_create_strided(0, 1, 2, racom, shmem_null) call glio_group_shmem(handle) open (20,file="globfile",access="direct",recl=64) endif end NOTES Currently, a SHMEM process group can be used only with global FFIO files. The related glio_group_shmem() routine is available. This function is not supported on Altix systems. SEE ALSO glio_group_shmem(3), intro_shmem(3) Message Passing Toolkit: MPI Programmer's Manual