SHMEM_LONGLONG_FADD(3)
SHMEM_LONGLONG_FADD(3) π
okay bestie, gather round, because this is the Open MPI page for the fetch-and-add girlies and it is iconic. the family is:
shmem_int4_fadd(3)shmem_int8_fadd(3)shmem_int_fadd(3)shmem_long_fadd(3)shmem_longlong_fadd(3)
and what do they do? they perform an atomic fetch-and-add operation on a remote data object. no cap. π₯
β¨ SYNOPSIS β¨
C or C++:
#include <mpp/shmem.h>
int shmem_int_fadd(int *target, int value, int pe)
long shmem_long_fadd(long *target, long value, int pe)
long long shmem_longlong_fadd(long long *target, longlong value,
int pe)
Fortran:
INCLUDE "mpp/shmem.fh"
INTEGER pe
INTEGER(KIND=4) SHMEM_INT4_FADD, ires, target, value
ires = SHMEM_INT4_FADD(target, value, pe)
INTEGER(KIND=8) SHMEM_INT8_FADD, ires, target, value
ires = SHMEM_INT8_FADD(target, value, pe)
π DESCRIPTION π
so the shmem_fadd functions perform an atomic fetch-and-add operation. and what does THAT mean, you ask? it means it fetches the old target and adds value to target without the possibility of another process updating target between the time of the fetch and the update. that's the whole moment. nobody can jump in mid-add and ruin the vibe. π«Ά
these routines add value to target on Processing Element (PE) pe and return the previous contents of target as an atomic operation. bestie that's a full two-for-one and it ate. π
the arguments, bestie:
targetβ the remotely accessible integer data object to be updated on the remote PE. the type oftargetshould match that implied in the SYNOPSIS section. match the vibe or it's not gonna work, fr fr.valueβ the value to be atomically added totarget. the type ofvalueshould match that implied in the SYNOPSIS section. again: match it. πpeβ an integer that indicates the PE number on whichtargetis to be updated. if you are using Fortran, it must be a default integer value. that part is not optional, okay? π
π NOTES π
the term remotely accessible is defined in intro_shmem(3). go read that one if the phrase is giving you a vibe check you can't pass. π¦
π RETURN VALUES π
the contents that had been at the target address on the remote PE prior to the atomic addition operation. so you get the old number back, and the new number lives at target now. the way that works?? so clean. β¨
see also:
heads up bestie: keep those types matching the SYNOPSIS. the manpage says it twice because it means it. π
Copyright 2003-2026, The Open MPI Community
and that's the whole page, babe β Open MPI, dated Sep 10, 2026, filed under SHMEM_LONGLONG_FADD(3). slay, stay atomic, and don't let anybody between your fetch and your update. periodt. πππ¦β¨
π¦ where this page comes from
- ubuntu stonking: openmpi-doc 5.0.10-6 Β· other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms