SHMEM_SET_CACHE_INV(3)

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

πŸ’– SHMEM_SET_CACHE_INV(3) β€” the Open MPI era, bestie πŸ’–

okay so sit down, hydrate, because we're talking about a whole little family of cache-control girlies from Open MPI. This is the <rainbow>SHMEM_SET_CACHE_INV(3)</rainbow> page, and she brought friends:

  • shmem_clear_cache_inv(3)
  • shmem_set_cache_inv(3)
  • shmem_set_cache_line_inv(3)
  • shmem_udcflush(3)
  • shmem_udcflush_line(3)

...and they're all about Controls data cache utilities. that's the whole vibe. data. cache. utilities. πŸ’…


✨ 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)

like, look at them all lined up. iconic. no cap. 😌


🌸 DESCRIPTION 🌸

so the cache line control routines take this one argument, and she's 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 🫢

now let's meet everybody one by one, bestie:

  • shmem_clear_cache_inv β€” disables automatic cache coherency mode that was previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. it's the "we're done here, turn it off" button πŸŽ€
  • 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 specific. πŸ’…
  • shmem_set_cache_inv β€” enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. basically she hands the aux cord to the API and trusts her judgment. lowkey powerful. πŸ”₯
  • shmem_set_cache_line_inv β€” enables automatic cache coherency mode for the cache line associated with the address of target only. again: just that line. no overstepping. ✨
  • shmem_clear_cache_inv β€” disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. yes she said it twice, and yes I'm telling you twice, because the manpage said it twice and I do not skip details around here. periodt. πŸ’€
  • 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, matching the address. cute, targeted, effective. 🎯

πŸ“ NOTES πŸ“

listen, these routines have been retained for improved backward compatibility with legacy architectures. so they're the vintage pieces you keep because they still eat. πŸ‘‘

See also:


2003-2026, The Open MPI Community


okay so that's the whole page, bestie β€” every flag-shaped thing, every function, every note, all present and accounted for, nothing dropped, nothing invented. πŸ«ΆπŸ’–

and because I promised a cute sign-off: this little masterpiece is courtesy of Open MPI, and the date on her birth certificate reads Sep 10, 2026 β€” so go make your data cache coherent and slay the day, mwah πŸ’…βœ¨πŸŒˆ

πŸ“¦ where this page comes from