---
name: "shmem_set_cache_inv"
section: "3"
platform: "linux"
package: "openmpi"
version: "5.0.11-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/shmem_set_cache_inv"
---

# shmem\_set\_cache\_inv(3)

[*shmem\_clear\_cache\_inv*(3)](/shmem_clear_cache_inv/3.md), [*shmem\_set\_cache\_inv*(3)](/shmem_set_cache_inv/3.md), [*shmem\_set\_cache\_line\_inv*(3)](/shmem_set_cache_line_inv/3.md), [*shmem\_udcflush*(3)](/shmem_udcflush/3.md), [*shmem\_udcflush\_line*(3)](/shmem_udcflush_line/3.md) - Controls data cache utilities

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

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

- **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* disables automatic cache coherency mode previously enabled by *shmem\_set\_cache\_inv* or *shmem\_set\_cache\_line\_inv*.

*shmem\_clear\_cache\_line\_inv* disables automatic cache coherency mode for the cache line associated with the address of **target** only.

*shmem\_set\_cache\_inv* enables the OpenSHMEM API to automatically decide the best strategy for cache coherency.

*shmem\_set\_cache\_line\_inv* enables automatic cache coherency mode for the cache line associated with the address of **target** only.

*shmem\_clear\_cache\_inv* disables automatic cache coherency mode previously enabled by *shmem\_set\_cache\_inv* or *shmem\_set\_cache\_line\_inv*.

*shmem\_udcflush* makes the entire user data cache coherent.

*shmem\_udcflush\_line* makes coherent the cache line that corresponds with the address specified by target.

## NOTES

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

**SEE ALSO:**

[*intro\_shmem*(3)](/intro_shmem/3.md) *shmem\_put*(3) [*shmem\_swap*(3)](/shmem_swap/3.md)

## COPYRIGHT

2003-2026, The Open MPI Community
