SHMEM_CLEAR_CACHE_LINE_INV(3)

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

πŸŽ€ SHMEM_CLEAR_CACHE_LINE_INV πŸŽ€

okay bestie, this one's from the Open MPI manual, and it's a whole bundle of cache-vibe-control functions. it's giving "legacy but iconic". sit down, hydrate, let's go ✨


✨ NAME ✨

shmem_clear_cache_inv(3), shmem_set_cache_inv(3), shmem_set_cache_line_inv(3), shmem_udcflush(3), shmem_udcflush_line(3) β€” controls data cache utilities πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

so there's a C/C++ side and a Fortran side, and they're both invited to the party:

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 πŸ’–

here's the one argument that gets passed to the cache line control routines, and she's the main character:

  • target β€” a data object that's local to the processing element (PE). target can be of any noncharacter type. and if you're doing Fortran? it can be of any kind. periodt. ✨

🌸 the whole lineup, one by one 🌸

  • shmem_clear_cache_inv β€” disables automatic cache coherency mode that was previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. it's the "okay we're done here" button 🫢
  • shmem_clear_cache_line_inv β€” disables automatic cache coherency mode for the cache line associated with the address of target only. just that one line, bestie. focused. πŸ’…
  • shmem_set_cache_inv β€” enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. she's smart, she handles it πŸ‘‘
  • shmem_set_cache_line_inv β€” enables automatic cache coherency mode for the cache line associated with the address of target only. again. just the one line 😌
  • shmem_clear_cache_inv β€” disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. (yes she's listed twice, no I'm not skipping her, we keep EVERYTHING in this house 🫑)
  • shmem_udcflush β€” makes the entire user data cache coherent. the whole thing. no half measures 🧚
  • shmem_udcflush_line β€” makes coherent the cache line that corresponds with the address specified by target. just the one line, again. consistency is her brand ✨

πŸ“ NOTES πŸ“

these routines have been retained for improved backward compatibility with legacy architectures. so like β€” they're still here, still invited, still valid, just a little vintage-core 🌈

See also:

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

2003-2026, The Open MPI Community

aaaand that's the whole page, bestie πŸ’œ no cap, you now understand cache invalidation controls better than half the internet. slay responsibly. πŸ¦‹πŸ’…

from the Open MPI crew β€” page dated Sep 10, 2026, filed under SHMEM_CLEAR_CACHE_LINE_INV(3). mwah πŸŽ€
πŸ“¦ where this page comes from