SST/macro
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
sstmac::mpi::mpi_runtime Class Reference

#include <mpi_runtime.h>

Inheritance diagram for sstmac::mpi::mpi_runtime:
Inheritance graph
Collaboration diagram for sstmac::mpi::mpi_runtime:
Collaboration graph

Classes

struct  merge_request
 

Public Member Functions

std::string to_string () const
 
void bcast (void *buffer, int bytes, int root)
 
virtual void init_factory_params (sprockit::sim_parameters *params)
 
int64_t allreduce_min (int64_t mintime)
 
int64_t allreduce_max (int64_t maxtime)
 
void global_sum (long long *data, int nelems, int root)
 
void global_sum (long *data, int nelems, int root)
 
void global_max (long *data, int nelems, int root)
 
void global_max (int *data, int nelems, int root)
 
void send (int dst, void *buffer, int buffer_size)
 
void recv (int src, void *buffer, int buffer_size)
 
void gather (void *send_buffer, int num_bytes, void *recv_buffer, int root)
 
void allgather (void *send_buffer, int num_bytes, void *recv_buffer)
 
void wait_merge_array (int tag)
 
void declare_merge_array (void *buffer, int size, int tag)
 
bool release_merge_array (int tag)
 
void init_runtime_params (sprockit::sim_parameters *params)
 
- Public Member Functions inherited from sstmac::parallel_runtime
virtual ~parallel_runtime ()
 
int global_max (int my_elem)
 
long global_max (long my_elem)
 
void bcast_string (std::string &str, int root)
 
std::istream * bcast_file_stream (const std::string &fname)
 
virtual void init_partition_params (sprockit::sim_parameters *params)
 
virtual void send_recv_messages (std::vector< void * > &incoming)
 
virtual void send_event (int thread_id, timestamp t, topology_id tid, event_loc_id src, uint32_t seqnum, event *ev)
 
int me () const
 
int nproc () const
 
int nthread () const
 
int ser_buf_size () const
 
partitiontopology_partition () const
 
void free_recv_buffers (const std::vector< void * > &buffers)
 
- Public Member Functions inherited from sprockit::factory_type
virtual void init_factory_params (sim_parameters *params)
 
- Public Member Functions inherited from sstmac::lockable
void lock ()
 
void unlock ()
 

Protected Types

typedef std::map< int, merge_requestmerge_map
 
- Protected Types inherited from sstmac::parallel_runtime
typedef std::pair< int, void * > send_buf_t
 

Protected Member Functions

void do_send_recv_messages (std::vector< void * > &buffers)
 
void do_send_message (int lp, void *buffer, int size)
 
void do_reduce (void *data, int nelems, MPI_Datatype ty, MPI_Op op, int root)
 
virtual void finalize_init ()
 
void do_merge_array (int tag)
 
void do_collective_merges (int my_tag)
 
void reallocate_requests ()
 
void finalize ()
 
- Protected Member Functions inherited from sstmac::parallel_runtime
 parallel_runtime ()
 

Protected Attributes

MPI_Request * requests_
 
merge_map merge_requests_
 
int max_num_requests_
 
int * num_sent_
 
int * array_of_ones_
 
int total_num_sent_
 
int epoch_
 
- Protected Attributes inherited from sstmac::parallel_runtime
int nproc_
 
int nthread_
 
int me_
 
std::vector< message_buffer_cachesend_buffer_pools_
 
message_buffer_cache recv_buffer_pool_
 
std::vector< std::vector< void * > > send_buffers_
 
int buf_size_
 
partitionpart_
 

Private Attributes

bool finalize_needed_
 

Additional Inherited Members

- Static Public Attributes inherited from sstmac::parallel_runtime
static const int global_root
 

Detailed Description

Definition at line 21 of file mpi_runtime.h.

Member Typedef Documentation

typedef std::map<int, merge_request> sstmac::mpi::mpi_runtime::merge_map
protected

Definition at line 112 of file mpi_runtime.h.

Member Function Documentation

void sstmac::mpi::mpi_runtime::allgather ( void *  send_buffer,
int  num_bytes,
void *  recv_buffer 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

int64_t sstmac::mpi::mpi_runtime::allreduce_max ( int64_t  maxtime)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

int64_t sstmac::mpi::mpi_runtime::allreduce_min ( int64_t  mintime)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::bcast ( void *  buffer,
int  bytes,
int  root 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::declare_merge_array ( void *  buffer,
int  size,
int  tag 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::do_collective_merges ( int  my_tag)
protected

Referenced by to_string().

void sstmac::mpi::mpi_runtime::do_merge_array ( int  tag)
protected

Referenced by to_string().

void sstmac::mpi::mpi_runtime::do_reduce ( void *  data,
int  nelems,
MPI_Datatype  ty,
MPI_Op  op,
int  root 
)
protected

Referenced by to_string().

void sstmac::mpi::mpi_runtime::do_send_message ( int  lp,
void *  buffer,
int  size 
)
protectedvirtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::do_send_recv_messages ( std::vector< void * > &  buffers)
protectedvirtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::finalize ( )
protectedvirtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

virtual void sstmac::mpi::mpi_runtime::finalize_init ( )
protectedvirtual

Reimplemented from sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::gather ( void *  send_buffer,
int  num_bytes,
void *  recv_buffer,
int  root 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::global_max ( long *  data,
int  nelems,
int  root 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::global_max ( int *  data,
int  nelems,
int  root 
)
virtual
void sstmac::mpi::mpi_runtime::global_sum ( long long *  data,
int  nelems,
int  root 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::global_sum ( long *  data,
int  nelems,
int  root 
)
virtual
virtual void sstmac::mpi::mpi_runtime::init_factory_params ( sprockit::sim_parameters *  params)
virtual

Reimplemented from sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::init_runtime_params ( sprockit::sim_parameters *  params)
virtual

Reimplemented from sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::reallocate_requests ( )
protected

Referenced by to_string().

void sstmac::mpi::mpi_runtime::recv ( int  src,
void *  buffer,
int  buffer_size 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

bool sstmac::mpi::mpi_runtime::release_merge_array ( int  tag)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

void sstmac::mpi::mpi_runtime::send ( int  dst,
void *  buffer,
int  buffer_size 
)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

std::string sstmac::mpi::mpi_runtime::to_string ( ) const
inline
void sstmac::mpi::mpi_runtime::wait_merge_array ( int  tag)
virtual

Implements sstmac::parallel_runtime.

Referenced by to_string().

Member Data Documentation

int* sstmac::mpi::mpi_runtime::array_of_ones_
protected

Definition at line 117 of file mpi_runtime.h.

int sstmac::mpi::mpi_runtime::epoch_
protected

Definition at line 119 of file mpi_runtime.h.

bool sstmac::mpi::mpi_runtime::finalize_needed_
private

Definition at line 122 of file mpi_runtime.h.

int sstmac::mpi::mpi_runtime::max_num_requests_
protected

Definition at line 115 of file mpi_runtime.h.

merge_map sstmac::mpi::mpi_runtime::merge_requests_
protected

Definition at line 113 of file mpi_runtime.h.

int* sstmac::mpi::mpi_runtime::num_sent_
protected

Definition at line 116 of file mpi_runtime.h.

MPI_Request* sstmac::mpi::mpi_runtime::requests_
protected

Definition at line 104 of file mpi_runtime.h.

int sstmac::mpi::mpi_runtime::total_num_sent_
protected

Definition at line 118 of file mpi_runtime.h.


The documentation for this class was generated from the following file: