sc::ActiveMsgMemoryGrp(3)

πŸ“¦
version 2.3.1 Β· 5 versions
, in ubuntu jammy

πŸ’– NAME πŸ’–

okay bestie, welcome to the sc::ActiveMsgMemoryGrp(3) page β€” it's literally the manual for the sc::ActiveMsgMemoryGrp abstract class, and it specializes the MsgMemoryGrp class. no cap, it's giving "abstract base class with main character energy" πŸ’….

✨ SYNOPSIS ✨

#include <memamsg.h>

Inherits sc::MsgMemoryGrp.

Inherited by sc::MTMPIMemoryGrp.

🌸 Public Member Functions 🌸

  • ActiveMsgMemoryGrp (const Ref< MessageGrp > &msg) β€” the page gives this signature and no extra blurb, iconic minimalism ✨.
  • ActiveMsgMemoryGrp (const Ref< KeyVal > &) β€” another overload, same vibe: signature only, no extra description.
  • void set_localsize (size_t) β€” Set the size of locally held memory.
  • void * localdata () β€” Returns a pointer to the local data.
  • void * obtain_writeonly (distsize_t offset, int size) β€” This gives write access to the memory location. No locking is done.
  • void * obtain_readwrite (distsize_t offset, int size) β€” Only one thread can have an unreleased obtain_readwrite at a time.
  • void * obtain_readonly (distsize_t offset, int size) β€” This gives read access to the memory location. No locking is done.
  • void release_readonly (void *data, distsize_t offset, int size) β€” This is called when read access is no longer needed.
  • void release_writeonly (void *data, distsize_t offset, int size) β€” This is called when write access is no longer needed.
  • void release_readwrite (void *data, distsize_t offset, int size) β€” This is called when read/write access is no longer needed.
  • void sum_reduction (double *data, distsize_t doffset, int dsize) β€” the page just gives the signature; no extra description. slay πŸ’….
  • void sum_reduction_on_node (double *data, size_t doffset, int dsize, int node=-1) β€” again, signature only. iykyk.
  • void print (std::ostream &o=ExEnv::out0()) const β€” Prints out information about the object.

🧚 Protected Member Functions 🧚

  • virtual void retrieve_data (void *, int node, int offset, int size, int lock)=0 β€” the page gives this signature with =0 and no extra description.
  • virtual void replace_data (void *, int node, int offset, int size, int unlock)=0 β€” same deal: signature with =0, no extra blurb.
  • virtual void sum_data (double *data, int node, int doffset, int dsize)=0 β€” and another signature with =0, no extra description.

🌈 Protected Attributes 🌈

  • char * data_ β€” this is the one protected attribute listed, periodt.

πŸ¦‹ ADDITIONAL INHERITED MEMBERS πŸ¦‹

The original page has this section heading but doesn't list the extra inherited members underneath it. They're inherited, so they're giving family-tree energy 🌳✨.

🌸 DETAILED DESCRIPTION 🌸

The ActiveMsgMemoryGrp abstract class specializes the MsgMemoryGrp class.

It uses active messages to implement global shared memory. that's the whole vibe πŸ’š.

πŸŽ€ MEMBER FUNCTION DOCUMENTATION πŸŽ€

πŸ’… void* sc::ActiveMsgMemoryGrp::obtain_readwrite (distsize_t offset, int size) [virtual]

Only one thread can have an unreleased obtain_readwrite at a time. The actual memory region locked can be larger than that requested. If the memory region is already locked this will block. For this reason, data should be held as read/write for as short a time as possible.

Implements sc::MemoryGrp.

πŸ’… void sc::ActiveMsgMemoryGrp::release_readwrite (void * data, distsize_t offset, int size) [virtual]

This is called when read/write access is no longer needed. The memory will be unlocked.

Implements sc::MemoryGrp.

πŸ’… void sc::ActiveMsgMemoryGrp::set_localsize (size_t) [virtual]

Set the size of locally held memory. When memory is accessed using a global offset counting starts at node 0 and proceeds up to node n() - 1.

Implements sc::MemoryGrp.

πŸ’œ AUTHOR πŸ’œ

Generated automatically by Doxygen for MPQC from the source code.


and that's the whole page, bestie 🫢 it's from MPQC version 2.3.1, dated Sun Oct 4 2020, and it is literally the sc::ActiveMsgMemoryGrp(3) manual page. mwah πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from