SHMEM_UDCFLUSH_LINE(3)

πŸ’… SHMEM_UDCFLUSH_LINE(3) β€” Open MPI, bestie edition 🫢

okay so this is the Open MPI page for a whole lil squad of cache-control routines, and yes, the title says SHMEM_UDCFLUSH_LINE(3) but there's like six functions crashing this party. Let's get into it ✨


πŸŽ€ NAME

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

(yes, shmem_clear_cache_line_inv is in the synopsis too, we see you girl πŸ‘€)


🌸 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

ok so first, the one argument that the cache line control routines take β€” bestie, meet target πŸ₯Ί

  • target β€” a data object that is local to the processing element (PE). target can be of any noncharacter type. If you're doing Fortran, it can be of any kind. (kind girl summer πŸ’)

now the routines themselves, one by one, no skipping:

  • shmem_clear_cache_inv β€” disables automatic cache coherency mode that was previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. basically it's the "nvm, turn it back 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. not the whole vibe, just that line βœ‚οΈ
  • shmem_set_cache_inv β€” enables the OpenSHMEM API to automatically decide the best strategy for cache coherency. it's giving "you handle it, i trust you" 🀝
  • shmem_set_cache_line_inv β€” enables automatic cache coherency mode for the cache line associated with the address of target only. same one-line-only energy πŸ’…
  • shmem_clear_cache_inv β€” yeah it's literally right here again in the original: disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. it's listed twice, we're keeping it twice, no cap πŸ’€
  • shmem_udcflush β€” makes the entire user data cache coherent. whole cache. full send 🌊
  • shmem_udcflush_line β€” makes coherent the cache line that corresponds with the address specified by target. one line, squeaky clean 🧼

πŸ¦‹ NOTES

these routines have been retained for improved backward compatibility with legacy architectures. so like yeah, they're here for the old-school girlies πŸ•°οΈπŸ‘‘

SEE ALSO: intro_shmem(3) shmem_put(3) shmem_swap(3)


2003-2026, The Open MPI Community


that's the whole page, you ate that πŸ“πŸ’– β€” signing off from May 14, 2026, source and version: Open MPI's own SHMEM_UDCFLUSH_LINE(3) page. iykyk 🌈⭐

πŸ“¦ where this page comes from