SHMEM_CHAR_P(3)

πŸ’… SHMEM_CHAR_P(3) β€” the Open MPI glow-up 🫢

okay bestie, so this page lives in the Open MPI manual, section 3, and it's literally the whole "tiny fast write" squad: shmem_char_p(3), shmem_float_p(3), shmem_int_p(3), shmem_long_p(3), shmem_short_p(3), shmem_longlong_p(3), shmem_longdouble_p(3). yes that's a lot of names, no we're not dropping any, they all ate πŸ’…


✨ NAME ✨

shmem_char_p(3), shmem_float_p(3), shmem_int_p(3), shmem_long_p(3), shmem_short_p(3), shmem_longlong_p(3), shmem_longdouble_p(3) β€” these routines give you a low latency mechanism to write basic types (char, short, int, float, double, long, long long, long double) to symmetric data objects on remote PEs. it's giving "one value, one trip, no drama" πŸ¦‹


🌸 SYNOPSIS 🌸

C or C++:

#include <mpp/shmem.h>

void shmem_char_p(char *addr, char value, int pe)

void shmem_short_p(short *addr, short value, int pe)

void shmem_int_p(int *addr, int value, int pe)

void shmem_long_p(long *addr, long value, int pe)

void shmem_longlong_p(long long *addr, long long value, int pe)

void shmem_float_p(float *addr, float value, int pe)

void shmem_double_p(double *addr, double value, int pe)

void shmem_longdouble_p(long double *addr, long double value, int pe)

look at that lineup 😭 every basic type got its own little function, iconic behavior fr fr


πŸ’– DESCRIPTION πŸ’–

so these routines are literally the "very low latency put" capability β€” that's the whole job, no cap. they're for single elements of most basic types. one element, one write, in and out, main character energy ✨

the arguments are as follows:

  • addr β€” the remotely accessible array element or scalar data object that will receive the data on the remote PE. it's the destination, the one catching the vibe πŸŽ€
  • value β€” the value to be transferred to addr on the remote PE. this is the actual gift you're sending πŸ’
  • pe β€” the number of the remote PE. yes, the PE number, that's it, that's the whole arg 🌈
⚠️ okay this part matters bestie: just like with shmem_put(3), these functions start the remote transfer and may return before the data is delivered to the remote PE. so the call coming back does NOT mean it landed. 😭 use shmem_quiet(3) to force completion of all remote PUT transfers. don't skip the quiet, i'm begging πŸ™ˆ

πŸ‘‘ SEE ALSO πŸ‘‘

go read those next, iykyk πŸ’œ


2003-2026, The Open MPI Community β€” respectfully, thank you for your service to the cause 🫢


and that's the page, bestie! πŸ’€βœ¨ written down for May 14, 2026, from the Open MPI corner of the universe, page SHMEM_CHAR_P(3) and out β€” mwah πŸ’‹πŸŒΈ

πŸ“¦ where this page comes from