X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0b348e806f86cd8c138b8485c8d41c041ccad610..6d18625ebd53e7e4218e8892aea37a64449f1f27:/src/instr/instr_private.hpp diff --git a/src/instr/instr_private.hpp b/src/instr/instr_private.hpp index 0574307eac..c3a35b6f4a 100644 --- a/src/instr/instr_private.hpp +++ b/src/instr/instr_private.hpp @@ -9,7 +9,7 @@ #include #include "simgrid/instr.h" -#include "simgrid_config.h" +#include "simgrid/s4u/Actor.hpp" #include "src/instr/instr_paje_containers.hpp" #include "src/instr/instr_paje_events.hpp" #include "src/instr/instr_paje_types.hpp" @@ -17,7 +17,9 @@ #include "src/internal_config.h" #include "xbt/graph.h" +#include #include /** std::setprecision **/ +#include #include #include #include @@ -27,7 +29,6 @@ #ifdef WIN32 #include // _mkdir /* Need to define function drand48 for Windows */ -/* FIXME: use _drand48() defined in src/surf/random_mgr.c instead */ #define drand48() (rand() / (RAND_MAX + 1.0)) #endif @@ -65,7 +66,7 @@ public: // Pt2PtTI: send, isend, sssend, issend, recv, irecv explicit TIData(std::string name, int endpoint, int size, std::string datatype) : name_(name), endpoint(endpoint), send_size(size), send_type(datatype){}; - // CollTI: bcast, reduce, allReduce, gather, scatter, allGather, allToAll + // CollTI: bcast, reduce, allreduce, gather, scatter, allGather, allToAll explicit TIData(std::string name, int root, double amount, int send_size, int recv_size, std::string send_type, std::string recv_type) : name_(name) @@ -75,7 +76,7 @@ public: , recv_size(recv_size) , send_type(send_type) , recv_type(recv_type){}; - // VarCollTI: gatherV, scatterV, allGatherV, allToAllV (+ reduceScatter out of laziness) + // VarCollTI: gatherV, scatterV, allgatherv, allToAllV (+ reduceScatter out of laziness) explicit TIData(std::string name, int root, int send_size, std::vector* sendcounts, int recv_size, std::vector* recvcounts, std::string send_type, std::string recv_type) : TIData(name, root, send_size, std::shared_ptr>(sendcounts), recv_size, @@ -195,6 +196,29 @@ public: } std::string display_size() override { return std::to_string(send_size > 0 ? send_size : recv_size); } }; + +/** + * If we want to wait for a request of asynchronous communication, we need to be able + * to identify this request. We do this by searching for a request identified by (src, dest, tag). + */ +class WaitTIData : public TIData { + int src; + int dest; + int tag; + +public: + explicit WaitTIData(int src, int dest, int tag) : TIData("wait"), src(src), dest(dest), tag(tag){}; + + std::string print() override + { + std::stringstream stream; + stream << getName() << " " << src << " " << dest << " " << tag; + + return stream.str(); + } + + std::string display_size() override { return ""; } +}; } } @@ -208,11 +232,7 @@ extern XBT_PRIVATE std::set user_link_variables; extern XBT_PRIVATE double TRACE_last_timestamp_to_dump; /* instr_paje_header.c */ -XBT_PRIVATE void TRACE_header(bool basic, int size); - -/* from paje.c */ -XBT_PRIVATE void TRACE_paje_start(); -XBT_PRIVATE void TRACE_paje_end(); +XBT_PRIVATE void TRACE_header(bool basic, bool size); /* from instr_config.c */ XBT_PRIVATE bool TRACE_needs_platform(); @@ -223,7 +243,6 @@ XBT_PRIVATE bool TRACE_categorized(); XBT_PRIVATE bool TRACE_uncategorized(); XBT_PRIVATE bool TRACE_actor_is_enabled(); XBT_PRIVATE bool TRACE_vm_is_enabled(); -XBT_PRIVATE bool TRACE_buffer(); XBT_PRIVATE bool TRACE_disable_link(); XBT_PRIVATE bool TRACE_disable_speed(); XBT_PRIVATE bool TRACE_disable_destroy(); @@ -238,11 +257,8 @@ XBT_PUBLIC bool TRACE_smpi_is_computing(); XBT_PUBLIC bool TRACE_smpi_is_sleeping(); XBT_PUBLIC bool TRACE_smpi_view_internals(); -/* from resource_utilization.c */ -XBT_PRIVATE void TRACE_surf_host_set_utilization(const char* resource, const char* category, double value, double now, - double delta); -XBT_PRIVATE void TRACE_surf_link_set_utilization(const char* resource, const char* category, double value, double now, - double delta); +XBT_PRIVATE void TRACE_surf_resource_set_utilization(const char* type, const char* name, const char* resource, + const char* category, double value, double now, double delta); /* instr_paje.c */ extern XBT_PRIVATE std::set trivaNodeTypes; @@ -254,19 +270,13 @@ void instr_new_user_variable_type(std::string father_type, std::string new_typen void instr_new_user_state_type(std::string father_type, std::string new_typename); void instr_new_value_for_user_state_type(std::string new_typename, const char* value, std::string color); -/* instr_config.c */ -XBT_PRIVATE void TRACE_start(); -XBT_PRIVATE void TRACE_TI_start(); -XBT_PRIVATE void TRACE_TI_end(); XBT_PRIVATE void TRACE_global_init(); -XBT_PRIVATE void TRACE_help(int detailed); +XBT_PRIVATE void TRACE_help(); XBT_PRIVATE void TRACE_paje_dump_buffer(bool force); XBT_PRIVATE void dump_comment_file(std::string filename); XBT_PRIVATE void dump_comment(std::string comment); -XBT_PRIVATE std::string TRACE_get_comment(); -XBT_PRIVATE std::string TRACE_get_comment_file(); XBT_PRIVATE std::string TRACE_get_filename(); #endif