![]() |
The ROme OpTimistic Simulator
2.0.0
A General-Purpose Multithreaded Parallel/Distributed Simulation Platform
|
Message delivery support. More...
#include <mpi.h>
#include <datatypes/list.h>
#include <mm/mm.h>
#include <ROOT-Sim.h>
#include <arch/atomic.h>
Go to the source code of this file.
Data Structures | |
struct | _outgoing_msg |
The structure representing a node in the outgoing_queue list. More... | |
struct | _outgoing_queue |
An outgoing queue, to keep track of pending MPI-based message delivery. More... | |
Typedefs | |
typedef struct _outgoing_msg | outgoing_msg |
The structure representing a node in the outgoing_queue list. | |
typedef struct _outgoing_queue | outgoing_queue |
An outgoing queue, to keep track of pending MPI-based message delivery. | |
Functions | |
void | outgoing_window_init (void) |
Outgoing queue initialization. More... | |
void | outgoing_window_finalize (void) |
Finalize the message delivery subsystem. More... | |
void | store_outgoing_msg (outgoing_msg *out_msg, unsigned int dest_kid) |
Store an outgoing message. More... | |
int | prune_outgoing_queues (void) |
Prune all outgoing queues. More... | |
outgoing_msg * | allocate_outgoing_msg (void) |
Allocate a buffer for an outgoing message node. More... | |
Message delivery support.
Message delivery support
This file is part of ROOT-Sim (ROme OpTimistic Simulator).
ROOT-Sim is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; only version 3 of the License applies.
ROOT-Sim is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with ROOT-Sim; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Definition in file wnd.h.
outgoing_msg* allocate_outgoing_msg | ( | void | ) |
Allocate a buffer for an outgoing message node.
This function allocates a buffer to keep track of one message which is being remotely sent through MPI
Definition at line 130 of file wnd.c.
void outgoing_window_finalize | ( | void | ) |
void outgoing_window_init | ( | void | ) |
int prune_outgoing_queues | ( | void | ) |
Prune all outgoing queues.
This function scans through all the local outgoing queues, looking for messages which have been correctly delivered to the destination.
Such message nodes are removed from the queue.
Actual queue pruning is performed in prune_outgoing_queue()
Definition at line 225 of file wnd.c.
void store_outgoing_msg | ( | outgoing_msg * | out_msg, |
unsigned int | dest_kid | ||
) |
Store an outgoing message.
Given an outgoing_msg node and a destination kernel id, this function properly links the node in out_msg
to the proper outgoing queue associated with the destination kernel.
out_msg | A pointer to an outgoing_msg node |
dest_kid | The global ID of the simulation kernel instance for which this node represents an outgoing message |
Definition at line 167 of file wnd.c.