X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f6b6ec5ae0cc5d28201720961c23277c4a72e152..3f8e81f0358efeb439da57c1e5516d26868b32b5:/src/surf/network_cm02.cpp diff --git a/src/surf/network_cm02.cpp b/src/surf/network_cm02.cpp index c0f1e0f769..87b6cdb108 100644 --- a/src/surf/network_cm02.cpp +++ b/src/surf/network_cm02.cpp @@ -75,6 +75,34 @@ void surf_network_model_init_CM02() engine->get_netzone_root()->set_network_model(net_model); } +/********************************************************************/ +/* Model based on LV08 and experimental results of MPI ping-pongs */ +/********************************************************************/ +/* @Inproceedings{smpi_ipdps, */ +/* author={Pierre-Nicolas Clauss and Mark Stillwell and Stéphane Genaud and Frédéric Suter and Henri Casanova and + * Martin Quinson}, */ +/* title={Single Node On-Line Simulation of {MPI} Applications with SMPI}, */ +/* booktitle={25th IEEE International Parallel and Distributed Processing Symposium (IPDPS'11)}, */ +/* address={Anchorage (Alaska) USA}, */ +/* month=may, */ +/* year={2011} */ +/* } */ +void surf_network_model_init_SMPI() +{ + auto net_model = std::make_shared("Network_SMPI"); + auto* engine = simgrid::kernel::EngineImpl::get_instance(); + engine->add_model(net_model); + engine->get_netzone_root()->set_network_model(net_model); + + simgrid::config::set_default("network/weight-S", 8775); + simgrid::config::set_default("network/bandwidth-factor", + "65472:0.940694;15424:0.697866;9376:0.58729;5776:1.08739;3484:0.77493;" + "1426:0.608902;732:0.341987;257:0.338112;0:0.812084"); + simgrid::config::set_default("network/latency-factor", + "65472:11.6436;15424:3.48845;9376:2.59299;5776:2.18796;3484:1.88101;" + "1426:1.61075;732:1.9503;257:1.95341;0:2.01467"); +} + namespace simgrid::kernel::resource { NetworkCm02Model::NetworkCm02Model(const std::string& name) : NetworkModel(name) @@ -97,22 +125,6 @@ NetworkCm02Model::NetworkCm02Model(const std::string& name) : NetworkModel(name) loopback_->get_iface()->seal(); } -void NetworkCm02Model::check_lat_factor_cb() -{ - if (not simgrid::config::is_default("network/latency-factor")) { - throw std::invalid_argument( - "NetworkModelIntf: Cannot mix network/latency-factor and callback configuration. Choose only one of them."); - } -} - -void NetworkCm02Model::check_bw_factor_cb() -{ - if (not simgrid::config::is_default("network/bandwidth-factor")) { - throw std::invalid_argument( - "NetworkModelIntf: Cannot mix network/bandwidth-factor and callback configuration. Choose only one of them."); - } -} - StandardLinkImpl* NetworkCm02Model::create_link(const std::string& name, const std::vector& bandwidths) { xbt_assert(bandwidths.size() == 1, "Non-WIFI links must use only 1 bandwidth.");