SHMEM\_LONGLONG\_SWAP(3) Open MPI SHMEM\_LONGLONG\_SWAP(3)

shmem\_double\_swap &lt;#shmem-double-swap&gt;(3), shmem\_float\_swap &lt;#shmem-float-swap&gt;(3), shmem\_int\_swap &lt;#shmem-int-swap&gt;(3), shmem\_long\_swap &lt;#shmem-long-swap&gt;(3), shmem\_swap &lt;#shmem-swap&gt;(3), [shmem\_int4\_swap(3)](/man/enterprise-packages/openmpi-cuda-12.9/shmem_int4_swap.3), [shmem\_int8\_swap(3)](/man/enterprise-packages/openmpi-cuda-12.9/shmem_int8_swap.3), [shmem\_real4\_swap(3)](/man/enterprise-packages/openmpi-cuda-12.9/shmem_real4_swap.3), [shmem\_real8\_swap(3)](/man/enterprise-packages/openmpi-cuda-12.9/shmem_real8_swap.3), [shmem\_longlong\_swap(3)](/man/enterprise-packages/openmpi-cuda-12.9/shmem_longlong_swap.3) - Performs an atomic swap to a remote data object

# [SYNOPSIS](#SYNOPSIS)

C or C++:

```
#include <mpp/shmem.h>
double shmem_double_swap(double *target, double value,


  int pe)
float shmem_float_swap(float *target, float value, int pe)
int shmem_int_swap(int *target, int value, int pe)
long shmem_long_swap(long *target, long value, int pe)
long long shmem_longlong_swap(long long *target,


  long long value, int pe)
long shmem_swap(long *target, long value, int pe)
```

Fortran:

```
INCLUDE "mpp/shmem.fh"
INTEGER pe
INTEGER SHMEM_SWAP
ires = SHMEM_SWAP(target, value, pe)
INTEGER(KIND=4) SHMEM_INT4_SWAP
ires = SHMEM_INT4_SWAP(target, value, pe)
INTEGER(KIND=8) SHMEM_INT8_SWAP
ires = SHMEM_INT8_SWAP(target, value, pe)
REAL(KIND=4) SHMEM_REAL4_SWAP
res = SHMEM_REAL4_SWAP(target, value, pe)
REAL(KIND=8) SHMEM_REAL8_SWAP
res = SHMEM_REAL8_SWAP(target, value, pe)
```

# [DESCRIPTION](#DESCRIPTION)

The atomic swap routines write **value** to address target on PE **pe**, and return the previous contents of **target** in one atomic operation.

The arguments are as follows:

[**target**](#target)

The remotely accessible integer data object to be updated on the remote PE. If you are using C/C++, the type of target should match that implied in the SYNOPSIS section. If you are using Fortran, it must be of the following type:

**SHMEM\_SWAP:** Integer of default kind

**SHMEM\_INT4\_SWAP:** 4-byte integer

**SHMEM\_INT8\_SWAP:** 8-byte integer

**SHMEM\_REAL4\_SWAP:** 4-byte real

**SHMEM\_REAL8\_SWAP:** 8-byte real

[**value**](#value)

Value to be atomically written to the remote PE. value is the same type as target.

[**pe**](#pe)

An integer that indicates the PE number on which target is to be updated. If you are using Fortran, it must be a default integer value.

# [NOTES](#NOTES)

The term remotely accessible is defined in [*intro\_shmem*(3)](/man/enterprise-packages/openmpi-cuda-12.9/intro_shmem.3).

# [RETURN VALUES](#RETURN_VALUES)

The contents that had been at the target address on the remote PE prior to the swap is returned.

**See also:**

[*intro\_shmem*(3)](/man/enterprise-packages/openmpi-cuda-12.9/intro_shmem.3)

# [Copyright](#Copyright)

2003-2026, The Open MPI Community

September 23, 2026

---

Document: shmem_longlong_swap(3) from openmpi-cuda-12.9 5.0.11-r0 (Chainguard OS)
Source: https://github.com/open-mpi/ompi
