SHMEM_UDCFLUSH_LINE(3)

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

πŸ’… 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, target is 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 by shmem_set_cache_inv or shmem_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 of target only. 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 of target only. Targeted. Precise. Iconic.
  • shmem_clear_cache_inv β€” disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. And yes, this is the same shmem_clear_cache_inv as 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 by target. 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)

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