#include <messshm.h>
Inheritance diagram for sc::ShmMessageGrp:
Public Member Functions | |
ShmMessageGrp () | |
Reads the number of processors from environmental variable NUMPROC. | |
ShmMessageGrp (const Ref< KeyVal > &) | |
The ShmMessageGrp KeyVal constructor takes a single keyword that specifies the number of processors. | |
ShmMessageGrp (int nprocs) | |
Initialize ShmMessageGrp to use nprocs processors. | |
void | sync () |
Synchronize all of the processors. | |
Ref< MessageGrp > | clone (void) |
Returns a copy of this MessageGrp specialization that provides an independent communication context. | |
Protected Member Functions | |
void | basic_send (int target, int type, const void *data, int nbyte) |
Must be implemented by specializations. | |
void | basic_recv (int type, void *data, int nbyte) |
Must be implemented by specializations. | |
int | basic_probe (int type) |
Must be implemented by specializations. | |
void | initialize (int nprocs) |
void | initialize () |
msgbuf_t * | NEXT_MESSAGE (msgbuf_t *m) |
void | get_change (int node) |
void | put_change (int node) |
void | wait_for_write (int node) |
void | release_write (int node) |
void | print_buffer (int node, int me) |
Protected Attributes | |
commbuf_t * | commbuf [MAXPROCS] |
int | shmid |
int | semid |
int | change_semid |
void * | sharedmem |
sembuf | semdec |
sembuf | seminc |
This only provides improved performance if you have multiple CPU's in a symmetric multiprocessor configuration. Nonetheless, it is quite useful on a single CPU for tracking down bugs.
The ShmMessageGrp KeyVal constructor takes a single keyword that specifies the number of processors.
Here is an example of a ParsedKeyVal input that creates a ShmMessageGrp that runs on four processors:
message<ShmMessageGrp>: n = 4
Ref<MessageGrp> sc::ShmMessageGrp::clone | ( | void | ) | [virtual] |
Returns a copy of this MessageGrp specialization that provides an independent communication context.
Implements sc::MessageGrp.