SHMEM_CLEAR_CACHE_INV(3)

πŸ“¦
version 5.0.10 Β· 4 versions
, in ubuntu stonking

πŸ’– SHMEM_CLEAR_CACHE_INV πŸ’–

okay bestie, welcome to the cache coherency corner of the Open MPI manual, aka SHMEM_CLEAR_CACHE_INV(3). this page is a whole little friend group of routines and they all hang out together. let me introduce you 🫢

the squad is: shmem_clear_cache_inv(3), shmem_set_cache_inv(3), shmem_set_cache_line_inv(3), shmem_udcflush(3), and shmem_udcflush_line(3). (and also shmem_clear_cache_line_inv, who shows up later, we love her πŸ’…)

together? they control data cache utilities. that's the whole vibe. periodt.


✨ 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 🌸

so there's exactly one argument that gets passed to the cache line control routines, and she's a main character:

  • target β€” a data object that is local to the processing element (PE). target can be of any noncharacter type. and if you're doing the Fortran thing? it can be of any kind πŸ¦‹

okay now the individual glow-ups, one by one:

  • shmem_clear_cache_inv β€” turns OFF automatic cache coherency mode that was previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. it's the off switch bestie πŸ”»
  • shmem_clear_cache_line_inv β€” turns OFF automatic cache coherency mode only for the cache line associated with the address of target. just that one line. not the whole party πŸ™ˆ
  • shmem_set_cache_inv β€” enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. it's giving delegating to the algorithm, and honestly? she's right πŸ’…
  • shmem_set_cache_line_inv β€” enables automatic cache coherency mode only for the cache line associated with the address of target. again: one line only 🌈
  • shmem_clear_cache_inv β€” yeah okay so this one is listed a second time, and the original says the exact same thing twice, so I'm saying it twice too, no cap: it disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. iconic repetition behavior πŸ‘‘
  • shmem_udcflush β€” makes the entire user data cache coherent. the whole thing. full send πŸ”₯
  • shmem_udcflush_line β€” makes coherent the cache line that corresponds with the address specified by target. just the one line, matching the address 🎯

⭐ NOTES ⭐

these routines have been retained for improved backward compatibility with legacy architectures. so like, they're the vintage pieces in the closet that still absolutely serve πŸ’œ

See also:

intro_shmem(3) shmem_put(3) shmem_swap(3)


<html><body><p>─── 🌸 ───</p></body></html>

and that's the page bestie πŸ’– copyright 2003-2026, The Open MPI Community β€” and this whole cutie dropped on Sep 10, 2026, filed under SHMEM_CLEAR_CACHE_INV(3) from the Open MPI fam. mwah, go flush something coherently 🫢✨

πŸ“¦ where this page comes from