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).targetcan 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 byshmem_set_cache_invorshmem_set_cache_line_inv.shmem_clear_cache_line_invβ disables automatic cache coherency mode for the cache line associated with the address oftargetonly. 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 oftargetonly.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 byshmem_set_cache_invorshmem_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 bytarget. 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
intro_shmem(3)shmem_put(3)shmem_swap(3)
π COPYRIGHT π
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
- arch rolling: nvhpc-comm-libs 26.9-1 Β· LicenseRef-NVIDIA-HPC-SDK
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms