SimGrid  3.18
Versatile Simulation of Distributed Systems
libsmx.cpp File Reference
#include <cmath>
#include <functional>
#include "mc/mc.h"
#include "simgrid/s4u/VirtualMachine.hpp"
#include "simgrid/simix.hpp"
#include "simgrid/simix/blocking_simcall.hpp"
#include "smx_private.hpp"
#include "src/kernel/activity/CommImpl.hpp"
#include "src/mc/mc_forward.hpp"
#include "src/mc/mc_replay.hpp"
#include "src/plugins/vm/VirtualMachineImpl.hpp"
#include "src/simix/smx_host_private.hpp"
#include "xbt/ex.h"
#include "xbt/functional.hpp"
#include "popping_bodies.cpp"

Namespaces

 simgrid
 Alltoall Bruck.
 
 simgrid::simix
 

Functions

 XBT_LOG_EXTERNAL_DEFAULT_CATEGORY (simix)
 
void simcall_call (smx_actor_t actor)
 
smx_activity_t simcall_execution_start (const char *name, double flops_amount, double priority, double bound, simgrid::s4u::Host *host)
 Creates a synchro that executes some computation of an host. More...
 
smx_activity_t simcall_execution_parallel_start (const char *name, int host_nb, sg_host_t *host_list, double *flops_amount, double *bytes_amount, double rate, double timeout)
 Creates a synchro that may involve parallel computation on several hosts and communication between them. More...
 
void simcall_execution_cancel (smx_activity_t execution)
 Cancels an execution synchro. More...
 
void simcall_execution_set_priority (smx_activity_t execution, double priority)
 Changes the priority of an execution synchro. More...
 
void simcall_execution_set_bound (smx_activity_t execution, double bound)
 Changes the capping (the maximum CPU utilization) of an execution synchro. More...
 
e_smx_state_t simcall_execution_wait (smx_activity_t execution)
 Waits for the completion of an execution synchro and destroy it. More...
 
e_smx_state_t simcall_execution_test (smx_activity_t execution)
 
void simcall_process_killall (int reset_pid)
 Kills all SIMIX processes. More...
 
void simcall_process_cleanup (smx_actor_t process)
 Cleans up a SIMIX process. More...
 
void simcall_process_join (smx_actor_t process, double timeout)
 
void simcall_process_suspend (smx_actor_t process)
 Suspends a process. More...
 
int simcall_process_count ()
 Returns the amount of SIMIX processes in the system. More...
 
void simcall_process_set_data (smx_actor_t process, void *data)
 Set the user data of a smx_actor_t. More...
 
void simcall_process_set_kill_time (smx_actor_t process, double kill_time)
 Set the kill time of a process. More...
 
void simcall_process_on_exit (smx_actor_t process, int_f_pvoid_pvoid_t fun, void *data)
 Add an on_exit function Add an on_exit function which will be executed when the process exits/is killed. More...
 
e_smx_state_t simcall_process_sleep (double duration)
 Creates a new sleep SIMIX synchro. More...
 
void simcall_comm_send (smx_actor_t sender, 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_comm_isend (smx_actor_t sender, 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_comm_recv (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_comm_irecv (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 rate)
 
smx_activity_t simcall_comm_iprobe (smx_mailbox_t mbox, int type, int(*match_fun)(void *, void *, simgrid::kernel::activity::CommImpl *), void *data)
 
void simcall_comm_cancel (smx_activity_t synchro)
 
unsigned int simcall_comm_waitany (xbt_dynar_t comms, double timeout)
 
int simcall_comm_testany (smx_activity_t *comms, size_t count)
 
void simcall_comm_wait (smx_activity_t comm, double timeout)
 
void simcall_set_category (smx_activity_t synchro, const char *category)
 Set the category of an synchro. More...
 
int simcall_comm_test (smx_activity_t comm)
 
smx_mutex_t simcall_mutex_init ()
 
void simcall_mutex_lock (smx_mutex_t mutex)
 
int simcall_mutex_trylock (smx_mutex_t mutex)
 
void simcall_mutex_unlock (smx_mutex_t mutex)
 
smx_cond_t simcall_cond_init ()
 
void simcall_cond_signal (smx_cond_t cond)
 
void simcall_cond_wait (smx_cond_t cond, smx_mutex_t mutex)
 
void simcall_cond_wait_timeout (smx_cond_t cond, smx_mutex_t mutex, double timeout)
 
void simcall_cond_broadcast (smx_cond_t cond)
 
void simcall_sem_acquire (smx_sem_t sem)
 
void simcall_sem_acquire_timeout (smx_sem_t sem, double timeout)
 
sg_size_t simcall_storage_read (surf_storage_t st, sg_size_t size)
 
sg_size_t simcall_storage_write (surf_storage_t st, sg_size_t size)
 
void simcall_run_kernel (std::function< void()> const &code)
 
void simcall_run_blocking (std::function< void()> const &code)
 Execute some code in the kernel and block. More...
 
int simcall_mc_random (int min, int max)
 
const char * SIMIX_simcall_name (e_smx_simcall_t kind)
 returns a printable string representing a simcall More...
 
void simgrid::simix::unblock (smx_actor_t process)
 

Function Documentation

◆ XBT_LOG_EXTERNAL_DEFAULT_CATEGORY()

XBT_LOG_EXTERNAL_DEFAULT_CATEGORY ( simix  )

◆ simcall_call()

void simcall_call ( smx_actor_t  actor)

◆ simcall_execution_test()

e_smx_state_t simcall_execution_test ( smx_activity_t  execution)

◆ simcall_process_join()

void simcall_process_join ( smx_actor_t  process,
double  timeout 
)

◆ simcall_set_category()

void simcall_set_category ( smx_activity_t  synchro,
const char *  category 
)

Set the category of an synchro.

This functions changes the category only. It calls a surf function.

Parameters
synchroThe execution synchro
categoryThe tracing category

◆ simcall_storage_read()

sg_size_t simcall_storage_read ( surf_storage_t  st,
sg_size_t  size 
)

◆ simcall_storage_write()

sg_size_t simcall_storage_write ( surf_storage_t  st,
sg_size_t  size 
)

◆ simcall_run_kernel()

void simcall_run_kernel ( std::function< void()> const &  code)

◆ simcall_run_blocking()

void simcall_run_blocking ( std::function< void()> const &  code)

Execute some code in the kernel and block.

run_blocking() is a generic blocking simcall. It is given a callback which is executed immediately in the SimGrid kernel. The callback is responsible for setting the suitable logic for waking up the process when needed.

simix::kernelSync() is a higher level wrapper for this.

◆ simcall_mc_random()

int simcall_mc_random ( int  min,
int  max 
)

◆ SIMIX_simcall_name()

const char* SIMIX_simcall_name ( e_smx_simcall_t  kind)

returns a printable string representing a simcall