85 строки
2.0 KiB
Plaintext
85 строки
2.0 KiB
Plaintext
.\" -*- nroff -*-
|
|
.\" Copyright (c) 2015 University of Houston. All rights reserved.
|
|
.\" Copyright (c) 2015 Mellanox Technologies, Inc.
|
|
.\" $COPYRIGHT$
|
|
.de Vb
|
|
.ft CW
|
|
.nf
|
|
..
|
|
.de Ve
|
|
.ft R
|
|
|
|
.fi
|
|
..
|
|
.TH "SHMEM\\_INIT" "3" "#OMPI_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
|
|
.SH NAME
|
|
|
|
shmem_init, start_pes
|
|
\- Allocates a block of memory from the symmetric heap.
|
|
.SH SYNOPSIS
|
|
|
|
C or C++:
|
|
.Vb
|
|
void shmem_init(void);
|
|
void start_pes(int npes);
|
|
.Ve
|
|
Fortran:
|
|
.Vb
|
|
CALL SHMEM_INIT()
|
|
CALL START_PES(npes)
|
|
.Ve
|
|
.SH DESCRIPTION
|
|
|
|
The start_pes routine should be the first statement in a SHMEM parallel program.
|
|
.PP
|
|
The start_pes routine accepts the following argument:
|
|
.TP
|
|
npes
|
|
Unused. Should be set to 0.
|
|
.PP
|
|
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.
|
|
.PP
|
|
Multiple calls to this function are not allowed.
|
|
.PP
|
|
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
|
|
|
|
This is a simple program that calls \fIshmem_integer_put\fP(3):
|
|
.Vb
|
|
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
|
|
.Ve
|
|
.SH NOTES
|
|
|
|
If the start_pes call is not the first statement in a program, unexpected results may occur on
|
|
some architectures.
|
|
.SH SEE ALSO
|
|
|
|
\fIintro_shmem\fP(3),
|
|
\fIshmem_barrier\fP(3),
|
|
\fIshmem_barrier_all\fP(3),
|
|
\fIshmem_put\fP(3),
|
|
\fImy_pe\fP(3I),
|
|
\fIshmem_n_pes\fP(3I)
|