SHMEM_UDCFLUSH_LINE(3)
π NAME π
Ok so bestie, gather round, because this page is a whole lil family of cache-control girlies. It's 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 together they Control data cache utilities. That's the vibe. That's the whole job. β¨
This page lives in the Open MPI manual, section 3. Slay.
π¦ 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 here's the one argument that the cache line control routines get handed, and she's important:
targetβ a data object that is local to the processing element (PE). And ngl,targetis flexible: she can be of any noncharacter type. If you're doing Fortran, she can be of any kind. Periodt. π
Now the actual routines, one by one, no skips:
shmem_clear_cache_invβ disables automatic cache coherency mode that was previously enabled byshmem_set_cache_invorshmem_set_cache_line_inv. Turning it off energy.shmem_clear_cache_line_invβ disables automatic cache coherency mode for the cache line associated with the address oftargetonly. Just that one line, bestie. Not the whole world.shmem_set_cache_invβ enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. She's the main character who delegates. πshmem_set_cache_line_invβ enables automatic cache coherency mode for the cache line associated with the address oftargetonly. Targeted. Precise. Iconic.shmem_clear_cache_invβ disables automatic cache coherency mode previously enabled byshmem_set_cache_invorshmem_set_cache_line_inv. And yes, this is the sameshmem_clear_cache_invas above β the page lowkey says it twice. Not me editing that out, fr fr, it stays. π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 contained.
π NOTES π
These routines have been retained for improved backward compatibility with legacy architectures. So like β they're the vintage collection, kept around on purpose, respect the elders. π«Ά
π See also:
intro_shmem(3)shmem_put(3)shmem_swap(3)
π Copyright π
2003-2026, The Open MPI Community
Okay bestie that's the whole page, we made it, and honestly? Ate. πβ This one came from Open MPI and it's dated Sep 10, 2026 β so if you're reading this from the future, hi, love you, go flush your cache line. πππ¦
π¦ 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