SHMEM_UDCFLUSH(3)

πŸ’– NAME πŸ’–

okay so bestie, this whole page is SHMEM_UDCFLUSH(3) from Open MPI β€” yes, that Open MPI, the one you already have installed and are definitely not scared of πŸ’… β€” and it's a little family reunion of cache-control besties:

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. that's the whole vibe. cache stuff. handled. πŸŽ€


✨ 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 lowkey the 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 Fortran, it can be of any kind. no cap, any kind. 🫢

now the actual routines, one by one, no skipping, i promised:

  • shmem_clear_cache_inv β€” disables automatic cache coherency mode that was 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. just that one line. she's not doing the whole cache, she's doing her line. πŸ’…
  • shmem_set_cache_inv β€” enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. the API picks. it's giving delegating queen energy. πŸ‘‘
  • 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 β€” okay so yeah, she's back 😭 and fr fr the original page lists her twice, so here she is twice: disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. some things are just worth saying again, iykyk.
  • shmem_udcflush β€” makes the entire user data cache coherent. the whole thing. all of it. ate. ✨
  • shmem_udcflush_line β€” makes coherent the cache line that corresponds with the address specified by target. just the one line, cute and targeted 🎯

🧚 NOTES 🧚

these routines have been retained for improved backward compatibility with legacy architectures. so like… they're vintage. they're archival. respect the elders 🫢

ngl, "legacy architectures" is the polite way of saying these go way back β€” but they're still here and still documented, so use them with that in mind πŸ’€

πŸ‘€ SEE ALSO


2003-2026, The Open MPI Community


and that's the page bestie!! 🌈 go forth and flush your caches πŸ’– this little doc drop was brought to you by the fine folks at Open MPI πŸ¦‹ and it was last touched May 14, 2026 β€” same date, same SHMEM_UDCFLUSH(3) queen, still iconic. periodt. πŸŽ€β­πŸ“

πŸ“¦ where this page comes from