X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/b3b356352e87ae00a20f737c48e19b0c8413455a..ccafe2d8af6c598a53ab9a6fa588ce39c776555d:/src/surf/network_ib.hpp diff --git a/src/surf/network_ib.hpp b/src/surf/network_ib.hpp index 4c39884ac3..ee3367768e 100644 --- a/src/surf/network_ib.hpp +++ b/src/surf/network_ib.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015. The SimGrid Team. +/* Copyright (c) 2014-2019. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -7,50 +7,59 @@ #ifndef SURF_NETWORK_IB_HPP_ #define SURF_NETWORK_IB_HPP_ -#include "network_smpi.hpp" -class IBNode; +#include "src/surf/network_smpi.hpp" +#include "xbt/base.h" +#include +#include -class ActiveComm{ -public : - //IBNode* origin; +namespace simgrid { +namespace kernel { +namespace resource { + +class XBT_PRIVATE IBNode; + +class XBT_PRIVATE ActiveComm { +public: IBNode* destination; - NetworkAction *action; + NetworkAction* action; double init_rate; - ActiveComm() : destination(NULL),action(NULL),init_rate(-1){}; - ~ActiveComm(){}; + ActiveComm() : destination(nullptr), action(nullptr), init_rate(-1){}; + virtual ~ActiveComm() = default; }; -class IBNode{ -public : +class IBNode { +public: int id; - //store related links, to ease computation of the penalties + // store related links, to ease computation of the penalties std::vector ActiveCommsUp; - //store the number of comms received from each node + // store the number of comms received from each node std::map ActiveCommsDown; - //number of comms the node is receiving + // number of comms the node is receiving int nbActiveCommsDown; - IBNode(int id) : id(id),nbActiveCommsDown(0){}; - ~IBNode(){}; + explicit IBNode(int id) : id(id), nbActiveCommsDown(0){}; + virtual ~IBNode() = default; }; -class NetworkIBModel : public NetworkSmpiModel { -private: - void updateIBfactors_rec(IBNode *root, bool* updatedlist); - void computeIBfactors(IBNode *root); -public: - NetworkIBModel(); - NetworkIBModel(const char *name); - ~NetworkIBModel(); - void updateIBfactors(NetworkAction *action, IBNode *from, IBNode * to, int remove); - - xbt_dict_t active_nodes; - std::map > active_comms; - +class XBT_PRIVATE NetworkIBModel : public NetworkSmpiModel { double Bs; double Be; double ys; + void updateIBfactors_rec(IBNode* root, std::vector& updatedlist); + void computeIBfactors(IBNode* root); -}; +public: + NetworkIBModel(); + explicit NetworkIBModel(const char* name); + NetworkIBModel(const NetworkIBModel&) = delete; + NetworkIBModel& operator=(const NetworkIBModel&) = delete; + void updateIBfactors(NetworkAction* action, IBNode* from, IBNode* to, int remove); + std::unordered_map active_nodes; + std::unordered_map> active_comms; + +}; +} // namespace resource +} // namespace kernel +} // namespace simgrid #endif