SHMEM\_UDCFLUSH(3) Open MPI SHMEM\_UDCFLUSH(3)

shmem\_clear\_cache\_inv &lt;#shmem-clear-cache-inv&gt;(3), shmem\_set\_cache\_inv &lt;#shmem-set-cache-inv&gt;(3), shmem\_set\_cache\_line\_inv &lt;#shmem-set-cache-line-inv&gt;(3), [shmem\_udcflush(3)](/man/enterprise-packages/openmpi-cuda-13.0/shmem_udcflush.3), shmem\_udcflush\_line &lt;#shmem-udcflush-line&gt;(3) - Controls data cache utilities

# [SYNOPSIS](#SYNOPSIS)

C or C++:

```
#include <mpp/shmem.h>
void shmem_clear_cache_inv(void)
void shmem_clear_cache_line_inv(void *target)
void shmem_set_cache_inv(void)
void shmem_set_cache_line_inv(void *target)
void shmem_udcflush(void)
void shmem_udcflush_line(void *target)
```

Fortran:

```
INCLUDE "mpp/shmem.fh"
CALL SHMEM_CLEAR_CACHE_INV
CALL SHMEM_CLEAR_CACHE_LINE_INV(target)
CALL SHMEM_SET_CACHE_INV
CALL SHMEM_SET_CACHE_LINE_INV(target)
CALL SHMEM_UDCFLUSH
CALL SHMEM_UDCFLUSH_LINE(target)
```

# [DESCRIPTION](#DESCRIPTION)

The following argument is passed to the cache line control routines:

[**target**](#target)

A data object that is local to the processing element (PE). target can be of any noncharacter type. If you are using Fortran, it can be of any kind.

shmem\_clear\_cache\_inv &lt;#shmem-clear-cache-inv&gt; disables automatic cache coherency mode previously enabled by shmem\_set\_cache\_inv &lt;#shmem-set-cache-inv&gt; or shmem\_set\_cache\_line\_inv &lt;#shmem-set-cache-line-inv&gt;.

shmem\_clear\_cache\_line\_inv &lt;#shmem-clear-cache-line-inv&gt; disables automatic cache coherency mode for the cache line associated with the address of **target** only.

shmem\_set\_cache\_inv &lt;#shmem-set-cache-inv&gt; enables the OpenSHMEM API to automatically decide the best strategy for cache coherency.

shmem\_set\_cache\_line\_inv &lt;#shmem-set-cache-line-inv&gt; enables automatic cache coherency mode for the cache line associated with the address of **target** only.

shmem\_clear\_cache\_inv &lt;#shmem-clear-cache-inv&gt; disables automatic cache coherency mode previously enabled by shmem\_set\_cache\_inv &lt;#shmem-set-cache-inv&gt; or shmem\_set\_cache\_line\_inv &lt;#shmem-set-cache-line-inv&gt;.

shmem\_udcflush makes the entire user data cache coherent.

shmem\_udcflush\_line &lt;#shmem-udcflush-line&gt; makes coherent the cache line that corresponds with the address specified by target.

# [NOTES](#NOTES)

These routines have been retained for improved backward compatibility with legacy architectures.

**See also:**

[*intro\_shmem*(3)](/man/enterprise-packages/openmpi-cuda-13.0/intro_shmem.3) [*shmem\_put*(3)](/man/enterprise-packages/openmpi-cuda-13.0/shmem_put.3) [*shmem\_swap*(3)](/man/enterprise-packages/openmpi-cuda-13.0/shmem_swap.3)

# [Copyright](#Copyright)

2003-2026, The Open MPI Community

September 23, 2026

---

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