SHMEM_DOUBLE_P(3)

πŸ’… SHMEM_DOUBLE_P(3) β€” Open MPI, bestie edition πŸŽ€

okay so first things first: this page lives in section 3 of the Open MPI manual, and the headline act is SHMEM_DOUBLE_P(3) β€” but she brought her whole friend group. The squad is shmem_char_p(3), shmem_float_p(3), shmem_int_p(3), shmem_long_p(3), shmem_short_p(3), shmem_longlong_p(3), and shmem_longdouble_p(3), and together they're the put girlies.

✨ What they actually do: these routines are the low latency mechanism for writing basic types β€” char, short, int, float, double, long, long long, long double β€” into symmetric data objects on remote PEs. basically yeeting a single value into somebody else's memory and making it look effortless. πŸ’…


✨ SYNOPSIS ✨

C or C++, bb β€” grab the header and you're in:

#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)

one function per type, no cap. pick your fave, they're all iconic. πŸ”₯


🌸 DESCRIPTION 🌸

these routines give you a very low latency put capability for single elements of most basic types. like, one element. a little guy. but he's fast. πŸ¦‹

the arguments, explained with love:

  • addr β€” the remotely accessible array element or scalar data object that's gonna receive the data on the remote PE. it's the destination, the main character of this whole operation. πŸ‘‘
  • value β€” the value being transferred to addr on the remote PE. this is the gift you're sending. 🎁
  • pe β€” the number of the remote PE. like, which friend's house we're delivering to. 🏠
🫢 lowkey important: as with shmem_put(3), these functions start the remote transfer and may return before the data is delivered to the remote PE. so don't go assuming it landed just because the function came back. use shmem_quiet(3) to force completion of all remote PUT transfers. that's the "okay everybody actually arrived now" button. ✨

πŸ‘€ SEE ALSO πŸ‘€

go read those too, iykyk πŸ’œ


2003-2026, The Open MPI Community


and that's the whole page, bestie β€” mwah πŸ’‹ this icon was documented in May 14, 2026 by the Open MPI girlies, and she ate. periodt. 🌈⭐

πŸ“¦ where this page comes from