X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/f3b7e5f4b4d7c87ee3e8827313ec966ea8fc8387..646382dad2877951dbdcc159ece73e349a149d56:/src/smpi/colls/smpi_coll.cpp diff --git a/src/smpi/colls/smpi_coll.cpp b/src/smpi/colls/smpi_coll.cpp index d4d9b10e37..c8c322e5d9 100644 --- a/src/smpi/colls/smpi_coll.cpp +++ b/src/smpi/colls/smpi_coll.cpp @@ -1,6 +1,6 @@ /* smpi_coll.c -- various optimized routing for collectives */ -/* Copyright (c) 2009-2020. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2009-2022. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -20,7 +20,7 @@ XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_coll, smpi, "Logging specific to SMPI colle namespace simgrid { namespace smpi { -std::map> smpi_coll_descriptions( +std::map, std::less<>> smpi_coll_descriptions( {{std::string("gather"), {{"default", "gather default collective", (void*)gather__default}, {"ompi", "gather ompi collective", (void*)gather__ompi}, @@ -103,6 +103,7 @@ std::map> smpi_coll_descripti {"ompi_basic_recursivehalving", "reduce_scatter ompi_basic_recursivehalving collective", (void*)reduce_scatter__ompi_basic_recursivehalving}, {"ompi_ring", "reduce_scatter ompi_ring collective", (void*)reduce_scatter__ompi_ring}, + {"ompi_butterfly", "reduce_scatter ompi_butterfly collective", (void*)reduce_scatter__ompi_butterfly}, {"mpich", "reduce_scatter mpich collective", (void*)reduce_scatter__mpich}, {"mpich_pair", "reduce_scatter mpich_pair collective", (void*)reduce_scatter__mpich_pair}, {"mpich_rdb", "reduce_scatter mpich_rdb collective", (void*)reduce_scatter__mpich_rdb}, @@ -115,6 +116,7 @@ std::map> smpi_coll_descripti {{"default", "scatter default collective", (void*)scatter__default}, {"ompi", "scatter ompi collective", (void*)scatter__ompi}, {"ompi_basic_linear", "scatter ompi_basic_linear collective", (void*)scatter__ompi_basic_linear}, + {"ompi_linear_nb", "scatter ompi_linear nonblocking collective", (void*)scatter__ompi_linear_nb}, {"ompi_binomial", "scatter ompi_binomial collective", (void*)scatter__ompi_binomial}, {"mpich", "scatter mpich collective", (void*)scatter__mpich}, {"mvapich2", "scatter mvapich2 collective", (void*)scatter__mvapich2}, @@ -237,16 +239,14 @@ std::map> smpi_coll_descripti std::vector* colls::get_smpi_coll_descriptions(const std::string& name) { auto iter = smpi_coll_descriptions.find(name); - if (iter == smpi_coll_descriptions.end()) - xbt_die("No collective named %s. This is a bug.", name.c_str()); + xbt_assert(iter != smpi_coll_descriptions.end(), "No collective named %s. This is a bug.", name.c_str()); return &iter->second; } static s_mpi_coll_description_t* find_coll_description(const std::string& collective, const std::string& algo) { std::vector* table = colls::get_smpi_coll_descriptions(collective); - if (table->empty()) - xbt_die("No registered algorithm for collective '%s'! This is a bug.", collective.c_str()); + xbt_assert(not table->empty(), "No registered algorithm for collective '%s'! This is a bug.", collective.c_str()); for (auto& desc : *table) { if (algo == desc.name) { @@ -289,8 +289,7 @@ void (*colls::smpi_coll_cleanup_callback)(); { \ auto desc = find_coll_description(_XBT_STRINGIFY(cat), name); \ cat = reinterpret_cast(desc->coll); \ - if (cat == nullptr) \ - xbt_die("Collective " _XBT_STRINGIFY(cat) " set to nullptr!"); \ + xbt_assert(cat != nullptr, "Collective " _XBT_STRINGIFY(cat) " set to nullptr!"); \ } COLL_APPLY(COLL_SETTER, COLL_GATHER_SIG, "") COLL_APPLY(COLL_SETTER,COLL_ALLGATHER_SIG,"")