dwww Home | Manual pages | Find package

SHMALLOC(3)                        Open MPI                        SHMALLOC(3)

NAME
       shmem_malloc(3), shmem_free(3), shmem_align(3), shmem_realloc(3) shmal-
       loc(3), shfree(3), shmemalign(3), shrealloc(3) - Symmetric heap  memory
       management functions.

SYNOPSIS
       C or C++:
       #include <mpp/shmem.h>

       void *shmem_malloc(size_t size);
       void *shmalloc(size_t size);

       void shmem_free(void *ptr);
       void shfree(void *ptr);

       void *shmem_realloc(void *ptr, size_t size);
       void *shrealloc(void *ptr, size_t size);

       void *shmem_align(size_t alignment, size_t size);
       void *shmemalign(size_t alignment, size_t size);

       extern long malloc_error;

DESCRIPTION
       The shmem_malloc function returns a pointer to a block of at least size
       bytes suitably aligned for any use. This space is  allocated  from  the
       symmetric  heap  (in  contrast  to malloc(3C), which allocates from the
       private heap).

       The shmem_align function allocates a block in the symmetric  heap  that
       has a byte alignment specified by the alignment argument.

       The  shmem_free function causes the block to which ptr points to, to be
       deallocated, that is, made available for further allocation. If ptr  is
       a  null  pointer, no action occurs; otherwise, if the argument does not
       match a pointer earlier returned by a symmetric heap  function,  or  if
       the space has already been deallocated, malloc_error is set to indicate
       the error, and shfree returns.

       The shmem_realloc function changes the size of the block to  which  ptr
       points to, to the size (in bytes) specified by size.

       The contents of the block are unchanged up to the lesser of the new and
       old sizes. If the new size is larger, the value of the newly  allocated
       portion  of  the  block is indeterminate. If ptr is a null pointer, the
       shrealloc function behaves like the shmalloc function for the specified
       size. If size is 0 and ptr is not a null pointer, the block to which it
       points to is freed. Otherwise, if ptr does not match a pointer  earlier
       returned by a symmetric heap function, or if the space has already been
       deallocated, the malloc_error variable is set to  indicate  the  error,
       and shrealloc returns a null pointer. If the space cannot be allocated,
       the block to which ptr points to is unchanged.

       The shmem_malloc, shmem_free, and shmem_realloc functions are  provided
       so that multiple PEs in an application can allocate symmetric, remotely
       accessible memory blocks. These memory blocks can  then  be  used  with
       (shmem)  communication  routines.  Each  of  these  functions  call the
       shmem_barrier_all(3) function before returning; this ensures  that  all
       PEs  participate in the memory allocation, and that the memory on other
       PEs can be used as soon as the local PE returns.

       The user is responsible for calling these functions with identical  ar-
       gument(s)  on all PEs; if differing size arguments are used, subsequent
       calls may not return the same symmetric heap address on all PEs.

NOTES
       The total size of the symmetric heap is determined at job startup.  One
       can adjust the size of the heap using the SHMEM_SYMMETRIC_HEAP_SIZE en-
       vironment variable. See the intro_shmem(3) man page for futher details.
       The  shmem_malloc,  shmem_free, and shmem_realloc functions differ from
       the private heap allocation functions in that all PEs in an application
       must call them (a barrier is used to ensure this).

RETURN VALUES
       The  shmem_malloc  function  returns  a  pointer to the allocated space
       (which should be identical on all PEs); otherwise, it  returns  a  null
       pointer  (with  malloc_error  set).  The shmem_free function returns no
       value.  The shmem_realloc function returns a pointer to  the  allocated
       space  (which  may  have  moved);  otherwise, it returns a null pointer
       (with malloc_error set).

SEE ALSO
       intro_shmem(3), shmem_my_pe(3I), shmem_init(3)

4.1.2                            Nov 24, 2021                      SHMALLOC(3)

Generated by dwww version 1.14 on Fri Jan 24 09:38:52 CET 2025.