aa7317d635
This commit was SVN r11871.
98 строки
3.0 KiB
Groff
98 строки
3.0 KiB
Groff
.\"Copyright 2006, Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.
|
|
.\" Copyright (c) 1996 Thinking Machines Corporation
|
|
.TH MPI_Alloc_mem 3OpenMPI "September 2006" "Open MPI 1.2" " "
|
|
.SH NAME
|
|
\fBMPI_Alloc_mem \fP \- Allocates a specified memory segment.
|
|
|
|
.SH SYNTAX
|
|
.ft R
|
|
.SH C Syntax
|
|
.nf
|
|
#include <mpi.h>
|
|
int MPI_Alloc_mem(MPI_Aint \fIsize\fP, MPI_Info \fIinfo\fP, void *\fIbaseptr\fP)
|
|
|
|
.SH Fortran Syntax (see FORTRAN NOTES)
|
|
.nf
|
|
INCLUDE 'mpif.h'
|
|
MPI_ALLOC_MEM(\fISIZE, INFO, BASEPTR, IERROR\fP)
|
|
INTEGER \fIINFO, IERROR\fP
|
|
INTEGER(KIND=MPI_ADDRESS_KIND) \fISIZE, BASEPTR\fP
|
|
|
|
.SH C++ Syntax
|
|
.nf
|
|
#include <mpi.h>
|
|
void* MPI::Alloc_mem(MPI::Aint \fIsize\fP, const MPI::Info& \fIinfo\fP)
|
|
|
|
.SH INPUT PARAMETERS
|
|
.ft R
|
|
.TP 1i
|
|
size
|
|
Size of memory segment in bytes (nonnegative integer).
|
|
.ft R
|
|
.TP 1i
|
|
info
|
|
Info argument (handle).
|
|
|
|
.SH OUTPUT PARAMETERS
|
|
.ft R
|
|
.TP 1i
|
|
baseptr
|
|
Pointer to beginning of memory segment allocated.
|
|
.TP 1i
|
|
IERROR
|
|
Fortran only: Error status (integer).
|
|
|
|
.SH DESCRIPTION
|
|
.ft R
|
|
MPI_Alloc_mem allocates \fIsize\fP bytes of memory. The starting address
|
|
of this memory is returned in the variable \fIbase\fP.
|
|
.sp
|
|
Memory allocated by MPI_Alloc_mem is
|
|
guaranteed to be aligned on natural boundaries (page frames).
|
|
|
|
.SH FORTRAN NOTES
|
|
.ft R
|
|
There is no portable FORTRAN 77 syntax for using MPI_Alloc_mem.
|
|
There is no portable Fortran syntax for using pointers returned
|
|
from MPI_Alloc_mem. However, MPI_Alloc_mem can be used with
|
|
Fortran compilers.
|
|
.sp
|
|
From FORTRAN 77, you can use the following non-standard
|
|
declarations for the SIZE and BASEPTR arguments:
|
|
.nf
|
|
INCLUDE "mpif.h"
|
|
INTEGER*MPI_ADDRESS_KIND SIZE, BASEPTR
|
|
.fi
|
|
.sp
|
|
From either FORTRAN 77 or Fortran 90, you can use "Cray pointers"
|
|
for the BASEPTR argument. Cray pointers are described further in
|
|
the Fortran User's Guide and are supported by many Fortran compilers.
|
|
For example,
|
|
.sp
|
|
.nf
|
|
INCLUDE "mpif.h"
|
|
REAL*4 A(100,100)
|
|
POINTER (BASEPTR, A)
|
|
INTEGER*MPI_ADDRESS_KIND SIZE
|
|
|
|
SIZE = 4 * 100 * 100
|
|
CALL MPI_ALLOC_MEM(SIZE,MPI_INFO_NULL,BASEPTR,IERR)
|
|
|
|
! use A
|
|
|
|
CALL MPI_FREE_MEM(A, IERR)
|
|
.fi
|
|
|
|
.SH ERRORS
|
|
Almost all MPI routines return an error value; C routines as the value of the function and Fortran routines in the last argument. C++ functions do not return errors. If the default error handler is set to MPI::ERRORS_THROW_EXCEPTIONS, then on error the C++ exception mechanism will be used to throw an MPI:Exception object.
|
|
.sp
|
|
Before the error value is returned, the current MPI error handler is
|
|
called. By default, this error handler aborts the MPI job, except for I/O function errors. The error handler
|
|
may be changed with MPI_Comm_set_errhandler; the predefined error handler MPI_ERRORS_RETURN may be used to cause error values to be returned. Note that MPI does not guarantee that an MPI program can continue past an error.
|
|
|
|
.SH SEE ALSO
|
|
.ft R
|
|
.sp
|
|
MPI_Free_mem
|
|
' @(#)MPI_Alloc_mem.3 1.17 06/03/09
|