SHMEM_UDCFLUSH(3)
β¨ SHMEM_UDCFLUSH(3) β¨ β or like, the whole cache-coherency control squad π
okay bestie so this is a page straight out of the Open MPI manual, section 3 (library functions, the good stuff). it's not just one function, it's a whole little group chat of them, and they're all about controlling your data cache utilities. no cap. π
πΈ NAME πΈ
shmem_clear_cache_inv, shmem_set_cache_inv, shmem_set_cache_line_inv, shmem_udcflush, shmem_udcflush_line β Controls data cache utilities π¦
π§ SYNOPSIS π§
bestie here's the C or C++ situation:
#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)
and for the Fortran girlies:
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 π
first up, there's exactly one argument that gets passed to the cache line control routines, and it's this:
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. slay.
okay now the functions one by one, no skipping, we don't do skipping here:
shmem_clear_cache_inv β disables automatic cache coherency mode that was previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. turning it off, respectfully. π«Ά
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. hyper-specific, we love her. π
shmem_set_cache_inv β enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. she's taking the wheel, trust her.
shmem_set_cache_line_inv β enables automatic cache coherency mode for the cache line associated with the address of target only. again: one line. one line only. periodt.
shmem_clear_cache_inv β disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv.
not me explaining shmem_clear_cache_inv twice π bestie the original page says it twice so i'm saying it twice, i don't make the rules, i just serve them.
shmem_udcflush β makes the entire user data cache coherent. the whole thing. all of it. π₯
shmem_udcflush_line β makes coherent the cache line that corresponds with the address specified by target. just the one line, bestie, as advertised. π
π NOTES π
these routines have been retained for improved backward compatibility with legacy architectures. so like, they're iconic elders, they're still showing up, they're still doing the job. π
See also:
intro_shmem(3)shmem_put(3)shmem_swap(3)
π Copyright π
2003-2026, The Open MPI Community
and that's the whole page babes π you now know every single one of these six functions, their exact signatures, their Fortran spellings, their headers (mpp/shmem.h, mpp/shmem.fh), what target can and can't be, and every last see-also. certified shmem girlie status achieved.
this has been SHMEM_UDCFLUSH(3) from the Open MPI manual, dated Sep 10, 2026. go make your cache coherent, bestie πβ¨π¦
π¦ where this page comes from
- ubuntu stonking: openmpi-doc 5.0.10-6 Β· other
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms