sc::MPIMessageGrp(3)

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

πŸ’– NAME πŸ’–

sc::MPIMessageGrp is a concrete implementation of MessageGrp that uses the MPI 1 library β€” yes bestie, it's giving parallel-communication main character energy. πŸ’…βœ¨ This is the sc::MPIMessageGrp(3) page, btw.


✨ SYNOPSIS ✨

#include <messmpi.h>

Inherits sc::MessageGrp.

🫢 Public Member Functions

  • MPIMessageGrp (MPI_Comm comm) β€” Use an MPI communicator to create a MessageGrp. The comm argument could be a subset of MPI_COMM_WORLD, for example.
  • MPIMessageGrp (int *argc, char ***argv) β€” Use argc and argv to create a MPIMessageGrp.
  • MPIMessageGrp (const Ref< KeyVal > &) β€” Construction MPIMessageGrp given a KeyVal input object.
  • Ref< MessageGrp > clone (void) β€” Clones (dups) an MPIMessageGrp from MPI_COMM_WORLD. Periodt. πŸ‘‘
  • void raw_send (int target, const void *data, int nbyte)
  • void raw_recv (int sender, void *data, int nbyte)
  • void raw_sendt (int target, int type, const void *data, int nbyte)
  • void raw_recvt (int type, void *data, int nbyte)
  • int probet (int type) β€” Ask if a given typed message has been received. πŸ‘€
  • void sync () β€” Synchronize all of the processors. Group-hug energy fr fr. 🫢
  • void sum (double *, int n, double *scratch=0, int target=-1)
  • void sum (int *, int n, int *scratch=0, int target=-1)
  • void reduce (double *, int n, GrpReduce< double > &, double *scratch=0, int target=-1)
  • void reduce (unsigned int *, int n, GrpReduce< unsigned int > &, unsigned int *scratch=0, int target=-1)
  • void reduce (int *, int n, GrpReduce< int > &, int *scratch=0, int target=-1)
  • void reduce (char *, int n, GrpReduce< char > &, char *scratch=0, int target=-1)
  • void reduce (unsigned char *, int n, GrpReduce< unsigned char > &, unsigned char *scratch=0, int target=-1)
  • void reduce (signed char *, int n, GrpReduce< signed char > &, signed char *scratch=0, int target=-1)
  • void reduce (short *, int n, GrpReduce< short > &, short *scratch=0, int target=-1)
  • void reduce (float *, int n, GrpReduce< float > &, float *scratch=0, int target=-1)
  • void reduce (long *, int n, GrpReduce< long > &, long *scratch=0, int target=-1)
  • void raw_bcast (void *data, int nbyte, int from)

πŸ›‘οΈ Protected Member Functions

  • void init (MPI_Comm comm, int *argc=0, char ***argv=0) β€” Not thread-safe due to race condition on nmpi_grps variable.
⚠️ Thread-safety tea: init(...) is not thread-safe because of a race condition on the nmpi_grps variable. Do not @ me, that's literally what the page says. πŸ’€

πŸŽ€ Protected Attributes

  • void * buf
  • int bufsize
  • int rnode
  • int rtag
  • int rlen
  • bool use_messagegrp_collectives_ β€” If true use the generic collective routines in the base class.
  • Ref< ThreadGrp > threadgrp
  • MPI_Comm commgrp β€” Currently each commgrp is a dup of MPI_COMM_WORLD.

🌸 Static Protected Attributes

  • static int nmpi_grps β€” Number of MPIMessageGrp's currently in use.
  • static Ref< ThreadLock > grplock β€” lock to access nmpi_grps variable

πŸ¦‹ Additional Inherited Members

Yep, there are additional inherited members from sc::MessageGrp β€” the original page puts this heading right here, and we are respecting the vibe check. ✨


🌈 Detailed Description

The MPIMessageGrp class is a concrete implementation of MessageGrp that uses the MPI 1 library. That's the whole plot, bestie. πŸŽ€


🧚 Constructor & Destructor Documentation

sc::MPIMessageGrp::MPIMessageGrp (MPI_Comm comm)

Use an MPI communicator to create a MessageGrp. The comm argument could be a subset of MPI_COMM_WORLD, for example. Slay. πŸ’…

sc::MPIMessageGrp::MPIMessageGrp (int * argc, char *** argv)

Use argc and argv to create a MPIMessageGrp. This would have to be used for implementations of MPI that have MPI_Init fill in argc and argv. No cap. 🌟


πŸ”₯ Member Function Documentation

void sc::MPIMessageGrp::reduce (double *, int n, GrpReduce< double > &, double * scratch = 0, int target = -1) [virtual]

Global generic reduction. Similar members exist for each of the basic types.

Reimplemented from sc::MessageGrp.

void sc::MPIMessageGrp::sum (double * data, int n, double * = 0, int target = -1) [virtual]

Global sum reduction. Similar members exist for each of the basic types.

Reimplemented from sc::MessageGrp.


πŸ‘‘ Author

Generated automatically by Doxygen for MPQC from the source code.


okay bestie, that's the whole page πŸ’– β€” it's from MPQC version 2.3.1, dated Sun Oct 4 2020. slay, you made it to the end. πŸŽ€βœ¨

πŸ“¦ where this page comes from