START_PES(3)
π START_PES(3) β the Open MPI glow-up
okay so bestie, welcome to START_PES(3) β this is the page for shmem_init and start_pes, and yes it's the "Allocates a block of memory from the symmetric heap" girlie. β¨
πΈ NAME
shmem_init, start_pes β Allocates a block of memory from the symmetric heap.
(no cap, that's literally what it says π)
β¨ SYNOPSIS β¨
C or C++:
void shmem_init(void)
void start_pes(int npes)
Fortran:
CALL SHMEM_INIT()
CALL START_PES(npes)
π DESCRIPTION π
okay so listen β the start_pes routine should be the first statement in a SHMEM parallel program. like, first first. before anything else. main character energy only. π
The start_pes routine accepts the following argument:
npesβ Unused. Should be set to0. that's it, that's the whole job, she's just vibing there set to zero π«Ά
This routine initializes the SHMEM API, therefore it must be called before calling any other SHMEM routine. it's giving "you can't sit with us until you've said hi to start_pes first" π
This routine is responsible inter 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. like she literally opens the group chat for you π₯
β οΈ Multiple calls to this function are not allowed. periodt. one and done, bestie. don't be that girl.
For an overview of programming with SHMEM communication routines, example SHMEM programs, and instructions for compiling SHMEM programs, see the intro_shmem(3) man page. it's the syllabus, go read it π
π¦ 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
look at her go π PE 0 sends, they sync up at the barrier, receiver prints and it's expect 33 β slay, iconic, correct. β
π NOTES π
If the start_pes call is not the first statement in a program, unexpected results may occur on some architectures. so likeβ¦ don't? put her first, fr fr. π
SEE ALSO: intro_shmem(3) shmem_barrier(3) shmem_barrier_all(3) shmem_put(3) my_pe(3) shmem_n_pes(3)
the whole friend group, go say hi π
π COPYRIGHT π
2003-2026, The Open MPI Community
and that's the page, bestie π ty for reading, mwah β written by The Open MPI Community, dated May 14, 2026, filed under START_PES(3) π¦β¨
π¦ where this page comes from
- arch rolling: nvhpc-comm-libs 26.9-1 Β· LicenseRef-NVIDIA-HPC-SDK
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms