/* This is the tuning used by MVAPICH for Stampede platform based on (MV2_ARCH_INTEL_XEON_E5_2680_16,
* MV2_HCA_MLX_CX_FDR) */
-/* Copyright (c) 2009-2019. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2009-2020. 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. */
int agg_table_sum = 0;
mv2_alltoall_tuning_table** table_ptrs = NULL;
mv2_alltoall_num_ppn_conf = 3;
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_alltoall_thresholds_table = new mv2_alltoall_tuning_table*[mv2_alltoall_num_ppn_conf];
table_ptrs = new mv2_alltoall_tuning_table*[mv2_alltoall_num_ppn_conf];
mv2_size_alltoall_tuning_table = new int[mv2_alltoall_num_ppn_conf];
struct mv2_allgather_tuning_table {
int numproc;
- int two_level[MV2_MAX_NB_THRESHOLDS];
+ bool two_level[MV2_MAX_NB_THRESHOLDS];
int size_inter_table;
mv2_allgather_tuning_element inter_leader[MV2_MAX_NB_THRESHOLDS];
};
{
int agg_table_sum = 0;
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_allgather_num_ppn_conf = 3;
mv2_allgather_thresholds_table = new mv2_allgather_tuning_table*[mv2_allgather_num_ppn_conf];
mv2_allgather_tuning_table** table_ptrs = new mv2_allgather_tuning_table*[mv2_allgather_num_ppn_conf];
mv2_allgather_tuning_table mv2_tmp_allgather_thresholds_table_1ppn[] = {
{
2,
- {0},
+ {false},
1,
{
{0, -1, &MPIR_Allgather_Ring_MV2},
},
{
4,
- {0, 0},
+ {false, false},
2,
{
{0, 262144, &MPIR_Allgather_RD_MV2}, {262144, -1, &MPIR_Allgather_Ring_MV2},
},
{
8,
- {0, 0},
+ {false, false},
2,
{
{0, 131072, &MPIR_Allgather_RD_MV2}, {131072, -1, &MPIR_Allgather_Ring_MV2},
},
{
16,
- {0, 0},
+ {false, false},
2,
{
{0, 131072, &MPIR_Allgather_RD_MV2}, {131072, -1, &MPIR_Allgather_Ring_MV2},
},
{
32,
- {0, 0},
+ {false, false},
2,
{
{0, 65536, &MPIR_Allgather_RD_MV2}, {65536, -1, &MPIR_Allgather_Ring_MV2},
},
{
64,
- {0, 0},
+ {false, false},
2,
{
{0, 32768, &MPIR_Allgather_RD_MV2}, {32768, -1, &MPIR_Allgather_Ring_MV2},
mv2_allgather_tuning_table mv2_tmp_allgather_thresholds_table_2ppn[] = {
{
4,
- {0, 0},
+ {false, false},
2,
{
{0, 524288, &MPIR_Allgather_RD_MV2}, {524288, -1, &MPIR_Allgather_Ring_MV2},
},
{
8,
- {0, 1, 0},
+ {false, true, false},
2,
{
{0, 32768, &MPIR_Allgather_RD_MV2},
},
{
16,
- {0, 1, 0},
+ {false, true, false},
2,
{
{0, 16384, &MPIR_Allgather_RD_MV2},
},
{
32,
- {1, 1, 0},
+ {true, true, false},
2,
{
{0, 65536, &MPIR_Allgather_RD_MV2},
},
{
64,
- {1, 1, 0},
+ {true, true, false},
2,
{
{0, 32768, &MPIR_Allgather_RD_MV2},
},
{
128,
- {1, 1, 0},
+ {true, true, false},
2,
{
{0, 65536, &MPIR_Allgather_RD_MV2},
mv2_allgather_tuning_table mv2_tmp_allgather_thresholds_table_16ppn[] = {
{
16,
- {0, 0},
+ {false, false},
2,
{
{0, 1024, &MPIR_Allgather_RD_MV2}, {1024, -1, &MPIR_Allgather_Ring_MV2},
},
{
32,
- {0, 0},
+ {false, false},
2,
{
{0, 1024, &MPIR_Allgather_RD_Allgather_Comm_MV2}, {1024, -1, &MPIR_Allgather_Ring_MV2},
},
{
64,
- {0, 0},
+ {false, false},
2,
{
{0, 1024, &MPIR_Allgather_RD_Allgather_Comm_MV2}, {1024, -1, &MPIR_Allgather_Ring_MV2},
},
{
128,
- {0, 0},
+ {false, false},
2,
{
{0, 1024, &MPIR_Allgather_RD_Allgather_Comm_MV2}, {1024, -1, &MPIR_Allgather_Ring_MV2},
},
{
256,
- {0, 0},
+ {false, false},
2,
{
{0, 1024, &MPIR_Allgather_RD_Allgather_Comm_MV2}, {1024, -1, &MPIR_Allgather_Ring_MV2},
},
{
512,
- {0, 0},
+ {false, false},
2,
{
{0, 1024, &MPIR_Allgather_RD_Allgather_Comm_MV2}, {1024, -1, &MPIR_Allgather_Ring_MV2},
static void init_mv2_gather_tables_stampede()
{
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_size_gather_tuning_table = 7;
mv2_gather_thresholds_table = new mv2_gather_tuning_table[mv2_size_gather_tuning_table];
mv2_gather_tuning_table mv2_tmp_gather_thresholds_table[] = {
static void init_mv2_allgatherv_tables_stampede()
{
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_size_allgatherv_tuning_table = 6;
mv2_allgatherv_thresholds_table = new mv2_allgatherv_tuning_table[mv2_size_allgatherv_tuning_table];
mv2_allgatherv_tuning_table mv2_tmp_allgatherv_thresholds_table[] = {
struct mv2_allreduce_tuning_table {
int numproc;
- int mcast_enabled;
- int is_two_level_allreduce[MV2_MAX_NB_THRESHOLDS];
+ bool mcast_enabled;
+ bool is_two_level_allreduce[MV2_MAX_NB_THRESHOLDS];
int size_inter_table;
mv2_allreduce_tuning_element inter_leader[MV2_MAX_NB_THRESHOLDS];
int size_intra_table;
static int MPIR_Allreduce_reduce_p2p_MV2(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
MPI_Comm comm)
{
- simgrid::smpi::Colls::reduce(sendbuf, recvbuf, count, datatype, op, 0, comm);
+ simgrid::smpi::colls::reduce(sendbuf, recvbuf, count, datatype, op, 0, comm);
return MPI_SUCCESS;
}
static int MPIR_Allreduce_reduce_shmem_MV2(const void* sendbuf, void* recvbuf, int count, MPI_Datatype datatype, MPI_Op op,
MPI_Comm comm)
{
- simgrid::smpi::Colls::reduce(sendbuf, recvbuf, count, datatype, op, 0, comm);
+ simgrid::smpi::colls::reduce(sendbuf, recvbuf, count, datatype, op, 0, comm);
return MPI_SUCCESS;
}
static void init_mv2_allreduce_tables_stampede()
{
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_size_allreduce_tuning_table = 8;
mv2_allreduce_thresholds_table = new mv2_allreduce_tuning_table[mv2_size_allreduce_tuning_table];
mv2_allreduce_tuning_table mv2_tmp_allreduce_thresholds_table[] = {
{
16,
- 0,
- {1, 0},
+ false,
+ {true, false},
2,
{
{0, 1024, &MPIR_Allreduce_pt2pt_rd_MV2}, {1024, -1, &MPIR_Allreduce_pt2pt_rs_MV2},
},
{
32,
- 0,
- {1, 1, 0},
+ false,
+ {true, true, false},
3,
{
{0, 1024, &MPIR_Allreduce_pt2pt_rd_MV2},
},
{
64,
- 0,
- {1, 1, 0},
+ false,
+ {true, true, false},
3,
{
{0, 512, &MPIR_Allreduce_pt2pt_rd_MV2},
},
{
128,
- 0,
- {1, 1, 0},
+ false,
+ {true, true, false},
3,
{
{0, 512, &MPIR_Allreduce_pt2pt_rd_MV2},
},
{
256,
- 0,
- {1, 1, 0},
+ false,
+ {true, true, false},
3,
{
{0, 512, &MPIR_Allreduce_pt2pt_rd_MV2},
},
{
512,
- 0,
- {1, 1, 0},
+ false,
+ {true, true, false},
3,
{
{0, 512, &MPIR_Allreduce_pt2pt_rd_MV2},
},
{
1024,
- 0,
- {1, 1, 1, 0},
+ false,
+ {true, true, true, false},
4,
{
{0, 512, &MPIR_Allreduce_pt2pt_rd_MV2},
},
{
2048,
- 0,
- {1, 1, 1, 0},
+ false,
+ {true, true, true, false},
4,
{
{0, 64, &MPIR_Allreduce_pt2pt_rd_MV2},
int bcast_segment_size;
int intra_node_knomial_factor;
int inter_node_knomial_factor;
- int is_two_level_bcast[MV2_MAX_NB_THRESHOLDS];
+ bool is_two_level_bcast[MV2_MAX_NB_THRESHOLDS];
int size_inter_table;
mv2_bcast_tuning_element inter_leader[MV2_MAX_NB_THRESHOLDS];
int size_intra_table;
static void init_mv2_bcast_tables_stampede()
{
// Stampede,
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_size_bcast_tuning_table = 8;
mv2_bcast_thresholds_table = new mv2_bcast_tuning_table[mv2_size_bcast_tuning_table];
8192,
4,
4,
- {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {true, true, true, true, true, true, true, true, true, true, true},
11,
{{0, 8, &MPIR_Pipelined_Bcast_Zcpy_MV2, 2},
{8, 16, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
8192,
4,
4,
- {1, 1, 1, 1, 1, 1, 1, 1},
+ {true, true, true, true, true, true, true, true},
8,
{{0, 128, &MPIR_Pipelined_Bcast_Zcpy_MV2, 2},
{128, 256, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
8192,
4,
4,
- {1, 1, 1, 1, 1, 1, 1, 1, 1},
+ {true, true, true, true, true, true, true, true, true},
9,
{{0, 2, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
{2, 4, &MPIR_Pipelined_Bcast_Zcpy_MV2, 8},
8192,
4,
4,
- {1, 1, 1, 0},
+ {true, true, true, false},
4,
{{0, 8192, &MPIR_Pipelined_Bcast_Zcpy_MV2, 8},
{8192, 16384, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
8192,
4,
4,
- {1, 1, 1, 1, 1},
+ {true, true, true, true, true},
5,
{{0, 16384, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
{16384, 131072, &MPIR_Pipelined_Bcast_Zcpy_MV2, 2},
8192,
4,
4,
- {1, 1, 1, 1, 1},
+ {true, true, true, true, true},
5,
{{0, 4096, &MPIR_Pipelined_Bcast_Zcpy_MV2, 8},
{4096, 16384, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
8192,
4,
4,
- {1, 1, 1, 1, 1},
+ {true, true, true, true, true},
5,
{{0, 8192, &MPIR_Pipelined_Bcast_Zcpy_MV2, 8},
{8192, 16384, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
8192,
4,
4,
- {1, 1, 1, 1, 1, 1, 1},
+ {true, true, true, true, true, true, true},
7,
{{0, 16, &MPIR_Pipelined_Bcast_Zcpy_MV2, 8},
{16, 32, &MPIR_Pipelined_Bcast_Zcpy_MV2, 4},
int numproc;
int inter_k_degree;
int intra_k_degree;
- int is_two_level_reduce[MV2_MAX_NB_THRESHOLDS];
+ bool is_two_level_reduce[MV2_MAX_NB_THRESHOLDS];
int size_inter_table;
mv2_reduce_tuning_element inter_leader[MV2_MAX_NB_THRESHOLDS];
int size_intra_table;
static void init_mv2_reduce_tables_stampede()
{
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
/*Stampede*/
mv2_size_reduce_tuning_table = 8;
mv2_reduce_thresholds_table = new mv2_reduce_tuning_table[mv2_size_reduce_tuning_table];
16,
4,
4,
- {1, 0, 0},
+ {true, false, false},
3,
{
{0, 262144, &MPIR_Reduce_inter_knomial_wrapper_MV2},
32,
4,
4,
- {1, 1, 1, 1, 0, 0, 0},
+ {true, true, true, true, false, false, false},
7,
{
{0, 8192, &MPIR_Reduce_inter_knomial_wrapper_MV2},
64,
4,
4,
- {1, 1, 1, 1, 0},
+ {true, true, true, true, false},
5,
{
{0, 8192, &MPIR_Reduce_inter_knomial_wrapper_MV2},
128,
4,
4,
- {1, 0, 1, 0, 1, 0},
+ {true, false, true, false, true, false},
6,
{
{0, 8192, &MPIR_Reduce_inter_knomial_wrapper_MV2},
256,
4,
4,
- {1, 1, 1, 0, 1, 1, 0},
+ {true, true, true, false, true, true, false},
7,
{
{0, 8192, &MPIR_Reduce_inter_knomial_wrapper_MV2},
512,
4,
4,
- {1, 0, 1, 1, 1, 0},
+ {true, false, true, true, true, false},
6,
{
{0, 8192, &MPIR_Reduce_inter_knomial_wrapper_MV2},
1024,
4,
4,
- {1, 0, 1, 1, 1},
+ {true, false, true, true, true},
5,
{
{0, 8192, &MPIR_Reduce_inter_knomial_wrapper_MV2},
2048,
4,
4,
- {1, 0, 1, 1, 1, 1},
+ {true, false, true, true, true, true},
6,
{
{0, 2048, &MPIR_Reduce_inter_knomial_wrapper_MV2},
static void init_mv2_reduce_scatter_tables_stampede()
{
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
mv2_size_red_scat_tuning_table = 6;
mv2_red_scat_thresholds_table = new mv2_red_scat_tuning_table[mv2_size_red_scat_tuning_table];
mv2_red_scat_tuning_table mv2_tmp_red_scat_thresholds_table[] = {
static void init_mv2_scatter_tables_stampede()
{
- if (simgrid::smpi::Colls::smpi_coll_cleanup_callback == NULL)
- simgrid::smpi::Colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
+ if (simgrid::smpi::colls::smpi_coll_cleanup_callback == NULL)
+ simgrid::smpi::colls::smpi_coll_cleanup_callback = &smpi_coll_cleanup_mvapich2;
int agg_table_sum = 0;
mv2_scatter_num_ppn_conf = 3;