intel-mpi-benchmarks: Take in upstream bugfix patches. (#22317)

This commit is contained in:
Tomoki, Karatsu 2021-03-18 03:09:25 +09:00 committed by GitHub
parent 251e4282f1
commit d934363ae5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 126 additions and 0 deletions

View File

@ -0,0 +1,13 @@
diff --git a/src_cpp/args_parser.h b/src_cpp/args_parser.h
index 0a6c748..cfd6a89 100644
--- a/src_cpp/args_parser.h
+++ b/src_cpp/args_parser.h
@@ -216,7 +216,7 @@ class args_parser {
protected:
std::set<flag_t> flags;
std::string current_group;
- std::map<std::string, std::vector<smart_ptr<option> > > expected_args;
+ std::map<const std::string, std::vector<smart_ptr<option> > > expected_args;
std::vector<std::string> unknown_args;
option *prev_option;
error_t last_error;

View File

@ -27,6 +27,11 @@ class IntelMpiBenchmarks(MakefilePackage):
depends_on('mpi') depends_on('mpi')
# https://github.com/intel/mpi-benchmarks/pull/19
patch('add_const.patch', when='@:2019.6')
# https://github.com/intel/mpi-benchmarks/pull/20
patch('reorder_benchmark_macros.patch', when='@:2019.6')
variant( variant(
'benchmark', default='all', 'benchmark', default='all',
values=('mpi1', 'ext', 'io', 'nbc', values=('mpi1', 'ext', 'io', 'nbc',

View File

@ -0,0 +1,108 @@
diff --git a/src_cpp/EXT/EXT_benchmark.cpp b/src_cpp/EXT/EXT_benchmark.cpp
index b5179ca..62abd64 100644
--- a/src_cpp/EXT/EXT_benchmark.cpp
+++ b/src_cpp/EXT/EXT_benchmark.cpp
@@ -70,9 +70,10 @@ extern "C" {
using namespace std;
-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>; \
-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>), BMRK_NAME) \
+#define BENCHMARK(BMRK_FN, BMRK_NAME) \
template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>::descr = NULL; \
+DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>), BMRK_NAME) \
+template class OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>; \
template<> bool OriginalBenchmark<BenchmarkSuite<BS_EXT>, BMRK_FN>::init_description()
BENCHMARK(IMB_window, Window)
diff --git a/src_cpp/IO/IO_benchmark.cpp b/src_cpp/IO/IO_benchmark.cpp
index 6a99612..27f9771 100644
--- a/src_cpp/IO/IO_benchmark.cpp
+++ b/src_cpp/IO/IO_benchmark.cpp
@@ -70,9 +70,10 @@ extern "C" {
using namespace std;
-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>; \
-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>), BMRK_NAME) \
+#define BENCHMARK(BMRK_FN, BMRK_NAME) \
template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>::descr = NULL; \
+DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>), BMRK_NAME) \
+template class OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>; \
template<> bool OriginalBenchmark<BenchmarkSuite<BS_IO>, BMRK_FN>::init_description()
BENCHMARK(IMB_write_indv, S_Write_Indv)
diff --git a/src_cpp/MPI1/MPI1_benchmark.cpp b/src_cpp/MPI1/MPI1_benchmark.cpp
index 9f7da65..57a6ceb 100644
--- a/src_cpp/MPI1/MPI1_benchmark.cpp
+++ b/src_cpp/MPI1/MPI1_benchmark.cpp
@@ -70,10 +70,11 @@ extern "C" {
using namespace std;
-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>; \
-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>), BMRK_NAME) \
+#define BENCHMARK(BMRK_FN, BMRK_NAME) \
template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>::descr = NULL; \
-template<> bool OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>::init_description()
+DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>), BMRK_NAME) \
+template class OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>; \
+template<> bool OriginalBenchmark<BenchmarkSuite<BS_MPI1>, BMRK_FN>::init_description()
BENCHMARK(IMB_pingpong, PingPong)
diff --git a/src_cpp/MT/MT_benchmark.cpp b/src_cpp/MT/MT_benchmark.cpp
index 2378fbd..9041364 100644
--- a/src_cpp/MT/MT_benchmark.cpp
+++ b/src_cpp/MT/MT_benchmark.cpp
@@ -73,12 +73,14 @@ goods and services.
return OLDNAME(repeat, skip, in, out, count, type, comm, rank, size, idata, odata); \
}
-#define DECLARE_INHERITED_BENCHMARKMT2(BS, FUNC, NAME) template class BenchmarkMT<BS, FUNC>; \
+#define DECLARE_INHERITED_BENCHMARKMT2(BS, FUNC, NAME) \
DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME3(BenchmarkMT<BS, FUNC>), NAME) \
+ template class BenchmarkMT<BS, FUNC>; \
template <> void BenchmarkMT<BS, FUNC >::init_flags()
-#define DECLARE_INHERITED_BENCHMARKMT(BS, FUNC, NAME) template class BenchmarkMT<BS, FUNC>; \
+#define DECLARE_INHERITED_BENCHMARKMT(BS, FUNC, NAME) \
DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME2(BenchmarkMT<BS, FUNC>), NAME) \
+ template class BenchmarkMT<BS, FUNC>; \
template <> void BenchmarkMT<BS, FUNC >::init_flags()
diff --git a/src_cpp/NBC/NBC_benchmark.cpp b/src_cpp/NBC/NBC_benchmark.cpp
index 94548fd..fa9101d 100644
--- a/src_cpp/NBC/NBC_benchmark.cpp
+++ b/src_cpp/NBC/NBC_benchmark.cpp
@@ -70,9 +70,10 @@ extern "C" {
using namespace std;
-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>; \
-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>), BMRK_NAME) \
+#define BENCHMARK(BMRK_FN, BMRK_NAME) \
template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>::descr = NULL; \
+DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>), BMRK_NAME) \
+template class OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>; \
template<> bool OriginalBenchmark<BenchmarkSuite<BS_NBC>, BMRK_FN>::init_description()
BENCHMARK(IMB_ibcast, Ibcast)
diff --git a/src_cpp/RMA/RMA_benchmark.cpp b/src_cpp/RMA/RMA_benchmark.cpp
index b33553a..1ed4ce9 100644
--- a/src_cpp/RMA/RMA_benchmark.cpp
+++ b/src_cpp/RMA/RMA_benchmark.cpp
@@ -70,9 +70,10 @@ extern "C" {
using namespace std;
-#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>; \
-DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>), BMRK_NAME) \
+#define BENCHMARK(BMRK_FN, BMRK_NAME) \
template<> smart_ptr<Bmark_descr> OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>::descr = NULL; \
+DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>), BMRK_NAME) \
+template class OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>; \
template<> bool OriginalBenchmark<BenchmarkSuite<BS_RMA>, BMRK_FN>::init_description()