dwww Home | Manual pages | Find package

SHMEM_INIT(3)                      Open MPI                      SHMEM_INIT(3)

NAME
       shmem_init,  start_pes - Allocates a block of memory from the symmetric
       heap.

SYNOPSIS
       C or C++:
       void shmem_init(void);
       void start_pes(int npes);

       Fortran:
       CALL SHMEM_INIT()
       CALL START_PES(npes)

DESCRIPTION
       The start_pes routine should be the first statement in a SHMEM parallel
       program.

       The start_pes routine accepts the following argument:

       npes   Unused. Should be set to 0.

       This routine initializes the SHMEM API, therefore it must be called be-
       fore calling any other SHMEM routine.  This routine is responsible  in-
       ter  alia  for setting up the symmetric heap on the calling PE, and the
       creation of the virtual PE numbers. Upon successful  return  from  this
       routine,  the  calling PE will be able to communicate with and transfer
       data to other PEs.

       Multiple calls to this function are not allowed.

       For an overview of programming with SHMEM communication routines, exam-
       ple  SHMEM programs, and instructions for compiling SHMEM programs, see
       the intro_shmem(3) man page.

EXAMPLES
       This is a simple program that calls shmem_integer_put(3):
       PROGRAM PUT
         INCLUDE "mpp/shmem.fh"

         INTEGER TARG, SRC, RECEIVER, BAR
         COMMON /T/ TARG
         PARAMETER (RECEIVER=1)

         CALL SHMEM_INIT()
         IF (MY_PE() .EQ. 0) THEN
           SRC = 33
           CALL SHMEM_INTEGER_PUT(TARG, SRC, 1, RECEIVER)
         ENDIF
         CALL SHMEM_BARRIER_ALL ! SYNCHRONIZES SENDER AND RECEIVER
         IF (MY_PE() .EQ. RECEIVER) THEN
           PRINT *,'PE ', MY_PE(),' TARG=',TARG,' (expect 33)'
         ENDIF
       END

NOTES
       If the start_pes call is not the first statement in  a  program,  unex-
       pected results may occur on some architectures.

SEE ALSO
       intro_shmem(3),  shmem_barrier(3),  shmem_barrier_all(3), shmem_put(3),
       my_pe(3I), shmem_n_pes(3I)

4.1.2                            Nov 24, 2021                    SHMEM_INIT(3)

Generated by dwww version 1.14 on Fri Jan 24 14:02:44 CET 2025.