- Container(std::string name, std::string type_name, Container* father);
- virtual ~Container();
-
- Type* type_; /* Type of this container */
- Container* father_;
- std::map<std::string, Container*> children_;
- sg_netpoint_t netpoint_ = nullptr;
-
- static Container* byNameOrNull(std::string name);
- static Container* byName(std::string name);
- std::string getName() { return name_; }
- const char* getCname() { return name_.c_str(); }
- long long int getId() { return id_; }
- void removeFromParent();
- void logCreation();
- void logDestruction();
-
- static Container* getRootContainer();
+ int endpoint = 0;
+ int send_size = 0;
+ std::shared_ptr<std::vector<int>> sendcounts = nullptr;
+ int recv_size = 0;
+ std::shared_ptr<std::vector<int>> recvcounts = nullptr;
+ std::string send_type = "";
+ std::string recv_type = "";
+
+ // NoOpTI: init, finalize, test, wait, barrier
+ explicit TIData(const std::string& name) : name_(name){};
+ // CPuTI: compute, sleep (+ waitAny and waitall out of laziness)
+ explicit TIData(const std::string& name, double amount) : name_(name), amount_(amount){};
+ // Pt2PtTI: send, isend, sssend, issend, recv, irecv
+ explicit TIData(const std::string& name, int endpoint, int size, const std::string& datatype)
+ : name_(name), endpoint(endpoint), send_size(size), send_type(datatype){};
+ // CollTI: bcast, reduce, allreduce, gather, scatter, allgather, alltoall
+ explicit TIData(const std::string& name, int root, double amount, int send_size, int recv_size,
+ const std::string& send_type, const std::string& recv_type)
+ : name_(name)
+ , amount_(amount)
+ , endpoint(root)
+ , send_size(send_size)
+ , recv_size(recv_size)
+ , send_type(send_type)
+ , recv_type(recv_type){};
+ // VarCollTI: gatherv, scatterv, allgatherv, alltoallv (+ reducescatter out of laziness)
+ explicit TIData(const std::string& name, int root, int send_size, std::vector<int>* sendcounts, int recv_size,
+ std::vector<int>* recvcounts, const std::string& send_type, const std::string& recv_type)
+ : TIData(name, root, send_size, std::shared_ptr<std::vector<int>>(sendcounts), recv_size,
+ std::shared_ptr<std::vector<int>>(recvcounts), send_type, recv_type){};
+
+ explicit TIData(const std::string& name, int root, int send_size, std::shared_ptr<std::vector<int>> sendcounts,
+ int recv_size, std::shared_ptr<std::vector<int>> recvcounts, const std::string& send_type,
+ const std::string& recv_type)
+ : name_(name)
+ , endpoint(root)
+ , send_size(send_size)
+ , sendcounts(sendcounts)
+ , recv_size(recv_size)
+ , recvcounts(recvcounts)
+ , send_type(send_type)
+ , recv_type(recv_type){};
+
+ virtual ~TIData() {}
+
+ const std::string& getName() const { return name_; }
+ double getAmount() { return amount_; }
+ virtual std::string print() = 0;
+ virtual std::string display_size() = 0;