X-Git-Url: http://bilbo.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/bf2eac918e4a2b27667268c0f4355f0797fd5af4..9a94db9ebea7a49f58308560099411d4ab59b183:/docs/source/app_s4u.rst diff --git a/docs/source/app_s4u.rst b/docs/source/app_s4u.rst index f66286ea01..0d96ba5291 100644 --- a/docs/source/app_s4u.rst +++ b/docs/source/app_s4u.rst @@ -169,10 +169,6 @@ use :cpp:func:`s4u::Activity::wait_for() `. Finally, to wait at most until a specified time limit, use :cpp:func:`s4u::Activity::wait_until() `. -.. todo:: - - wait_for and wait_until are currently not implemented for Exec and Io activities. - Every kind of activity can be asynchronous: - :ref:`s4u::CommPtr ` are created with @@ -449,7 +445,7 @@ Creating actors .. group-tab:: C .. autodoxymethod:: sg_actor_init(const char *name, sg_host_t host) - .. autodoxymethod:: sg_actor_start(sg_actor_t actor, xbt_main_func_t code, int argc, char **argv) + .. autodoxymethod:: sg_actor_start(sg_actor_t actor, xbt_main_func_t code, int argc, const char *const *argv) .. autodoxymethod:: sg_actor_attach(const char *name, void *data, sg_host_t host, xbt_dict_t properties) .. autodoxymethod:: sg_actor_detach() @@ -571,6 +567,7 @@ Specifying when actors should terminate .. autodoxymethod:: sg_actor_restart(sg_actor_t actor) .. autodoxymethod:: sg_actor_daemonize(sg_actor_t actor) + .. autodoxymethod:: sg_actor_is_daemon .. _API_s4u_Actor_end: @@ -604,6 +601,10 @@ Signals .. autodoxyvar:: simgrid::s4u::Actor::on_creation .. autodoxyvar:: simgrid::s4u::Actor::on_suspend + .. cpp:var:: xbt::signal Actor::on_host_change + + Signal fired when an actor is migrated from one host to another. + .. autodoxyvar:: simgrid::s4u::Actor::on_resume .. autodoxyvar:: simgrid::s4u::Actor::on_sleep .. autodoxyvar:: simgrid::s4u::Actor::on_wake_up @@ -709,12 +710,12 @@ the execution, or start an asynchronous activity. .. group-tab:: C++ .. autodoxymethod:: simgrid::s4u::this_actor::exec_async(double flops_amounts) - .. autodoxymethod:: simgrid::s4u::this_actor::exec_init(const std::vector< s4u::Host * > &hosts, const std::vector< double > &flops_amounts, const std::vector< double > &bytes_amounts) + .. autodoxymethod:: simgrid::s4u::this_actor::exec_init(const std::vector< s4u::Host *> &hosts, const std::vector< double > &flops_amounts, const std::vector< double > &bytes_amounts) .. autodoxymethod:: simgrid::s4u::this_actor::exec_init(double flops_amounts) .. autodoxymethod:: simgrid::s4u::this_actor::execute(double flop) .. autodoxymethod:: simgrid::s4u::this_actor::execute(double flop, double priority) - .. autodoxymethod:: simgrid::s4u::this_actor::parallel_execute(const std::vector< s4u::Host * > &hosts, const std::vector< double > &flops_amounts, const std::vector< double > &bytes_amounts) - .. autodoxymethod:: simgrid::s4u::this_actor::parallel_execute(const std::vector< s4u::Host * > &hosts, const std::vector< double > &flops_amounts, const std::vector< double > &bytes_amounts, double timeout) + .. autodoxymethod:: simgrid::s4u::this_actor::parallel_execute(const std::vector< s4u::Host *> &hosts, const std::vector< double > &flops_amounts, const std::vector< double > &bytes_amounts) + .. autodoxymethod:: simgrid::s4u::this_actor::parallel_execute(const std::vector< s4u::Host *> &hosts, const std::vector< double > &flops_amounts, const std::vector< double > &bytes_amounts, double timeout) .. group-tab:: Python @@ -919,8 +920,8 @@ Querying info .. group-tab:: C++ - .. autodoxymethod:: simgrid::s4u::Mailbox::get_cname() - .. autodoxymethod:: simgrid::s4u::Mailbox::get_name() + .. autodoxymethod:: simgrid::s4u::Mailbox::get_cname() const + .. autodoxymethod:: simgrid::s4u::Mailbox::get_name() const .. group-tab:: Python @@ -984,7 +985,7 @@ See :ref:`s4u_receiving_actor`. .. group-tab:: C - .. autodoxymethod:: ::sg_mailbox_set_receiver(const char *alias) + .. autodoxymethod:: sg_mailbox_set_receiver(const char *alias) .. _API_s4u_Resource: @@ -1023,13 +1024,13 @@ Querying info .. group-tab:: C++ - .. autodoxymethod:: simgrid::s4u::Disk::get_cname() - .. autodoxymethod:: simgrid::s4u::Disk::get_host() - .. autodoxymethod:: simgrid::s4u::Disk::get_name() - .. autodoxymethod:: simgrid::s4u::Disk::get_properties() - .. autodoxymethod:: simgrid::s4u::Disk::get_property(const std::string &key) - .. autodoxymethod:: simgrid::s4u::Disk::get_read_bandwidth() - .. autodoxymethod:: simgrid::s4u::Disk::get_write_bandwidth() + .. autodoxymethod:: simgrid::s4u::Disk::get_cname() const + .. autodoxymethod:: simgrid::s4u::Disk::get_host() const + .. autodoxymethod:: simgrid::s4u::Disk::get_name() const + .. autodoxymethod:: simgrid::s4u::Disk::get_properties() const + .. autodoxymethod:: simgrid::s4u::Disk::get_property(const std::string &key) const + .. autodoxymethod:: simgrid::s4u::Disk::get_read_bandwidth() const + .. autodoxymethod:: simgrid::s4u::Disk::get_write_bandwidth() const .. autodoxymethod:: simgrid::s4u::Disk::set_property(const std::string &, const std::string &value) I/O operations @@ -1080,6 +1081,8 @@ Basic management idiom on hosts because SimGrid does not allow (yet) to create nor destroy resources once the simulation is started. + .. autodoxymethod:: simgrid::s4u::Host::destroy() + .. group-tab:: Python .. code:: Python @@ -1131,20 +1134,81 @@ Querying info .. group-tab:: C++ - .. autodoxymethod:: simgrid::s4u::Host::get_cname() - .. autodoxymethod:: simgrid::s4u::Host::get_core_count() - .. autodoxymethod:: simgrid::s4u::Host::get_disks() - .. autodoxymethod:: simgrid::s4u::Host::get_name() + .. autodoxymethod:: simgrid::s4u::Host::get_cname() const + .. autodoxymethod:: simgrid::s4u::Host::get_core_count() const + .. autodoxymethod:: simgrid::s4u::Host::get_name() const + .. autodoxymethod:: simgrid::s4u::Host::get_available_speed() const + .. autodoxymethod:: simgrid::s4u::Host::get_load() const + .. autodoxymethod:: simgrid::s4u::Host::get_speed() const .. group-tab:: Python - .. autoattribute:: simgrid.Exec.host .. autoattribute:: simgrid.Host.name + .. autoattribute:: simgrid.Host.load + .. autoattribute:: simgrid.Host.pstate + .. autoattribute:: simgrid.Host.speed .. group-tab:: C - .. autodoxymethod:: ::sg_host_core_count(const_sg_host_t host) + .. autodoxymethod:: sg_host_core_count(const_sg_host_t host) + .. autodoxymethod:: sg_host_dump(const_sg_host_t ws) .. autodoxymethod:: sg_host_get_name(const_sg_host_t host) + .. autodoxymethod:: sg_host_load(const_sg_host_t host) + .. autodoxymethod:: sg_host_speed(const_sg_host_t host) + +User data and properties +------------------------ + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Host::get_properties() const + .. autodoxymethod:: simgrid::s4u::Host::get_property(const std::string &key) const + .. autodoxymethod:: simgrid::s4u::Host::set_properties(const std::map< std::string, std::string > &properties) + .. autodoxymethod:: simgrid::s4u::Host::set_property(const std::string &key, const std::string &value) + + .. group-tab:: C + + .. autodoxymethod:: sg_host_set_property_value(sg_host_t host, const char *name, const char *value) + .. autodoxymethod:: sg_host_get_properties(const_sg_host_t host) + .. autodoxymethod:: sg_host_get_property_value(const_sg_host_t host, const char *name) + .. autodoxymethod:: sg_host_extension_create(void(*deleter)(void *)) + .. autodoxymethod:: sg_host_extension_get(const_sg_host_t host, size_t rank) + +Retrieving components +--------------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Host::add_disk(Disk *disk) + .. autodoxymethod:: simgrid::s4u::Host::get_actor_count() const + .. autodoxymethod:: simgrid::s4u::Host::get_all_actors() const + .. autodoxymethod:: simgrid::s4u::Host::get_disks() const + .. autodoxymethod:: simgrid::s4u::Host::remove_disk(const std::string &disk_name) + + .. group-tab:: C + + .. autodoxymethod:: sg_host_get_actor_list(const_sg_host_t host, xbt_dynar_t whereto) + +On/Off +------ + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Host::is_on() const + .. autodoxymethod:: simgrid::s4u::Host::turn_off() + .. autodoxymethod:: simgrid::s4u::Host::turn_on() + + .. group-tab:: C + + .. autodoxymethod:: sg_host_is_on(const_sg_host_t host) + .. autodoxymethod:: sg_host_turn_off(sg_host_t host) + .. autodoxymethod:: sg_host_turn_on(sg_host_t host) DVFS ---- @@ -1153,9 +1217,9 @@ DVFS .. group-tab:: C++ - .. autodoxymethod:: simgrid::s4u::Host::get_pstate() - .. autodoxymethod:: simgrid::s4u::Host::get_pstate_count() - .. autodoxymethod:: simgrid::s4u::Host::get_pstate_speed(int pstate_index) + .. autodoxymethod:: simgrid::s4u::Host::get_pstate() const + .. autodoxymethod:: simgrid::s4u::Host::get_pstate_count() const + .. autodoxymethod:: simgrid::s4u::Host::get_pstate_speed(int pstate_index) const .. autodoxymethod:: simgrid::s4u::Host::set_pstate(int pstate_index) .. autodoxymethod:: simgrid::s4u::Host::set_speed_profile(kernel::profile::Profile *p) .. autodoxymethod:: simgrid::s4u::Host::set_state_profile(kernel::profile::Profile *p) @@ -1173,10 +1237,49 @@ DVFS .. autodoxymethod:: sg_host_get_pstate_speed(const_sg_host_t host, int pstate_index) .. autodoxymethod:: sg_host_set_pstate(sg_host_t host, int pstate) -.. doxygenclass:: simgrid::s4u::Host - :members: - :protected-members: - :undoc-members: +Execution +--------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Host::exec_async(double flops_amounts) + .. autodoxymethod:: simgrid::s4u::Host::execute(double flops) + .. autodoxymethod:: simgrid::s4u::Host::execute(double flops, double priority) + +Platform and routing +-------------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Host::get_englobing_zone() + .. autodoxymethod:: simgrid::s4u::Host::get_netpoint() const + .. autodoxymethod:: simgrid::s4u::Host::route_to(const Host *dest, std::vector< Link *> &links, double *latency) const + .. autodoxymethod:: simgrid::s4u::Host::route_to(const Host *dest, std::vector< kernel::resource::LinkImpl *> &links, double *latency) const + .. autodoxymethod:: simgrid::s4u::Host::sendto(Host *dest, double byte_amount) + .. autodoxymethod:: simgrid::s4u::Host::sendto_async(Host *dest, double byte_amount) + + .. group-tab:: C + + .. autodoxymethod:: sg_host_route(const_sg_host_t from, const_sg_host_t to, xbt_dynar_t links) + .. autodoxymethod:: sg_host_route_bandwidth(const_sg_host_t from, const_sg_host_t to) + .. autodoxymethod:: sg_host_route_latency(const_sg_host_t from, const_sg_host_t to) + .. autodoxymethod:: sg_host_sendto(sg_host_t from, sg_host_t to, double byte_amount) + +Signals +------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxyvar:: simgrid::s4u::Host::on_creation + .. autodoxyvar:: simgrid::s4u::Host::on_destruction + .. autodoxyvar:: simgrid::s4u::Host::on_speed_change + .. autodoxyvar:: simgrid::s4u::Host::on_state_change .. _API_s4u_Link: @@ -1184,10 +1287,132 @@ DVFS ⁣  class Link ============= -.. doxygenclass:: simgrid::s4u::Link - :members: - :protected-members: - :undoc-members: +.. autodoxyclass:: simgrid::s4u::Link + +Basic management +---------------- + +.. tabs:: + + .. group-tab:: C++ + + .. code-block:: C++ + + #include + + Note that there is no LinkPtr type, and that you cannot use the RAII + idiom on hosts because SimGrid does not allow (yet) to create nor + destroy resources once the simulation is started. + + .. group-tab:: Python + + .. code:: Python + + from simgrid import Link + + .. group-tab:: C + + .. code:: C + + #include + + .. doxygentypedef:: sg_link_t + .. cpp:type:: const s4u_Link* const_sg_link_t + + Pointer to a constant link object. + +Retrieving links +---------------- + +.. tabs:: + + .. group-tab:: C++ + + See also :cpp:func:`simgrid::s4u::Engine::get_all_links`. + + .. autodoxymethod:: simgrid::s4u::Link::by_name(const std::string &name) + .. autodoxymethod:: simgrid::s4u::Link::by_name_or_null(const std::string &name) + + .. group-tab:: C + + .. autodoxymethod:: sg_link_by_name(const char *name) + .. autodoxymethod:: sg_link_count() + .. autodoxymethod:: sg_link_list() + +Querying info +-------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Link::get_bandwidth() const + .. autodoxymethod:: simgrid::s4u::Link::get_cname() const + .. autodoxymethod:: simgrid::s4u::Link::get_latency() const + .. autodoxymethod:: simgrid::s4u::Link::get_name() const + .. autodoxymethod:: simgrid::s4u::Link::get_sharing_policy() const + .. autodoxymethod:: simgrid::s4u::Link::get_usage() const + .. autodoxymethod:: simgrid::s4u::Link::is_used() const + + .. group-tab:: C + + .. autodoxymethod:: sg_link_bandwidth(const_sg_link_t link) + .. autodoxymethod:: sg_link_is_shared(const_sg_link_t link) + .. autodoxymethod:: sg_link_latency(const_sg_link_t link) + .. autodoxymethod:: sg_link_name(const_sg_link_t link) + +User data and properties +------------------------ + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Link::get_property(const std::string &key) const + .. autodoxymethod:: simgrid::s4u::Link::set_property(const std::string &key, const std::string &value) + + .. group-tab:: C + + .. autodoxymethod:: sg_link_data(const_sg_link_t link) + .. autodoxymethod:: sg_link_data_set(sg_link_t link, void *data) + +On/Off +------ + +.. tabs:: + + .. group-tab:: C++ + + See also :cpp:func:`simgrid::s4u::Link::set_state_profile`. + + .. autodoxymethod:: simgrid::s4u::Link::is_on() const + .. autodoxymethod:: simgrid::s4u::Link::turn_off() + .. autodoxymethod:: simgrid::s4u::Link::turn_on() + +Dynamic profiles +---------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Link::set_bandwidth_profile(kernel::profile::Profile *profile) + .. autodoxymethod:: simgrid::s4u::Link::set_latency_profile(kernel::profile::Profile *profile) + .. autodoxymethod:: simgrid::s4u::Link::set_state_profile(kernel::profile::Profile *profile) + +Signals +------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxyvar:: simgrid::s4u::Link::on_bandwidth_change + .. cpp:var:: xbt::signal Link::on_communicate + .. autodoxyvar:: simgrid::s4u::Link::on_communication_state_change + .. autodoxyvar:: simgrid::s4u::Link::on_creation + .. autodoxyvar:: simgrid::s4u::Link::on_destruction + .. autodoxyvar:: simgrid::s4u::Link::on_state_change .. _API_s4u_NetZone: @@ -1195,10 +1420,121 @@ DVFS ⁣  class NetZone ================ -.. doxygenclass:: simgrid::s4u::NetZone - :members: - :protected-members: - :undoc-members: +.. autodoxyclass:: simgrid::s4u::NetZone + +Basic management +---------------- + +.. tabs:: + + .. group-tab:: C++ + + .. code-block:: C++ + + #include + + Note that there is no NetZonePtr type, and that you cannot use the RAII + idiom on network zones because SimGrid does not allow (yet) to create nor + destroy resources once the simulation is started. + + .. group-tab:: C + + .. code:: C + + #include + + .. doxygentypedef:: sg_netzone_t + .. cpp:type:: const s4u_NetZone* const_sg_netzone_t + + Pointer to a constant network zone object. + +Retrieving zones +---------------- + +.. tabs:: + + .. group-tab:: C++ + + See :cpp:func:`simgrid::s4u::Engine::get_netzone_root`, + :cpp:func:`simgrid::s4u::Engine::netzone_by_name_or_null` and + :cpp:func:`simgrid::s4u::Engine::get_filtered_netzones`. + + .. group-tab:: C + + .. autodoxymethod:: sg_zone_get_by_name(const char *name) + .. autodoxymethod:: sg_zone_get_root() + +Querying info +-------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::NetZone::get_cname() const + .. autodoxymethod:: simgrid::s4u::NetZone::get_name() const + + .. group-tab:: C + + .. autodoxymethod:: sg_zone_get_name(const_sg_netzone_t zone) + +User data and properties +------------------------ + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::NetZone::get_properties() const + .. autodoxymethod:: simgrid::s4u::NetZone::get_property(const std::string &key) const + .. autodoxymethod:: simgrid::s4u::NetZone::set_property(const std::string &key, const std::string &value) + + .. group-tab:: C + + .. autodoxymethod:: sg_zone_get_property_value(const_sg_netzone_t as, const char *name) + .. autodoxymethod:: sg_zone_set_property_value(sg_netzone_t netzone, const char *name, const char *value) + +Retrieving components +--------------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::NetZone::get_all_hosts() const + .. autodoxymethod:: simgrid::s4u::NetZone::get_host_count() const + + .. group-tab:: C + + .. autodoxymethod:: sg_zone_get_hosts(const_sg_netzone_t zone, xbt_dynar_t whereto) + +Routing data +------------ + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::NetZone::add_bypass_route(kernel::routing::NetPoint *src, kernel::routing::NetPoint *dst, kernel::routing::NetPoint *gw_src, kernel::routing::NetPoint *gw_dst, std::vector< kernel::resource::LinkImpl *> &link_list, bool symmetrical) + .. autodoxymethod:: simgrid::s4u::NetZone::add_component(kernel::routing::NetPoint *elm) + .. autodoxymethod:: simgrid::s4u::NetZone::add_route(kernel::routing::NetPoint *src, kernel::routing::NetPoint *dst, kernel::routing::NetPoint *gw_src, kernel::routing::NetPoint *gw_dst, std::vector< kernel::resource::LinkImpl *> &link_list, bool symmetrical) + .. autodoxymethod:: simgrid::s4u::NetZone::get_children() const + .. autodoxymethod:: simgrid::s4u::NetZone::get_father() + + .. group-tab:: C + + .. autodoxymethod:: sg_zone_get_sons(const_sg_netzone_t zone, xbt_dict_t whereto) + +Signals +------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxyvar:: simgrid::s4u::NetZone::on_creation + .. autodoxyvar:: simgrid::s4u::NetZone::on_route_creation + .. autodoxyvar:: simgrid::s4u::NetZone::on_seal .. _API_s4u_VirtualMachine: @@ -1206,23 +1542,110 @@ DVFS ⁣  class VirtualMachine ======================= -.. doxygenclass:: simgrid::s4u::VirtualMachine - :members: - :protected-members: - :undoc-members: - -.. autodoxymethod:: sg_vm_create_core -.. autodoxymethod:: sg_vm_create_multicore -.. autodoxymethod:: sg_vm_get_name -.. autodoxymethod:: sg_vm_get_pm -.. autodoxymethod:: sg_vm_is_created -.. autodoxymethod:: sg_vm_is_running -.. autodoxymethod:: sg_vm_is_suspended -.. autodoxymethod:: sg_vm_start -.. autodoxymethod:: sg_vm_suspend -.. autodoxymethod:: sg_vm_resume -.. autodoxymethod:: sg_vm_shutdown -.. autodoxymethod:: sg_vm_destroy + +.. autodoxyclass:: simgrid::s4u::VirtualMachine + +Basic management +---------------- +.. tabs:: + + .. group-tab:: C++ + + .. code-block:: C++ + + #include + + Note that there is no VirtualMachinePtr type, and that you cannot use the RAII + idiom on virtual machines. There is no good reason for that and should change in the future. + + .. group-tab:: C + + .. code:: C + + #include + + .. doxygentypedef:: sg_vm_t + .. cpp:type:: const s4u_VirtualMachine* const_sg_vm_t + + Pointer to a constant virtual machine object. + +Creating VMs +------------ + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::VirtualMachine::VirtualMachine(const std::string &name, Host *physical_host, int core_amount) + .. autodoxymethod:: simgrid::s4u::VirtualMachine::VirtualMachine(const std::string &name, Host *physical_host, int core_amount, size_t ramsize) + .. autodoxymethod:: simgrid::s4u::VirtualMachine::destroy + + .. group-tab:: C + + .. autodoxymethod:: sg_vm_create_core + .. autodoxymethod:: sg_vm_create_multicore + .. autodoxymethod:: sg_vm_destroy + +Querying info +-------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::VirtualMachine::get_pm() const + .. autodoxymethod:: simgrid::s4u::VirtualMachine::get_ramsize() const + .. autodoxymethod:: simgrid::s4u::VirtualMachine::get_state() + + .. autodoxymethod:: simgrid::s4u::VirtualMachine::set_bound(double bound) + .. autodoxymethod:: simgrid::s4u::VirtualMachine::set_pm(Host *pm) + .. autodoxymethod:: simgrid::s4u::VirtualMachine::set_ramsize(size_t ramsize) + + .. group-tab:: C + + .. autodoxymethod:: sg_vm_get_ramsize(const_sg_vm_t vm) + .. autodoxymethod:: sg_vm_set_bound(sg_vm_t vm, double bound) + .. autodoxymethod:: sg_vm_set_ramsize(sg_vm_t vm, size_t size) + + .. autodoxymethod:: sg_vm_get_name + .. autodoxymethod:: sg_vm_get_pm + .. autodoxymethod:: sg_vm_is_created + .. autodoxymethod:: sg_vm_is_running + .. autodoxymethod:: sg_vm_is_suspended + +Life cycle +---------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::VirtualMachine::resume() + .. autodoxymethod:: simgrid::s4u::VirtualMachine::shutdown() + .. autodoxymethod:: simgrid::s4u::VirtualMachine::start() + .. autodoxymethod:: simgrid::s4u::VirtualMachine::suspend() + + .. group-tab:: C + + .. autodoxymethod:: sg_vm_start + .. autodoxymethod:: sg_vm_suspend + .. autodoxymethod:: sg_vm_resume + .. autodoxymethod:: sg_vm_shutdown + +Signals +------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_migration_end + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_migration_start + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_resume + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_shutdown + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_start + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_started + .. autodoxyvar:: simgrid::s4u::VirtualMachine::on_suspend .. _API_s4u_Activity: @@ -1238,23 +1661,48 @@ class Activity :ref:`I/O ` (started on and consumming disks). See also the :ref:`section on activities ` above. -Querying info about activities ------------------------------- +Basic management +---------------- - .. autodoxymethod:: simgrid::s4u::Activity::get_remaining() - .. autodoxymethod:: simgrid::s4u::Activity::get_state() - .. autodoxymethod:: simgrid::s4u::Activity::set_remaining(double remains) - .. autodoxymethod:: simgrid::s4u::Activity::get_impl +.. tabs:: -Activities lifecycle --------------------- + .. group-tab:: C++ + + .. code-block:: C++ + + #include - .. autodoxymethod:: simgrid::s4u::Activity::start - .. autodoxymethod:: simgrid::s4u::Activity::cancel - .. autodoxymethod:: simgrid::s4u::Activity::test - .. autodoxymethod:: simgrid::s4u::Activity::wait - .. autodoxymethod:: simgrid::s4u::Activity::wait_for - .. autodoxymethod:: simgrid::s4u::Activity::wait_until(double time_limit) + .. doxygentypedef:: ActivityPtr + +Querying info +------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Activity::get_cname + .. autodoxymethod:: simgrid::s4u::Activity::get_name + .. autodoxymethod:: simgrid::s4u::Activity::get_remaining() const + .. autodoxymethod:: simgrid::s4u::Activity::get_state() const + .. autodoxymethod:: simgrid::s4u::Activity::set_remaining(double remains) + .. autodoxymethod:: simgrid::s4u::Activity::set_state(Activity::State state) + + +Activities life cycle +--------------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Activity::start + .. autodoxymethod:: simgrid::s4u::Activity::cancel + .. autodoxymethod:: simgrid::s4u::Activity::test + .. autodoxymethod:: simgrid::s4u::Activity::wait + .. autodoxymethod:: simgrid::s4u::Activity::wait_for + .. autodoxymethod:: simgrid::s4u::Activity::wait_until(double time_limit) + .. autodoxymethod:: simgrid::s4u::Activity::vetoable_start() .. _API_s4u_Comm: @@ -1262,12 +1710,81 @@ Activities lifecycle ⁣  class Comm ============= -.. doxygentypedef:: CommPtr +.. autodoxyclass:: simgrid::s4u::Comm + +Basic management +---------------- + +.. tabs:: + + .. group-tab:: C++ + + .. code-block:: C++ + + #include + + .. doxygentypedef:: CommPtr + + .. group-tab:: Python + + .. code:: Python + + from simgrid import Comm + +Querying info +------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Comm::get_dst_data_size() const + .. autodoxymethod:: simgrid::s4u::Comm::get_mailbox() const + .. autodoxymethod:: simgrid::s4u::Comm::get_sender() const + .. autodoxymethod:: simgrid::s4u::Comm::set_dst_data(void **buff) + .. autodoxymethod:: simgrid::s4u::Comm::set_dst_data(void **buff, size_t size) + .. autodoxymethod:: simgrid::s4u::Comm::detach() + .. autodoxymethod:: simgrid::s4u::Comm::detach(void(*clean_function)(void *)) + .. autodoxymethod:: simgrid::s4u::Comm::set_rate(double rate) + .. autodoxymethod:: simgrid::s4u::Comm::set_src_data(void *buff) + .. autodoxymethod:: simgrid::s4u::Comm::set_src_data(void *buff, size_t size) + .. autodoxymethod:: simgrid::s4u::Comm::set_src_data_size(size_t size) + .. autodoxymethod:: simgrid::s4u::Comm::set_tracing_category(const std::string &category) + +Life cycle +---------- -.. doxygenclass:: simgrid::s4u::Comm - :members: - :protected-members: - :undoc-members: +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Comm::cancel + .. autodoxymethod:: simgrid::s4u::Comm::start + .. autodoxymethod:: simgrid::s4u::Comm::test + .. autodoxymethod:: simgrid::s4u::Comm::test_any(const std::vector< CommPtr > *comms) + .. autodoxymethod:: simgrid::s4u::Comm::wait + .. autodoxymethod:: simgrid::s4u::Comm::wait_all(const std::vector< CommPtr > *comms) + .. autodoxymethod:: simgrid::s4u::Comm::wait_any(const std::vector< CommPtr > *comms) + .. autodoxymethod:: simgrid::s4u::Comm::wait_any_for(const std::vector< CommPtr > *comms_in, double timeout) + .. autodoxymethod:: simgrid::s4u::Comm::wait_for + + .. group-tab:: Python + + .. automethod:: simgrid.Comm.test + .. automethod:: simgrid.Comm.wait + .. automethod:: simgrid.Comm.wait_all + .. automethod:: simgrid.Comm.wait_any + +Signals +------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxyvar:: simgrid::s4u::Comm::on_completion + .. autodoxyvar:: simgrid::s4u::Comm::on_receiver_start + .. autodoxyvar:: simgrid::s4u::Comm::on_sender_start .. _API_s4u_Exec: @@ -1275,38 +1792,87 @@ Activities lifecycle ⁣  class Exec ============= -.. doxygentypedef:: ExecPtr +.. autodoxyclass:: simgrid::s4u::Exec -.. doxygenclass:: simgrid::s4u::Exec - :members: - :protected-members: - :undoc-members: +Basic management +---------------- -.. _API_s4u_ExecSeq: +.. tabs:: -================== -⁣    class ExecSeq -================== + .. group-tab:: C++ -.. doxygentypedef:: ExecSeqPtr + .. code-block:: C++ -.. doxygenclass:: simgrid::s4u::ExecSeq - :members: - :protected-members: - :undoc-members: + #include -.. _API_s4u_ExecPar: + .. doxygentypedef:: ExecPtr -================== -⁣    class ExecPar -================== + .. group-tab:: Python + + .. code:: Python + + from simgrid import Exec + +Querying info +------------- + +.. tabs:: -.. doxygentypedef:: ExecParPtr + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Exec::get_cost() const + .. autodoxymethod:: simgrid::s4u::Exec::get_finish_time() const + .. autodoxymethod:: simgrid::s4u::Exec::get_host() const + .. autodoxymethod:: simgrid::s4u::Exec::get_host_number() const + .. cpp:function:: double Exec::get_remaining() + + On sequential executions, returns the amount of flops that remain to be done; + This cannot be used on parallel executions. + + .. autodoxymethod:: simgrid::s4u::Exec::get_remaining_ratio + .. autodoxymethod:: simgrid::s4u::Exec::get_start_time() const + .. autodoxymethod:: simgrid::s4u::Exec::set_bound(double bound) + .. autodoxymethod:: simgrid::s4u::Exec::set_host + .. autodoxymethod:: simgrid::s4u::Exec::set_priority(double priority) -.. doxygenclass:: simgrid::s4u::ExecPar - :members: - :protected-members: - :undoc-members: + .. group-tab:: Python + + .. autoattribute:: simgrid.Exec.host + .. autoattribute:: simgrid.Exec.remaining + .. autoattribute:: simgrid.Exec.remaining_ratio + +Life cycle +---------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Exec::cancel + .. autodoxymethod:: simgrid::s4u::Exec::set_timeout(double timeout) + .. autodoxymethod:: simgrid::s4u::Exec::start + .. autodoxymethod:: simgrid::s4u::Exec::test + .. autodoxymethod:: simgrid::s4u::Exec::wait + .. autodoxymethod:: simgrid::s4u::Exec::wait_any(std::vector< ExecPtr > *execs) + .. autodoxymethod:: simgrid::s4u::Exec::wait_any_for(std::vector< ExecPtr > *execs, double timeout) + .. autodoxymethod:: simgrid::s4u::Exec::wait_for + + .. group-tab:: Python + + .. automethod:: simgrid.Exec.cancel + .. automethod:: simgrid.Exec.start + .. automethod:: simgrid.Exec.test + .. automethod:: simgrid.Exec.wait + +Signals +------- + +.. tabs:: + + .. group-tab:: C++ + + .. cpp:var:: xbt::signal Exec::on_completion + .. cpp:var:: xbt::signal Exec::on_start .. _API_s4u_Io: @@ -1314,12 +1880,43 @@ Activities lifecycle ⁣  class Io =========== -.. doxygentypedef:: IoPtr +.. autodoxyclass:: simgrid::s4u::Io + +Basic management +---------------- + +.. tabs:: + + .. group-tab:: C++ + + .. code-block:: C++ + + #include -.. doxygenclass:: simgrid::s4u::Io - :members: - :protected-members: - :undoc-members: + .. doxygentypedef:: IoPtr + +Querying info +------------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Io::get_performed_ioops() const + .. autodoxymethod:: simgrid::s4u::Io::get_remaining + +Life cycle +---------- + +.. tabs:: + + .. group-tab:: C++ + + .. autodoxymethod:: simgrid::s4u::Io::cancel + .. autodoxymethod:: simgrid::s4u::Io::start + .. autodoxymethod:: simgrid::s4u::Io::test + .. autodoxymethod:: simgrid::s4u::Io::wait + .. autodoxymethod:: simgrid::s4u::Io::wait_for .. _API_s4u_Synchronizations: @@ -1451,8 +2048,8 @@ Basic management #include .. doxygentypedef:: sg_cond_t - .. doxygenfunction:: sg_cond_init - .. doxygenfunction:: sg_cond_destroy + .. autodoxymethod:: sg_cond_init + .. autodoxymethod:: sg_cond_destroy Waiting and notifying --------------------- @@ -1477,10 +2074,10 @@ Waiting and notifying .. group-tab:: C - .. doxygenfunction:: sg_cond_notify_all - .. doxygenfunction:: sg_cond_notify_one - .. doxygenfunction:: sg_cond_wait - .. doxygenfunction:: sg_cond_wait_for + .. autodoxymethod:: sg_cond_notify_all + .. autodoxymethod:: sg_cond_notify_one + .. autodoxymethod:: sg_cond_wait + .. autodoxymethod:: sg_cond_wait_for .. _API_s4u_Semaphore: @@ -1542,33 +2139,6 @@ Locking .. autodoxymethod:: sg_sem_release(sg_sem_t sem) .. autodoxymethod:: sg_sem_would_block(sg_sem_t sem) -Python API Reference -******************** - -The Python API is automatically generated with pybind11. It closely mimicks the C++ -API, to which you should refer for more information. - -========== -Class Comm -========== - -.. autoclass:: simgrid.Comm - :members: - -========== -Class Exec -========== - -.. autoclass:: simgrid.Exec - :members: - -========== -Class Host -========== - -.. autoclass:: simgrid.Host - :members: - .. |hr| raw:: html