SHMEM_CACHE(3)

okay bestie, this is SHMEM_CACHE(3) from the Open MPI manual β€” the data cache utilities page, and it's lowkey iconic. πŸ’Ύβœ¨

✨ NAME ✨

Controls data cache utilities πŸŽ€ (and yep, shmem_clear_cache_line_inv shows up in the synopsis and description below β€” the page is built like that, don't @ me.)

🌈 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 πŸŽ€

The following argument is passed to the cache line control routines:

  • target β€” a data object that is local to the processing element (PE). target can be of any noncharacter type. If you're using Fortran, it can be of any kind. 🎯

Now for the main character functions:

  • shmem_clear_cache_inv β€” disables automatic cache coherency mode that was previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv.
  • shmem_clear_cache_line_inv β€” disables automatic cache coherency mode for the cache line associated with the address of target only.
  • shmem_set_cache_inv β€” enables the OpenSHMEM API to automatically decide the best strategy for cache coherency.
  • shmem_set_cache_line_inv β€” enables automatic cache coherency mode for the cache line associated with the address of target only.
  • shmem_clear_cache_inv β€” yes, again: disables automatic cache coherency mode previously enabled by shmem_set_cache_inv or shmem_set_cache_line_inv. (The original really does list this twice, and we respect the repetition. πŸ’…)
  • shmem_udcflush β€” makes the entire user data cache coherent.
  • shmem_udcflush_line β€” makes coherent the cache line that corresponds with the address specified by target.

🧚 NOTES 🧚

These routines have been retained for improved backward compatability with legacy architectures. πŸ§“βœ¨

πŸ”₯ SEE ALSO πŸ”₯


signed off from the gitclone source, version Unreleased developer copy β€” no date in this footer, bestie, but the vibes are immaculate πŸ«ΆπŸ’–

πŸ“¦ where this page comes from
  • arch rolling: nvhpc-comm-libs 26.9-1 Β· LicenseRef-NVIDIA-HPC-SDK
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms