.\" Man page generated from reStructuredText. . . .nr rst2man-indent-level 0 . .de1 rstReportMargin \\$1 \\n[an-margin] level \\n[rst2man-indent-level] level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] - \\n[rst2man-indent0] \\n[rst2man-indent1] \\n[rst2man-indent2] .. .de1 INDENT .\" .rstReportMargin pre: . RS \\$1 . nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin] . nr rst2man-indent-level +1 .\" .rstReportMargin post: .. .de UNINDENT . RE .\" indent \\n[an-margin] .\" old: \\n[rst2man-indent\\n[rst2man-indent-level]] .nr rst2man-indent-level -1 .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. .TH "SHMEM_INIT" "3" "Apr 11, 2024" "" "Open MPI" .sp \fI\%shmem_init\fP, start_pes \- Allocates a block of memory from the symmetric heap. .SH SYNOPSIS .sp C or C++: .INDENT 0.0 .INDENT 3.5 .sp .EX void shmem_init(void) void start_pes(int npes) .EE .UNINDENT .UNINDENT .sp Fortran: .INDENT 0.0 .INDENT 3.5 .sp .EX CALL SHMEM_INIT() CALL START_PES(npes) .EE .UNINDENT .UNINDENT .SH DESCRIPTION .sp The start_pes routine should be the first statement in a SHMEM parallel program. .sp The start_pes routine accepts the following argument: .INDENT 0.0 .TP .B npes Unused. Should be set to 0. .UNINDENT .sp This routine initializes the SHMEM API, therefore it must be called before calling any other SHMEM routine. 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. .sp Multiple calls to this function are not allowed. .sp For an overview of programming with SHMEM communication routines, example SHMEM programs, and instructions for compiling SHMEM programs, see the \fIintro_shmem\fP(3) man page. .SH EXAMPLES .sp This is a simple program that calls shmem_integer_put(3): .INDENT 0.0 .INDENT 3.5 .sp .EX PROGRAM PUT INCLUDE \(dqmpp/shmem.fh\(dq 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 *,\(aqPE \(aq, MY_PE(),\(aq TARG=\(aq,TARG,\(aq (expect 33)\(aq ENDIF END .EE .UNINDENT .UNINDENT .SH NOTES .sp If the start_pes call is not the first statement in a program, unexpected results may occur on some architectures. .sp \fBSEE ALSO:\fP .INDENT 0.0 .INDENT 3.5 \fIintro_shmem\fP(3) \fI\%shmem_barrier\fP(3) \fI\%shmem_barrier_all\fP(3) \fIshmem_put\fP(3) \fImy_pe\fP(3) \fIshmem_n_pes\fP(3) .UNINDENT .UNINDENT .SH COPYRIGHT 2003-2024, The Open MPI Community .\" Generated by docutils manpage writer. .