SimGrid
3.18
Versatile Simulation of Distributed Systems
|
#include <algorithm>
#include <boost/range/algorithm.hpp>
#include "src/kernel/activity/CommImpl.hpp"
#include <xbt/ex.hpp>
#include "simgrid/s4u/Host.hpp"
#include "mc/mc.h"
#include "simgrid/s4u/Activity.hpp"
#include "simgrid/s4u/Mailbox.hpp"
#include "src/mc/mc_replay.hpp"
#include "src/simix/smx_private.hpp"
#include "src/surf/cpu_interface.hpp"
#include "src/surf/surf_interface.hpp"
#include "src/surf/network_interface.hpp"
Functions | |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY (simix_network, simix, "SIMIX network-related synchronization") | |
static void | SIMIX_waitany_remove_simcall_from_actions (smx_simcall_t simcall) |
static void | SIMIX_comm_copy_data (smx_activity_t synchro) |
Copy the communication data from the sender's buffer to the receiver's one. More... | |
static void | SIMIX_comm_start (simgrid::kernel::activity::CommImplPtr comm) |
Starts the simulation of a communication synchro. More... | |
static simgrid::kernel::activity::CommImplPtr | _find_matching_comm (boost::circular_buffer_space_optimized< smx_activity_t > *deque, e_smx_comm_type_t type, int(*match_fun)(void *, void *, simgrid::kernel::activity::CommImpl *), void *this_user_data, simgrid::kernel::activity::CommImplPtr my_synchro, bool remove_matching) |
Checks if there is a communication activity queued in a deque matching our needs. More... | |
void | simcall_HANDLER_comm_send (smx_simcall_t simcall, smx_actor_t src, smx_mailbox_t mbox, double task_size, double rate, void *src_buff, size_t src_buff_size, int(*match_fun)(void *, void *, simgrid::kernel::activity::CommImpl *), void(*copy_data_fun)(smx_activity_t, void *, size_t), void *data, double timeout) |
smx_activity_t | simcall_HANDLER_comm_isend (smx_simcall_t, smx_actor_t src_proc, smx_mailbox_t mbox, double task_size, double rate, void *src_buff, size_t src_buff_size, int(*match_fun)(void *, void *, simgrid::kernel::activity::CommImpl *), void(*clean_fun)(void *), void(*copy_data_fun)(smx_activity_t, void *, size_t), void *data, int detached) |
void | simcall_HANDLER_comm_recv (smx_simcall_t simcall, smx_actor_t receiver, smx_mailbox_t mbox, void *dst_buff, size_t *dst_buff_size, int(*match_fun)(void *, void *, simgrid::kernel::activity::CommImpl *), void(*copy_data_fun)(smx_activity_t, void *, size_t), void *data, double timeout, double rate) |
smx_activity_t | simcall_HANDLER_comm_irecv (smx_simcall_t, smx_actor_t receiver, smx_mailbox_t mbox, void *dst_buff, size_t *dst_buff_size, simix_match_func_t match_fun, void(*copy_data_fun)(smx_activity_t, void *, size_t), void *data, double rate) |
smx_activity_t | SIMIX_comm_irecv (smx_actor_t dst_proc, smx_mailbox_t mbox, void *dst_buff, size_t *dst_buff_size, int(*match_fun)(void *, void *, simgrid::kernel::activity::CommImpl *), void(*copy_data_fun)(smx_activity_t, void *, size_t), void *data, double rate) |
smx_activity_t | simcall_HANDLER_comm_iprobe (smx_simcall_t simcall, smx_mailbox_t mbox, int type, simix_match_func_t match_fun, void *data) |
smx_activity_t | SIMIX_comm_iprobe (smx_actor_t dst_proc, smx_mailbox_t mbox, int type, simix_match_func_t match_fun, void *data) |
void | simcall_HANDLER_comm_wait (smx_simcall_t simcall, smx_activity_t synchro, double timeout) |
void | simcall_HANDLER_comm_test (smx_simcall_t simcall, smx_activity_t synchro) |
void | simcall_HANDLER_comm_testany (smx_simcall_t simcall, simgrid::kernel::activity::ActivityImplPtr comms[], size_t count) |
void | simcall_HANDLER_comm_waitany (smx_simcall_t simcall, xbt_dynar_t synchros, double timeout) |
void | SIMIX_comm_finish (smx_activity_t synchro) |
Answers the SIMIX simcalls associated to a communication synchro. More... | |
void | SIMIX_comm_set_copy_data_callback (void(*callback)(smx_activity_t, void *, size_t)) |
void | SIMIX_comm_copy_pointer_callback (smx_activity_t synchro, void *buff, size_t buff_size) |
void | SIMIX_comm_copy_buffer_callback (smx_activity_t synchro, void *buff, size_t buff_size) |
Variables | |
static void(* | SIMIX_comm_copy_data_callback )(smx_activity_t, void *, size_t) = &SIMIX_comm_copy_pointer_callback |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY | ( | simix_network | , |
simix | , | ||
"SIMIX network-related synchronization" | |||
) |
|
static |
|
static |
Copy the communication data from the sender's buffer to the receiver's one.
synchro | The communication |
|
inlinestatic |
Starts the simulation of a communication synchro.
comm | the communication that will be started |
|
static |
Checks if there is a communication activity queued in a deque matching our needs.
deque | where to search into |
type | The type of communication we are looking for (comm_send, comm_recv) |
match_fun | the function to apply |
this_user_data | additional parameter to the match_fun |
my_synchro | what to compare against |
remove_matching | whether or not to clean the found object from the queue |
void simcall_HANDLER_comm_send | ( | smx_simcall_t | simcall, |
smx_actor_t | src, | ||
smx_mailbox_t | mbox, | ||
double | task_size, | ||
double | rate, | ||
void * | src_buff, | ||
size_t | src_buff_size, | ||
int(*)(void *, void *, simgrid::kernel::activity::CommImpl *) | match_fun, | ||
void(*)(smx_activity_t, void *, size_t) | copy_data_fun, | ||
void * | data, | ||
double | timeout | ||
) |
smx_activity_t simcall_HANDLER_comm_isend | ( | smx_simcall_t | , |
smx_actor_t | src_proc, | ||
smx_mailbox_t | mbox, | ||
double | task_size, | ||
double | rate, | ||
void * | src_buff, | ||
size_t | src_buff_size, | ||
int(*)(void *, void *, simgrid::kernel::activity::CommImpl *) | match_fun, | ||
void(*)(void *) | clean_fun, | ||
void(*)(smx_activity_t, void *, size_t) | copy_data_fun, | ||
void * | data, | ||
int | detached | ||
) |
void simcall_HANDLER_comm_recv | ( | smx_simcall_t | simcall, |
smx_actor_t | receiver, | ||
smx_mailbox_t | mbox, | ||
void * | dst_buff, | ||
size_t * | dst_buff_size, | ||
int(*)(void *, void *, simgrid::kernel::activity::CommImpl *) | match_fun, | ||
void(*)(smx_activity_t, void *, size_t) | copy_data_fun, | ||
void * | data, | ||
double | timeout, | ||
double | rate | ||
) |
smx_activity_t simcall_HANDLER_comm_irecv | ( | smx_simcall_t | , |
smx_actor_t | receiver, | ||
smx_mailbox_t | mbox, | ||
void * | dst_buff, | ||
size_t * | dst_buff_size, | ||
simix_match_func_t | match_fun, | ||
void(*)(smx_activity_t, void *, size_t) | copy_data_fun, | ||
void * | data, | ||
double | rate | ||
) |
smx_activity_t SIMIX_comm_irecv | ( | smx_actor_t | dst_proc, |
smx_mailbox_t | mbox, | ||
void * | dst_buff, | ||
size_t * | dst_buff_size, | ||
int(*)(void *, void *, simgrid::kernel::activity::CommImpl *) | match_fun, | ||
void(*)(smx_activity_t, void *, size_t) | copy_data_fun, | ||
void * | data, | ||
double | rate | ||
) |
smx_activity_t simcall_HANDLER_comm_iprobe | ( | smx_simcall_t | simcall, |
smx_mailbox_t | mbox, | ||
int | type, | ||
simix_match_func_t | match_fun, | ||
void * | data | ||
) |
smx_activity_t SIMIX_comm_iprobe | ( | smx_actor_t | dst_proc, |
smx_mailbox_t | mbox, | ||
int | type, | ||
simix_match_func_t | match_fun, | ||
void * | data | ||
) |
void simcall_HANDLER_comm_wait | ( | smx_simcall_t | simcall, |
smx_activity_t | synchro, | ||
double | timeout | ||
) |
void simcall_HANDLER_comm_test | ( | smx_simcall_t | simcall, |
smx_activity_t | synchro | ||
) |
void simcall_HANDLER_comm_testany | ( | smx_simcall_t | simcall, |
simgrid::kernel::activity::ActivityImplPtr | comms[], | ||
size_t | count | ||
) |
void simcall_HANDLER_comm_waitany | ( | smx_simcall_t | simcall, |
xbt_dynar_t | synchros, | ||
double | timeout | ||
) |
void SIMIX_comm_finish | ( | smx_activity_t | synchro | ) |
Answers the SIMIX simcalls associated to a communication synchro.
synchro | a finished communication synchro |
void SIMIX_comm_set_copy_data_callback | ( | void(*)(smx_activity_t, void *, size_t) | callback | ) |
void SIMIX_comm_copy_pointer_callback | ( | smx_activity_t | synchro, |
void * | buff, | ||
size_t | buff_size | ||
) |
void SIMIX_comm_copy_buffer_callback | ( | smx_activity_t | synchro, |
void * | buff, | ||
size_t | buff_size | ||
) |
|
static |