From: Frederic Suter Date: Thu, 5 Dec 2019 08:14:40 +0000 (+0100) Subject: Merge branch 'master' of https://framagit.org/simgrid/simgrid X-Git-Tag: v3.25~337 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/79affec61e2c9af35fc9d5c5f34c977dde041283?hp=78cfd86352a4b7097c255e40e8eb98619d515926 Merge branch 'master' of https://framagit.org/simgrid/simgrid --- diff --git a/MANIFEST.in b/MANIFEST.in index 06f5b5d441..cd3d19a7b3 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -2455,6 +2455,7 @@ include src/smpi/include/private.hpp include src/smpi/include/smpi_actor.hpp include src/smpi/include/smpi_coll.hpp include src/smpi/include/smpi_comm.hpp +include src/smpi/include/smpi_config.hpp include src/smpi/include/smpi_datatype.hpp include src/smpi/include/smpi_datatype_derived.hpp include src/smpi/include/smpi_errhandler.hpp @@ -2473,6 +2474,7 @@ include src/smpi/include/smpi_win.hpp include src/smpi/internals/instr_smpi.cpp include src/smpi/internals/smpi_actor.cpp include src/smpi/internals/smpi_bench.cpp +include src/smpi/internals/smpi_config.cpp include src/smpi/internals/smpi_deployment.cpp include src/smpi/internals/smpi_global.cpp include src/smpi/internals/smpi_host.cpp diff --git a/examples/smpi/ampi_test/ampi_test.tesh b/examples/smpi/ampi_test/ampi_test.tesh index 79f55d93fe..0edf2a00e1 100644 --- a/examples/smpi/ampi_test/ampi_test.tesh +++ b/examples/smpi/ampi_test/ampi_test.tesh @@ -2,7 +2,7 @@ p Test if the load balancing code gets traced correctly $ rm -rf ${bindir:=.}/smpi_trace.trace ${bindir:=.}/smpi_trace.trace_files -$ ../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:${bindir:=.}/smpi_trace.trace --cfg=tracing/smpi/format/ti-one-file:yes -no-privatize -replay ${srcdir:=.}/replay/actions_bcast.txt --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/simulate-computation:no -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./ampi_test/smpi_ampi_test --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/wtime:0 +$ ../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:${bindir:=.}/smpi_trace.trace --cfg=tracing/smpi/format/ti-one-file:yes -no-privatize -replay ${srcdir:=.}/replay/actions_bcast.txt --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc --cfg=smpi/simulate-computation:no -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./ampi_test/smpi_ampi_test --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/wtime:0 $ sh -c "cat ${bindir:=.}/smpi_trace.trace_files/*" > 0 init diff --git a/examples/smpi/energy/energy.tesh b/examples/smpi/energy/energy.tesh index ce5bf0dbc3..481fd83915 100644 --- a/examples/smpi/energy/energy.tesh +++ b/examples/smpi/energy/energy.tesh @@ -1,6 +1,6 @@ p Test smpi bindings for dvfs functions (C example) -$ ${bindir:=.}/../smpi_script/bin/smpirun -np 2 -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/energy_platform.xml --cfg=smpi/simulate-computation:no ${bindir:=.}/../examples/smpi/energy/smpi_energy --cfg=plugin:host_energy --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/wtime:0 +$ ${bindir:=.}/../smpi_script/bin/smpirun -np 2 -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/energy_platform.xml --cfg=smpi/simulate-computation:no ${bindir:=.}/../examples/smpi/energy/smpi_energy --cfg=plugin:host_energy --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/wtime:0 > [0.000000] [rank 0] Pstates: 3; Powers: 100000000, 50000000, 20000000 > [0.000000] [rank 1] Pstates: 3; Powers: 100000000, 50000000, 20000000 > [0.000000] [rank 0] Current pstate: 0; Current power: 100000000 diff --git a/examples/smpi/gemm/gemm.tesh b/examples/smpi/gemm/gemm.tesh index 57466d206b..68a0d669ec 100644 --- a/examples/smpi/gemm/gemm.tesh +++ b/examples/smpi/gemm/gemm.tesh @@ -4,13 +4,13 @@ p Test instrumentation of SMPI -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/host-speed:1 -np 8 ${bindir:=.}/smpi_gemm 1000 native +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/host-speed:1 -np 8 ${bindir:=.}/smpi_gemm 1000 native > You requested to use 8 ranks, but there is only 5 processes in your hostfile... > Matrix Size : 1000x1000 > Native mode > Performance= 227.39 GFlop/s, Time= 8.795 sec, Size= 2000000000 Ops -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/host-speed:1 -np 8 ${bindir:=.}/smpi_gemm 1000 sampling +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/host-speed:1 -np 8 ${bindir:=.}/smpi_gemm 1000 sampling > You requested to use 8 ranks, but there is only 5 processes in your hostfile... > Matrix Size : 1000x1000 > Sampling mode diff --git a/examples/smpi/replay/replay-override-replayer.tesh b/examples/smpi/replay/replay-override-replayer.tesh index 1d143a78e6..2a7b050fd2 100644 --- a/examples/smpi/replay/replay-override-replayer.tesh +++ b/examples/smpi/replay/replay-override-replayer.tesh @@ -8,7 +8,7 @@ p Test of trace replay with SMPI (one trace for all processes) $ mkfile replay/one_trace_override ! timeout 60 -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.000000] [smpi_replay/VERBOSE] 0 bcast 5e4 0.000000 > [Jupiter:1:(2) 0.015036] [smpi_replay/VERBOSE] 1 bcast 5e4 0.015036 > [Fafard:2:(3) 0.015676] [smpi_replay/VERBOSE] 2 bcast 5e4 0.015676 @@ -33,7 +33,7 @@ p The same with tracing activated < replay/actions_bcast.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=no_loc --cfg=tracing:yes --cfg=tracing/smpi:yes --cfg=tracing/smpi/computing:yes --cfg=tracing/filename:./simgrid_override.trace -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=no_loc --cfg=tracing:yes --cfg=tracing/smpi:yes --cfg=tracing/smpi/computing:yes --cfg=tracing/filename:./simgrid_override.trace -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Fafard:2:(3) 19.691622] [smpi_replay/INFO] Simulation time 19.691622 # $ rm -f replay/one_trace_override @@ -214,7 +214,7 @@ p Another test of trace replay with SMPI (one trace per process) < replay/actions1.txt $ mkfile ./split_traces_tesh_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay ./split_traces_tesh_override --log=smpi_replay.thresh:verbose --log=no_loc -np 2 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay ./split_traces_tesh_override --log=smpi_replay.thresh:verbose --log=no_loc -np 2 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.167158] [smpi_replay/VERBOSE] 0 send 1 0 1e6 0.167158 > [Jupiter:1:(2) 0.167158] [smpi_replay/VERBOSE] 1 recv 0 0 1e6 0.167158 > [Jupiter:1:(2) 13.274005] [smpi_replay/VERBOSE] 1 compute 1e9 13.106847 @@ -232,7 +232,7 @@ p Test of barrier replay with SMPI (one trace for all processes) < replay/actions_barrier.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 1.518421] [smpi_replay/VERBOSE] 0 send 1 0 1e7 1.518421 > [Jupiter:1:(2) 1.518421] [smpi_replay/VERBOSE] 1 recv 0 0 1e7 1.518421 > [Tremblay:0:(1) 1.520397] [smpi_replay/VERBOSE] 0 barrier 0.001976 @@ -250,7 +250,7 @@ p Test of isend replay with SMPI (one trace for all processes) < replay/actions_with_isend.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Jupiter:1:(2) 0.000000] [smpi_replay/VERBOSE] 1 irecv 0 0 1e6 0.000000 > [Jupiter:1:(2) 6.553424] [smpi_replay/VERBOSE] 1 compute 5e8 6.553424 > [Jupiter:1:(2) 6.553524] [smpi_replay/VERBOSE] 1 test 0 1 0 0.000100 @@ -278,7 +278,7 @@ p Test of AllReduce replay with SMPI (one trace for all processes) < replay/actions_allreduce.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 5.112775] [smpi_replay/VERBOSE] 0 allreduce 5e4 5e8 5.112775 > [Jupiter:1:(2) 6.584135] [smpi_replay/VERBOSE] 1 allreduce 5e4 5e8 6.584135 > [Fafard:2:(3) 6.584775] [smpi_replay/VERBOSE] 2 allreduce 5e4 5e8 6.584775 @@ -294,7 +294,7 @@ p Test of AllToAll replay with SMPI (one trace for all processes) < replay/actions_alltoall.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.004041] [smpi_replay/VERBOSE] 0 alltoall 500 500 0.004041 > [Fafard:2:(3) 0.006920] [smpi_replay/VERBOSE] 2 alltoall 500 500 0.006920 > [Jupiter:1:(2) 0.006920] [smpi_replay/VERBOSE] 1 alltoall 500 500 0.006920 @@ -309,7 +309,7 @@ p Test of AllToAllv replay with SMPI (one trace for all processes) < replay/actions_alltoallv.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.004000] [smpi_replay/VERBOSE] 0 alltoallv 100 1 40 30 1000 1 80 100 0.004000 > [Jupiter:1:(2) 0.006935] [smpi_replay/VERBOSE] 1 alltoallv 1000 80 1 40 1000 40 1 30 0.006935 > [Fafard:2:(3) 0.006936] [smpi_replay/VERBOSE] 2 alltoallv 1000 100 30 1 1000 30 40 1 0.006936 @@ -322,7 +322,7 @@ p Test of AllGatherv replay with SMPI (one trace for all processes) < replay/actions_allgatherv.txt $ mkfile replay/one_trace_override -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 4 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 4 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 1.397261] [smpi_replay/VERBOSE] 0 allgatherv 275427 275427 275427 275427 204020 0 0 1.397261 > [Ginette:3:(4) 1.760421] [smpi_replay/VERBOSE] 3 allgatherv 204020 275427 275427 275427 204020 0 0 1.760421 > [Fafard:2:(3) 1.941986] [smpi_replay/VERBOSE] 2 allgatherv 275427 275427 275427 275427 204020 0 0 1.941986 @@ -337,7 +337,7 @@ p Test of waitall replay with SMPI (one trace for all processes) $ mkfile replay/one_trace_override ! output sort 19 -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace_override --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Fafard:2:(3) 0.000000] [smpi_replay/VERBOSE] 2 irecv 1 1 3000 0.000000 > [Fafard:2:(3) 0.000000] [smpi_replay/VERBOSE] 2 isend 0 2 3000 0.000000 > [Jupiter:1:(2) 0.000000] [smpi_replay/VERBOSE] 1 isend 0 0 2000 0.000000 diff --git a/examples/smpi/replay/replay.tesh b/examples/smpi/replay/replay.tesh index 0f3dbacfc7..da20f7b41e 100644 --- a/examples/smpi/replay/replay.tesh +++ b/examples/smpi/replay/replay.tesh @@ -8,7 +8,7 @@ p Test of trace replay with SMPI (one trace for all processes) $ mkfile replay/one_trace ! timeout 60 -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.000000] [smpi_replay/VERBOSE] 0 bcast 5e4 0.000000 > [Jupiter:1:(2) 0.015036] [smpi_replay/VERBOSE] 1 bcast 5e4 0.015036 > [Fafard:2:(3) 0.015676] [smpi_replay/VERBOSE] 2 bcast 5e4 0.015676 @@ -33,7 +33,7 @@ p The same with tracing activated < replay/actions_bcast.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=no_loc --cfg=tracing:yes --cfg=tracing/smpi:yes --cfg=tracing/smpi/computing:yes -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=no_loc --cfg=tracing:yes --cfg=tracing/smpi:yes --cfg=tracing/smpi/computing:yes -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Fafard:2:(3) 19.691622] [smpi_replay/INFO] Simulation time 19.691622 $ rm -f replay/one_trace @@ -214,7 +214,7 @@ p Another test of trace replay with SMPI (one trace per process) < replay/actions1.txt $ mkfile ./split_traces_tesh -$ ../../smpi_script/bin/smpirun -no-privatize -replay ./split_traces_tesh --log=smpi_replay.thresh:verbose --log=no_loc -np 2 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay ./split_traces_tesh --log=smpi_replay.thresh:verbose --log=no_loc -np 2 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.167158] [smpi_replay/VERBOSE] 0 send 1 0 1e6 0.167158 > [Jupiter:1:(2) 0.167158] [smpi_replay/VERBOSE] 1 recv 0 0 1e6 0.167158 > [Jupiter:1:(2) 13.274005] [smpi_replay/VERBOSE] 1 compute 1e9 13.106847 @@ -232,7 +232,7 @@ p Test of barrier replay with SMPI (one trace for all processes) < replay/actions_barrier.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 1.518421] [smpi_replay/VERBOSE] 0 send 1 0 1e7 1.518421 > [Jupiter:1:(2) 1.518421] [smpi_replay/VERBOSE] 1 recv 0 0 1e7 1.518421 > [Tremblay:0:(1) 1.520397] [smpi_replay/VERBOSE] 0 barrier 0.001976 @@ -250,7 +250,7 @@ p Test of isend replay with SMPI (one trace for all processes) < replay/actions_with_isend.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Jupiter:1:(2) 0.000000] [smpi_replay/VERBOSE] 1 irecv 0 0 1e6 0.000000 > [Jupiter:1:(2) 6.553424] [smpi_replay/VERBOSE] 1 compute 5e8 6.553424 > [Jupiter:1:(2) 6.553524] [smpi_replay/VERBOSE] 1 test 0 1 0 0.000100 @@ -278,7 +278,7 @@ p Test of AllReduce replay with SMPI (one trace for all processes) < replay/actions_allreduce.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 5.112775] [smpi_replay/VERBOSE] 0 allreduce 5e4 5e8 5.112775 > [Jupiter:1:(2) 6.584135] [smpi_replay/VERBOSE] 1 allreduce 5e4 5e8 6.584135 > [Fafard:2:(3) 6.584775] [smpi_replay/VERBOSE] 2 allreduce 5e4 5e8 6.584775 @@ -294,7 +294,7 @@ p Test of AllToAll replay with SMPI (one trace for all processes) < replay/actions_alltoall.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.004041] [smpi_replay/VERBOSE] 0 alltoall 500 500 0.004041 > [Fafard:2:(3) 0.006920] [smpi_replay/VERBOSE] 2 alltoall 500 500 0.006920 > [Jupiter:1:(2) 0.006920] [smpi_replay/VERBOSE] 1 alltoall 500 500 0.006920 @@ -309,7 +309,7 @@ p Test of AllToAllv replay with SMPI (one trace for all processes) < replay/actions_alltoallv.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.004000] [smpi_replay/VERBOSE] 0 alltoallv 100 1 40 30 1000 1 80 100 0.004000 > [Jupiter:1:(2) 0.006935] [smpi_replay/VERBOSE] 1 alltoallv 1000 80 1 40 1000 40 1 30 0.006935 > [Fafard:2:(3) 0.006936] [smpi_replay/VERBOSE] 2 alltoallv 1000 100 30 1 1000 30 40 1 0.006936 @@ -322,7 +322,7 @@ p Test of AllGatherv replay with SMPI (one trace for all processes) < replay/actions_allgatherv.txt $ mkfile replay/one_trace -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 4 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 4 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 1.397261] [smpi_replay/VERBOSE] 0 allgatherv 275427 275427 275427 275427 204020 0 0 1.397261 > [Ginette:3:(4) 1.760421] [smpi_replay/VERBOSE] 3 allgatherv 204020 275427 275427 275427 204020 0 0 1.760421 > [Fafard:2:(3) 1.941986] [smpi_replay/VERBOSE] 2 allgatherv 275427 275427 275427 275427 204020 0 0 1.941986 @@ -337,7 +337,7 @@ p Test of waitall replay with SMPI (one trace for all processes) $ mkfile replay/one_trace ! output sort 19 -$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ../../smpi_script/bin/smpirun -no-privatize -replay replay/one_trace --log=replay.thresh:critical --log=smpi_replay.thresh:verbose --log=no_loc -np 3 -platform ${srcdir:=.}/../platforms/small_platform.xml -hostfile ${srcdir:=.}/hostfile ./replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Fafard:2:(3) 0.000000] [smpi_replay/VERBOSE] 2 irecv 1 1 3000 0.000000 > [Fafard:2:(3) 0.000000] [smpi_replay/VERBOSE] 2 isend 0 2 3000 0.000000 > [Jupiter:1:(2) 0.000000] [smpi_replay/VERBOSE] 1 isend 0 0 2000 0.000000 diff --git a/examples/smpi/replay_multiple/replay_multiple.tesh b/examples/smpi/replay_multiple/replay_multiple.tesh index c1376d79c0..f48953ab54 100644 --- a/examples/smpi/replay_multiple/replay_multiple.tesh +++ b/examples/smpi/replay_multiple/replay_multiple.tesh @@ -7,7 +7,7 @@ p This test needs maxmin/concurrency-limit=100 because it starts 64 hosts on 5 m ! timeout 120 $ ./replay_multiple description_file ${srcdir:=.}/../../platforms/small_platform_with_routers.xml ${bindir:=.}/deployment.xml --log=smpi.:info --cfg=maxmin/concurrency-limit:100 > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'maxmin/concurrency-limit' to '100' -> [0.000000] [smpi_kernel/INFO] You did not set the power of the host running the simulation. The timings will certainly not be accurate. Use the option "--cfg=smpi/host-speed:" to set its value. Check https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more information. +> [0.000000] [smpi_config/INFO] You did not set the power of the host running the simulation. The timings will certainly not be accurate. Use the option "--cfg=smpi/host-speed:" to set its value. Check https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more information. > [0.000000] [msg_test/INFO] Initializing instance 1 of size 32 > [0.000000] [msg_test/INFO] Initializing instance 2 of size 32 > [Ginette:2:(34) 37298.251477] [smpi_replay/INFO] Simulation time 10442.494756 diff --git a/examples/smpi/smpi_msg_masterslave/msg_smpi.tesh b/examples/smpi/smpi_msg_masterslave/msg_smpi.tesh index 1fa33faa70..ee2b1a0ae8 100644 --- a/examples/smpi/smpi_msg_masterslave/msg_smpi.tesh +++ b/examples/smpi/smpi_msg_masterslave/msg_smpi.tesh @@ -1,7 +1,7 @@ p Test the use of SMPI+MSG in the same file, as well as several different SMPI instances at the same time $ ./masterslave_mailbox_smpi ${srcdir:=.}/../../platforms/small_platform_with_routers.xml ${srcdir:=.}/deployment_masterslave_mailbox_smpi.xml --log=smpi.:info --cfg=smpi/simulate-computation:no > [0.000000] [xbt_cfg/INFO] Configuration change: Set 'smpi/simulate-computation' to 'no' -> [0.000000] [smpi_kernel/INFO] You did not set the power of the host running the simulation. The timings will certainly not be accurate. Use the option "--cfg=smpi/host-speed:" to set its value. Check https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more information. +> [0.000000] [smpi_config/INFO] You did not set the power of the host running the simulation. The timings will certainly not be accurate. Use the option "--cfg=smpi/host-speed:" to set its value. Check https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more information. > [Tremblay:master:(1) 0.000000] [msg_test/INFO] Got 1 slaves and 20 tasks to process > [Tremblay:master:(1) 0.000000] [msg_test/INFO] Sending "Task_0" (of 20) to mailbox "slave-0" > [Ginette:master_mpi:(3) 0.000000] [msg_test/INFO] here for rank 0 diff --git a/examples/smpi/trace/trace.tesh b/examples/smpi/trace/trace.tesh index a527b6e428..01f8668314 100644 --- a/examples/smpi/trace/trace.tesh +++ b/examples/smpi/trace/trace.tesh @@ -4,7 +4,7 @@ p Test instrumentation of SMPI -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --cfg=tracing/smpi/computing:yes --cfg=smpi/simulate-computation:no --cfg=tracing/smpi/sleeping:yes -np 3 ${bindir:=.}/smpi_trace --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --cfg=tracing/smpi/computing:yes --cfg=smpi/simulate-computation:no --cfg=tracing/smpi/sleeping:yes -np 3 ${bindir:=.}/smpi_trace --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning ! output sort 19 $ tail -n +3 ${bindir:=.}/smpi_trace.trace @@ -1344,10 +1344,10 @@ $ tail -n +3 ${bindir:=.}/smpi_trace.trace > 7 11.906032 1 3 $ rm -f ${bindir:=.}/smpi_trace.trace -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-resource -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --cfg=smpi/host-speed:1 -np 3 ${bindir:=.}/smpi_trace --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-resource -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --cfg=smpi/host-speed:1 -np 3 ${bindir:=.}/smpi_trace --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning $ rm -f ${bindir:=.}/smpi_trace.trace -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace --cfg=tracing/smpi/display-sizes:yes --cfg=tracing/smpi/computing:yes --cfg=tracing/smpi/internals:yes -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --cfg=smpi/host-speed:1 -np 3 ${bindir:=.}/smpi_trace --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace --cfg=tracing/smpi/display-sizes:yes --cfg=tracing/smpi/computing:yes --cfg=tracing/smpi/internals:yes -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg --cfg=smpi/host-speed:1 -np 3 ${bindir:=.}/smpi_trace --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning $ rm -f ${bindir:=.}/smpi_trace.trace diff --git a/examples/smpi/trace_call_location/trace_call_location.tesh b/examples/smpi/trace_call_location/trace_call_location.tesh index ee161ddc1a..203453b546 100644 --- a/examples/smpi/trace_call_location/trace_call_location.tesh +++ b/examples/smpi/trace_call_location/trace_call_location.tesh @@ -4,22 +4,22 @@ p Test SMPI with call-location tracing. This means that the binary must have p already been compiled with the -trace-call-location switch. -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml --cfg=smpi/trace-call-location:1 -np 3 ${bindir:=.}/smpi_trace_call_location --cfg=smpi/trace-call-use-absolute-path:1 --cfg=smpi/host-speed:1 --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-file ${bindir:=.}/smpi_trace.trace -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml --cfg=smpi/trace-call-location:1 -np 3 ${bindir:=.}/smpi_trace_call_location --cfg=smpi/trace-call-use-absolute-path:1 --cfg=smpi/host-speed:1 --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning $ grep -q "12 0.* 2 1 7 .*trace_call_location\.c\" 14$" ${bindir:=.}/smpi_trace.trace $ rm -f ${bindir:=.}/smpi_trace.trace #the same, but with trace-ti -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti -trace-file ${bindir:=.}/smpi_trace.txt --cfg=tracing/smpi/sleeping:1 -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml --cfg=smpi/trace-call-location:1 -np 3 ${bindir:=.}/smpi_trace_call_location --cfg=smpi/host-speed:1 --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/cpu-threshold:0 +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti -trace-file ${bindir:=.}/smpi_trace.txt --cfg=tracing/smpi/sleeping:1 -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml --cfg=smpi/trace-call-location:1 -np 3 ${bindir:=.}/smpi_trace_call_location --cfg=smpi/host-speed:1 --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/cpu-threshold:0 #Test replaying the trace, without altering the time. #We disable computation, but leave the sleep. -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml -np 3 -replay ${bindir:=.}/smpi_trace.txt ${bindir:=.}/../replay/smpi_replay --cfg=smpi/host-speed:1 --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/simulate-computation:no +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml -np 3 -replay ${bindir:=.}/smpi_trace.txt ${bindir:=.}/../replay/smpi_replay --cfg=smpi/host-speed:1 --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/simulate-computation:no > [Fafard:2:(3) 1000.003952] [smpi_replay/INFO] Simulation time 1000.003952 #Test replaying the trace, altering the time to have the sleep much faster (1 instead of 1000). -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml --cfg=smpi/comp-adjustment-file:${srcdir:=.}/trace_call_location/adjust -np 3 -replay ${bindir:=.}/smpi_trace.txt ${bindir:=.}/../replay/smpi_replay --cfg=smpi/host-speed:1 --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/simulate-computation:no +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/hostfile -platform ${platfdir}/small_platform.xml --cfg=smpi/comp-adjustment-file:${srcdir:=.}/trace_call_location/adjust -np 3 -replay ${bindir:=.}/smpi_trace.txt ${bindir:=.}/../replay/smpi_replay --cfg=smpi/host-speed:1 --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/simulate-computation:no > [Fafard:2:(3) 1.003952] [smpi_replay/INFO] Simulation time 1.003952 $ rm -f ${bindir:=.}/smpi_trace.tx* diff --git a/examples/smpi/trace_simple/trace_simple.tesh b/examples/smpi/trace_simple/trace_simple.tesh index 8cc729563e..c0cd72dd7d 100644 --- a/examples/smpi/trace_simple/trace_simple.tesh +++ b/examples/smpi/trace_simple/trace_simple.tesh @@ -3,19 +3,19 @@ # Go for the first test p SMPI test -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-resource -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-resource -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning p Another SMPI test, with only -trace -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning p Testing without trace parameters -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}//smpi_trace_simple --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}//smpi_trace_simple --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning p Testing grouped tracing -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-grouped -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace -trace-grouped -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning p Testing with parameters but without activating them with the safe switch (-trace) -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-resource -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-resource -trace-file smpi_trace.trace -hostfile ${srcdir:=.}/../hostfile -platform ${platfdir:=.}/small_platform.xml --cfg=path:${srcdir:=.}/../msg -np 3 ${bindir:=.}/smpi_trace_simple --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning $ rm -f smpi_trace.trace diff --git a/include/simgrid/s4u/Mutex.hpp b/include/simgrid/s4u/Mutex.hpp index 05f49123ad..fbab117a8d 100644 --- a/include/simgrid/s4u/Mutex.hpp +++ b/include/simgrid/s4u/Mutex.hpp @@ -20,7 +20,7 @@ namespace s4u { * or pthread_mutex_t, * because it would block the whole simulation. * Instead, you should use the present class, that is a drop-in replacement of - * std::mutex. * * As for any S4U object, Mutexes are using the @ref s4u_raii "RAII idiom" for memory management. * Use create() to get a simgrid::s4u::MutexPtr to a newly created mutex and only manipulate simgrid::s4u::MutexPtr. diff --git a/src/mc/Session.cpp b/src/mc/Session.cpp index a5721e3e46..c806450f07 100644 --- a/src/mc/Session.cpp +++ b/src/mc/Session.cpp @@ -6,6 +6,7 @@ #include "src/mc/Session.hpp" #include "src/mc/checker/Checker.hpp" #include "src/mc/mc_config.hpp" +#include "src/smpi/include/smpi_config.hpp" #include "src/mc/mc_private.hpp" #include "src/mc/mc_state.hpp" #include "xbt/log.h" @@ -52,7 +53,8 @@ static void setup_child_environment(int socket) Session::Session(const std::function& code) { #if HAVE_SMPI - xbt_assert(smpi_privatize_global_variables != SmpiPrivStrategies::MMAP, + smpi_init_options();//only performed once + xbt_assert(smpi_cfg_privatization() != SmpiPrivStrategies::MMAP, "Please use the dlopen privatization schema when model-checking SMPI code"); #endif diff --git a/src/mc/checker/simgrid_mc.cpp b/src/mc/checker/simgrid_mc.cpp index 6e91f110ed..b3341496a4 100644 --- a/src/mc/checker/simgrid_mc.cpp +++ b/src/mc/checker/simgrid_mc.cpp @@ -5,6 +5,7 @@ * under the terms of the license (GNU LGPL) which comes with this package. */ #include "simgrid/sg_config.hpp" +#include "src/smpi/include/smpi_config.hpp" #include "src/mc/Session.hpp" #include "src/mc/checker/Checker.hpp" #include "src/mc/mc_config.hpp" @@ -46,8 +47,10 @@ int main(int argc, char** argv) // value to the model-checked: char** argv_copy = argvdup(argc, argv); xbt_log_init(&argc, argv); +#ifdef HAVE_SMPI + smpi_init_options();//only performed once +#endif sg_config_init(&argc, argv); - simgrid::mc::session = new simgrid::mc::Session([argv_copy] { execvp(argv_copy[1], argv_copy + 1); }); delete[] argv_copy; diff --git a/src/simgrid/sg_config.cpp b/src/simgrid/sg_config.cpp index 11bd7dd3bb..99640f5560 100644 --- a/src/simgrid/sg_config.cpp +++ b/src/simgrid/sg_config.cpp @@ -13,6 +13,7 @@ #include "src/kernel/lmm/maxmin.hpp" #include "src/mc/mc_config.hpp" #include "src/mc/mc_replay.hpp" +#include "src/smpi/include/smpi_config.hpp" #include "src/surf/surf_interface.hpp" #include "surf/surf.hpp" #include "xbt/config.hpp" @@ -366,111 +367,6 @@ void sg_config_init(int *argc, char **argv) "contention (default value based on Stampede cluster profiling)", "0.965;0.925;1.35"); simgrid::config::alias("smpi/IB-penalty-factors", {"smpi/IB_penalty_factors"}); - -#if HAVE_SMPI - simgrid::config::declare_flag("smpi/host-speed", "Speed of the host running the simulation (in flop/s). " - "Used to bench the operations.", - 20000.0, [](const double& val) { - xbt_assert(val > 0.0, "Invalid value (%f) for 'smpi/host-speed': it must be positive.", val); - }); - simgrid::config::alias("smpi/host-speed", {"smpi/running_power", "smpi/running-power"}); - - simgrid::config::declare_flag("smpi/keep-temps", "Whether we should keep the generated temporary files.", - false); - - simgrid::config::declare_flag("smpi/display-timing", "Whether we should display the timing after simulation.", - false); - simgrid::config::alias("smpi/display-timing", {"smpi/display_timing"}); - - simgrid::config::declare_flag( - "smpi/simulate-computation", "Whether the computational part of the simulated application should be simulated.", - true); - simgrid::config::alias("smpi/simulate-computation", {"smpi/simulate_computation"}); - - simgrid::config::declare_flag( - "smpi/shared-malloc", "Whether SMPI_SHARED_MALLOC is enabled. Disable it for debugging purposes.", "global"); - simgrid::config::alias("smpi/shared-malloc", {"smpi/use_shared_malloc", "smpi/use-shared-malloc"}); - simgrid::config::declare_flag("smpi/shared-malloc-blocksize", - "Size of the bogus file which will be created for global shared allocations", - 1UL << 20); - simgrid::config::declare_flag("smpi/auto-shared-malloc-thresh", - "Threshold size for the automatic sharing of memory", - 0); - - simgrid::config::declare_flag("smpi/shared-malloc-hugepage", - "Path to a mounted hugetlbfs, to use huge pages with shared malloc.", ""); - - simgrid::config::declare_flag( - "smpi/cpu-threshold", "Minimal computation time (in seconds) not discarded, or -1 for infinity.", 1e-6); - simgrid::config::alias("smpi/cpu-threshold", {"smpi/cpu_threshold"}); - - simgrid::config::declare_flag( - "smpi/async-small-thresh", - "Maximal size of messages that are to be sent asynchronously, without waiting for the receiver", 0); - simgrid::config::alias("smpi/async-small-thresh", {"smpi/async_small_thres", "smpi/async_small_thresh"}); - - simgrid::config::declare_flag("smpi/trace-call-location", - "Should filename and linenumber of MPI calls be traced?", false); - simgrid::config::declare_flag("smpi/trace-call-use-absolute-path", - "Should filenames for trace-call tracing be absolute or not?", false); - simgrid::config::declare_flag( - "smpi/send-is-detached-thresh", - "Threshold of message size where MPI_Send stops behaving like MPI_Isend and becomes MPI_Ssend", 65536); - simgrid::config::alias("smpi/send-is-detached-thresh", - {"smpi/send_is_detached_thres", "smpi/send_is_detached_thresh"}); - - const char* default_privatization = std::getenv("SMPI_PRIVATIZATION"); - if (default_privatization == nullptr) - default_privatization = "no"; - - simgrid::config::declare_flag( - "smpi/privatization", "How we should privatize global variable at runtime (no, yes, mmap, dlopen).", - default_privatization); - simgrid::config::alias("smpi/privatization", {"smpi/privatize_global_variables", "smpi/privatize-global-variables"}); - - simgrid::config::declare_flag( - "smpi/privatize-libs", "Add libraries (; separated) to privatize (libgfortran for example). You need to provide the full names of the files (libgfortran.so.4), or its full path", ""); - - simgrid::config::declare_flag("smpi/grow-injected-times", - "Whether we want to make the injected time in MPI_Iprobe and MPI_Test grow, to " - "allow faster simulation. This can make simulation less precise, though.", - true); - -#if HAVE_PAPI - simgrid::config::declare_flag("smpi/papi-events", - "This switch enables tracking the specified counters with PAPI", ""); -#endif - simgrid::config::declare_flag("smpi/comp-adjustment-file", - "A file containing speedups or slowdowns for some parts of the code.", ""); - simgrid::config::declare_flag( - "smpi/os", "Small messages timings (MPI_Send minimum time for small messages)", "0:0:0:0:0"); - simgrid::config::declare_flag( - "smpi/ois", "Small messages timings (MPI_Isend minimum time for small messages)", "0:0:0:0:0"); - simgrid::config::declare_flag( - "smpi/or", "Small messages timings (MPI_Recv minimum time for small messages)", "0:0:0:0:0"); - - simgrid::config::declare_flag("smpi/iprobe-cpu-usage", - "Maximum usage of CPUs by MPI_Iprobe() calls. We've observed that MPI_Iprobes " - "consume significantly less power than the maximum of a specific application. " - "This value is then (Iprobe_Usage/Max_Application_Usage).", - 1.0); - - simgrid::config::declare_flag("smpi/coll-selector", "Which collective selector to use", "default"); - simgrid::config::alias("smpi/coll-selector", {"smpi/coll_selector"}); - simgrid::config::declare_flag("smpi/gather", "Which collective to use for gather", ""); - simgrid::config::declare_flag("smpi/allgather", "Which collective to use for allgather", ""); - simgrid::config::declare_flag("smpi/barrier", "Which collective to use for barrier", ""); - simgrid::config::declare_flag("smpi/reduce_scatter", "Which collective to use for reduce_scatter", ""); - simgrid::config::alias("smpi/reduce_scatter", {"smpi/reduce-scatter"}); - simgrid::config::declare_flag("smpi/scatter", "Which collective to use for scatter", ""); - simgrid::config::declare_flag("smpi/allgatherv", "Which collective to use for allgatherv", ""); - simgrid::config::declare_flag("smpi/allreduce", "Which collective to use for allreduce", ""); - simgrid::config::declare_flag("smpi/alltoall", "Which collective to use for alltoall", ""); - simgrid::config::declare_flag("smpi/alltoallv", "Which collective to use for alltoallv", ""); - simgrid::config::declare_flag("smpi/bcast", "Which collective to use for bcast", ""); - simgrid::config::declare_flag("smpi/reduce", "Which collective to use for reduce", ""); -#endif // HAVE_SMPI - /* Others */ simgrid::config::declare_flag( diff --git a/src/simix/smx_context.cpp b/src/simix/smx_context.cpp index 31d2aa2ffb..519bd46491 100644 --- a/src/simix/smx_context.cpp +++ b/src/simix/smx_context.cpp @@ -7,6 +7,7 @@ #include "src/internal_config.h" #include "src/simix/smx_private.hpp" +#include "src/smpi/include/smpi_config.hpp" #include "xbt/config.hpp" #include @@ -60,6 +61,7 @@ void SIMIX_context_mod_init() xbt_assert(simix_global->context_factory == nullptr); #if HAVE_SMPI && (defined(__APPLE__) || defined(__NetBSD__)) + smpi_init_options(); std::string priv = simgrid::config::get_value("smpi/privatization"); if (context_factory_name == "thread" && (priv == "dlopen" || priv == "yes" || priv == "default" || priv == "1")) { XBT_WARN("dlopen+thread broken on Apple and BSD. Switching to raw contexts."); @@ -68,6 +70,7 @@ void SIMIX_context_mod_init() #endif #if HAVE_SMPI && defined(__FreeBSD__) + smpi_init_options(); if (context_factory_name == "thread" && simgrid::config::get_value("smpi/privatization") != "no") { XBT_WARN("mmap broken on FreeBSD, but dlopen+thread broken too. Switching to dlopen+raw contexts."); context_factory_name = "raw"; diff --git a/src/simix/smx_global.cpp b/src/simix/smx_global.cpp index 916eecae49..48b3dca1b1 100644 --- a/src/simix/smx_global.cpp +++ b/src/simix/smx_global.cpp @@ -72,7 +72,7 @@ static void segvhandler(int signum, siginfo_t* siginfo, void* /*context*/) } else if (siginfo->si_signo == SIGSEGV) { fprintf(stderr, "Segmentation fault.\n"); #if HAVE_SMPI - if (smpi_enabled() && smpi_privatize_global_variables == SmpiPrivStrategies::NONE) { + if (smpi_enabled() && smpi_cfg_privatization() == SmpiPrivStrategies::NONE) { #if HAVE_PRIVATIZATION fprintf(stderr, "Try to enable SMPI variable privatization with --cfg=smpi/privatization:yes.\n"); #else diff --git a/src/smpi/include/private.hpp b/src/smpi/include/private.hpp index ca7e3abdf8..001d71dc11 100644 --- a/src/smpi/include/private.hpp +++ b/src/smpi/include/private.hpp @@ -93,15 +93,28 @@ XBT_PRIVATE int smpi_enabled(); XBT_PRIVATE double smpi_mpi_wtime(); XBT_PRIVATE void smpi_mpi_init(); +enum class SharedMallocType { NONE, LOCAL, GLOBAL }; +enum class SmpiPrivStrategies { NONE = 0, MMAP = 1, DLOPEN = 2, DEFAULT = DLOPEN }; + +XBT_PRIVATE double smpi_cfg_host_speed(); +XBT_PRIVATE bool smpi_cfg_simulate_computation(); +XBT_PRIVATE SharedMallocType smpi_cfg_shared_malloc(); +XBT_PRIVATE double smpi_cfg_cpu_thresh(); +XBT_PRIVATE SmpiPrivStrategies smpi_cfg_privatization(); +XBT_PRIVATE int smpi_cfg_async_small_thresh(); +XBT_PRIVATE int smpi_cfg_detached_send_thresh(); +XBT_PRIVATE bool smpi_cfg_grow_injected_times(); +XBT_PRIVATE double smpi_cfg_iprobe_cpu_usage(); +XBT_PRIVATE bool smpi_cfg_trace_call_location(); +XBT_PRIVATE bool smpi_cfg_trace_call_use_absolute_path(); +XBT_PRIVATE std::string smpi_cfg_comp_adjustment_file(); +XBT_PRIVATE std::string smpi_cfg_papi_events_file(); +XBT_PRIVATE double smpi_cfg_auto_shared_malloc_thresh(); + // utilities -extern XBT_PRIVATE double smpi_cpu_threshold; -extern XBT_PRIVATE double smpi_host_speed; extern XBT_PRIVATE char* smpi_data_exe_start; // start of the data+bss segment of the executable extern XBT_PRIVATE int smpi_data_exe_size; // size of the data+bss segment of the executable -enum class SharedMallocType { NONE, LOCAL, GLOBAL }; -extern XBT_PRIVATE SharedMallocType smpi_cfg_shared_malloc; // Whether to activate shared malloc - XBT_PRIVATE void smpi_switch_data_segment(simgrid::s4u::ActorPtr actor); XBT_PRIVATE void smpi_prepare_global_memory_segment(); @@ -480,10 +493,6 @@ extern std::unordered_map location2speedup; /** @brief Returns the last call location (filename, linenumber). Process-specific. */ XBT_PUBLIC smpi_trace_call_location_t* smpi_trace_get_call_location(); -enum class SmpiPrivStrategies { NONE = 0, MMAP = 1, DLOPEN = 2, DEFAULT = DLOPEN }; - -extern XBT_PRIVATE SmpiPrivStrategies smpi_privatize_global_variables; - XBT_PRIVATE void private_execute_flops(double flops); #endif diff --git a/src/smpi/include/smpi_config.hpp b/src/smpi/include/smpi_config.hpp new file mode 100644 index 0000000000..512816f47d --- /dev/null +++ b/src/smpi/include/smpi_config.hpp @@ -0,0 +1,29 @@ +/* Copyright (c) 2018-2019. 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. */ + +#ifndef SMPI_CONFIG_HPP +#define SMPI_CONFIG_HPP + +#include +XBT_PUBLIC void smpi_init_options(); +XBT_PRIVATE void smpi_check_options(); +/********************************** Configuration of SMPI **************************************/ +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_host_speed; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_simulate_computation; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_shared_malloc_string; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_cpu_thresh; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_privatization_string; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_async_small_thresh; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_detached_send_thresh; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_grow_injected_times; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_iprobe_cpu_usage; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_trace_call_use_absolute_path; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_trace_call_location; +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_comp_adjustment_file; +#if HAVE_PAPI +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_papi_events_file; +#endif +extern XBT_PRIVATE simgrid::config::Flag _smpi_cfg_auto_shared_malloc_thresh; +#endif diff --git a/src/smpi/internals/smpi_actor.cpp b/src/smpi/internals/smpi_actor.cpp index eae424428b..da0e96cf22 100644 --- a/src/smpi/internals/smpi_actor.cpp +++ b/src/smpi/internals/smpi_actor.cpp @@ -36,7 +36,7 @@ ActorExt::ActorExt(s4u::Actor* actor) : actor_(actor) MC_ignore_heap(timer_, xbt_os_timer_size()); #if HAVE_PAPI - if (not simgrid::config::get_value("smpi/papi-events").empty()) { + if (not smpi_cfg_papi_events_file().empty()) { // TODO: Implement host/process/thread based counters. This implementation // just always takes the values passed via "default", like this: // "default:COUNTER1:COUNTER2:COUNTER3;". @@ -221,7 +221,7 @@ void ActorExt::init() if (ext->initialized()) return; - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { /* Now using the segment index of this process */ ext->set_privatized_region(smpi_init_global_memory_segment_process()); /* Done at the process's creation */ diff --git a/src/smpi/internals/smpi_bench.cpp b/src/smpi/internals/smpi_bench.cpp index 6380f77897..6c326faa93 100644 --- a/src/smpi/internals/smpi_bench.cpp +++ b/src/smpi/internals/smpi_bench.cpp @@ -33,10 +33,6 @@ static simgrid::config::Flag "Minimum time to inject inside a call to MPI_Wtime(), gettimeofday() and clock_gettime()", 1e-8 /* Documented to be 10 ns */); -double smpi_cpu_threshold = -1; -double smpi_host_speed; - -SharedMallocType smpi_cfg_shared_malloc = SharedMallocType::GLOBAL; double smpi_total_benched_time = 0; // Private execute_flops used by smpi_execute and smpi_execute_benched @@ -62,9 +58,9 @@ void smpi_execute_flops(double flops) { void smpi_execute(double duration) { - if (duration >= smpi_cpu_threshold) { + if (duration >= smpi_cfg_cpu_thresh()) { XBT_DEBUG("Sleep for %g to handle real computation time", duration); - double flops = duration * smpi_host_speed; + double flops = duration * smpi_cfg_host_speed(); int rank = simgrid::s4u::this_actor::get_pid(); TRACE_smpi_computing_in(rank, flops); @@ -74,7 +70,7 @@ void smpi_execute(double duration) } else { XBT_DEBUG("Real computation took %g while option smpi/cpu-threshold is set to %g => ignore it", duration, - smpi_cpu_threshold); + smpi_cfg_cpu_thresh()); } } @@ -88,7 +84,7 @@ void smpi_execute_benched(double duration) void smpi_bench_begin() { - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { smpi_switch_data_segment(simgrid::s4u::Actor::self()); } @@ -96,7 +92,7 @@ void smpi_bench_begin() return; #if HAVE_PAPI - if (not simgrid::config::get_value("smpi/papi-events").empty()) { + if (not smpi_cfg_papi_events_file().empty()) { int event_set = smpi_process()->papi_event_set(); // PAPI_start sets everything to 0! See man(3) PAPI_start if (PAPI_LOW_LEVEL_INITED == PAPI_is_initialized() && PAPI_start(event_set) != PAPI_OK) { @@ -111,7 +107,7 @@ void smpi_bench_begin() double smpi_adjust_comp_speed(){ double speedup=1; - if (simgrid::config::get_value("smpi/comp-adjustment-file")[0] != '\0') { + if (smpi_cfg_comp_adjustment_file()[0] != '\0') { smpi_trace_call_location_t* loc = smpi_process()->call_location(); std::string key = loc->get_composed_key(); @@ -136,7 +132,7 @@ void smpi_bench_end() * An MPI function has been called and now is the right time to update * our PAPI counters for this process. */ - if (not simgrid::config::get_value("smpi/papi-events").empty()) { + if (not smpi_cfg_papi_events_file().empty()) { papi_counter_t& counter_data = smpi_process()->papi_counters(); int event_set = smpi_process()->papi_event_set(); std::vector event_values = std::vector(counter_data.size()); @@ -161,12 +157,12 @@ void smpi_bench_end() // Maybe we need to artificially speed up or slow down our computation based on our statistical analysis. // Simulate the benchmarked computation unless disabled via command-line argument - if (simgrid::config::get_value("smpi/simulate-computation")) { + if (smpi_cfg_simulate_computation()) { smpi_execute(xbt_os_timer_elapsed(timer)/smpi_adjust_comp_speed()); } #if HAVE_PAPI - if (not simgrid::config::get_value("smpi/papi-events").empty() && TRACE_smpi_is_enabled()) { + if (not smpi_cfg_papi_events_file().empty() && TRACE_smpi_is_enabled()) { container_t container = simgrid::instr::Container::by_name(std::string("rank-") + std::to_string(simgrid::s4u::this_actor::get_pid())); papi_counter_t& counter_data = smpi_process()->papi_counters(); @@ -471,7 +467,7 @@ void smpi_trace_set_call_location(const char* file, const int line) loc->previous_filename = loc->filename; loc->previous_linenumber = loc->linenumber; - if(not simgrid::config::get_value("smpi/trace-call-use-absolute-path")) + if(not smpi_cfg_trace_call_use_absolute_path()) loc->filename = simgrid::xbt::Path(file).get_base_name(); else loc->filename = file; diff --git a/src/smpi/internals/smpi_config.cpp b/src/smpi/internals/smpi_config.cpp new file mode 100644 index 0000000000..2c2a4d2086 --- /dev/null +++ b/src/smpi/internals/smpi_config.cpp @@ -0,0 +1,282 @@ +/* Copyright (c) 2008-2019. 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. */ +#include "mc/mc.h" +#include "include/xbt/config.hpp" +#include "private.hpp" +#include "smpi_coll.hpp" +#include "smpi_config.hpp" +#include "src/simix/smx_private.hpp" +#include /* DBL_MAX */ +#include /* trim */ +#include + +#if SIMGRID_HAVE_MC +#include "src/mc/mc_config.hpp" +#endif + +#if defined(__APPLE__) +# include +# ifndef MAC_OS_X_VERSION_10_12 +# define MAC_OS_X_VERSION_10_12 101200 +# endif +constexpr bool HAVE_WORKING_MMAP = (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12); +#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun) || defined(__HAIKU__) +constexpr bool HAVE_WORKING_MMAP = false; +#else +constexpr bool HAVE_WORKING_MMAP = true; +#endif + +bool _smpi_options_initialized=false; +SharedMallocType _smpi_cfg_shared_malloc = SharedMallocType::GLOBAL; +SmpiPrivStrategies _smpi_cfg_privatization = SmpiPrivStrategies::NONE; + +XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_config, smpi, "Logging specific to SMPI (config)"); + +simgrid::config::Flag _smpi_cfg_host_speed{ + "smpi/host-speed", "Speed of the host running the simulation (in flop/s). " + "Used to bench the operations.", 20000.0, + [](const double& val) { xbt_assert(val > 0.0, "Invalid value (%f) for 'smpi/host-speed': it must be positive.", val); }}; + +simgrid::config::Flag _smpi_cfg_simulate_computation{ + "smpi/simulate-computation", "Whether the computational part of the simulated application should be simulated.", + true}; +simgrid::config::Flag _smpi_cfg_shared_malloc_string{ + "smpi/shared-malloc", "Whether SMPI_SHARED_MALLOC is enabled. Disable it for debugging purposes.", "global", + [](const std::string& val) { + if ((val == "yes") || (val == "1") || (val == "on") || (val == "global")) { + _smpi_cfg_shared_malloc = SharedMallocType::GLOBAL; + } else if (val == "local") { + _smpi_cfg_shared_malloc = SharedMallocType::LOCAL; + } else if ((val == "no") || (val == "0") || (val == "off")) { + _smpi_cfg_shared_malloc = SharedMallocType::NONE; + } else { + xbt_die("Invalid value '%s' for option smpi/shared-malloc. Possible values: 'on' or 'global', 'local', 'off'", + val.c_str()); + } + } }; + +simgrid::config::Flag _smpi_cfg_cpu_threshold{ + "smpi/cpu-threshold", "Minimal computation time (in seconds) not discarded, or -1 for infinity.", 1e-6, + [](const double& val){ + if (val < 0) + _smpi_cfg_cpu_threshold = DBL_MAX; + }}; + +simgrid::config::Flag _smpi_cfg_async_small_thresh{"smpi/async-small-thresh", + "Maximal size of messages that are to be sent asynchronously, without waiting for the receiver", + 0}; +simgrid::config::Flag _smpi_cfg_detached_send_thresh{"smpi/send-is-detached-thresh", + "Threshold of message size where MPI_Send stops behaving like MPI_Isend and becomes MPI_Ssend", + 65536}; +simgrid::config::Flag _smpi_cfg_grow_injected_times{"smpi/grow-injected-times", + "Whether we want to make the injected time in MPI_Iprobe and MPI_Test grow, to " + "allow faster simulation. This can make simulation less precise, though.", + true}; +simgrid::config::Flag _smpi_cfg_iprobe_cpu_usage{"smpi/iprobe-cpu-usage", + "Maximum usage of CPUs by MPI_Iprobe() calls. We've observed that MPI_Iprobes " + "consume significantly less power than the maximum of a specific application. " + "This value is then (Iprobe_Usage/Max_Application_Usage).", + 1.0}; + +simgrid::config::Flag _smpi_cfg_trace_call_location{"smpi/trace-call-location", + "Should filename and linenumber of MPI calls be traced?", false}; +simgrid::config::Flag _smpi_cfg_trace_call_use_absolute_path{"smpi/trace-call-use-absolute-path", + "Should filenames for trace-call tracing be absolute or not?", false}; +simgrid::config::Flag _smpi_cfg_comp_adjustment_file{"smpi/comp-adjustment-file", + "A file containing speedups or slowdowns for some parts of the code.", + "", [](const std::string& filename){ + if (not filename.empty()) { + std::ifstream fstream(filename); + xbt_assert(fstream.is_open(), "Could not open file %s. Does it exist?", filename.c_str()); + std::string line; + typedef boost::tokenizer> Tokenizer; + std::getline(fstream, line); // Skip the header line + while (std::getline(fstream, line)) { + Tokenizer tok(line); + Tokenizer::iterator it = tok.begin(); + Tokenizer::iterator end = std::next(tok.begin()); + std::string location = *it; + boost::trim(location); + location2speedup.insert(std::pair(location, std::stod(*end))); + } + } + }}; + +#if HAVE_PAPI + simgrid::config::Flag _smpi_cfg_papi_events_file{"smpi/papi-events", + "This switch enables tracking the specified counters with PAPI", ""}; +#endif + +simgrid::config::Flag _smpi_cfg_auto_shared_malloc_thresh("smpi/auto-shared-malloc-thresh", + "Threshold size for the automatic sharing of memory", + 0); + +double smpi_cfg_host_speed(){ + return _smpi_cfg_host_speed; +} + +bool smpi_cfg_simulate_computation(){ + return _smpi_cfg_simulate_computation; +} + +SharedMallocType smpi_cfg_shared_malloc(){ + return _smpi_cfg_shared_malloc; +} + +double smpi_cfg_cpu_thresh(){ + return _smpi_cfg_cpu_threshold; +} + +SmpiPrivStrategies smpi_cfg_privatization(){ + return _smpi_cfg_privatization; +} + +int smpi_cfg_async_small_thresh(){ + return _smpi_cfg_async_small_thresh; +} + +int smpi_cfg_detached_send_thresh(){ + return _smpi_cfg_detached_send_thresh; +} + +bool smpi_cfg_grow_injected_times(){ + return _smpi_cfg_grow_injected_times; +} + +double smpi_cfg_iprobe_cpu_usage(){ + return _smpi_cfg_iprobe_cpu_usage; +} + +bool smpi_cfg_trace_call_location(){ + return _smpi_cfg_trace_call_location; +} + +bool smpi_cfg_trace_call_use_absolute_path(){ + return _smpi_cfg_trace_call_use_absolute_path; +} + +std::string smpi_cfg_comp_adjustment_file(){ + return _smpi_cfg_comp_adjustment_file; +} +#if HAVE_PAPI +std::string smpi_cfg_papi_events_file(){ + return _smpi_cfg_papi_events_file; +} +#endif +double smpi_cfg_auto_shared_malloc_thresh(){ + return _smpi_cfg_auto_shared_malloc_thresh; +} + +void smpi_init_options(){ + // return if already called + if(_smpi_options_initialized) + return; + simgrid::config::declare_flag("smpi/display-timing", "Whether we should display the timing after simulation.", false); + simgrid::config::declare_flag("smpi/keep-temps", "Whether we should keep the generated temporary files.", false); + + simgrid::config::declare_flag("smpi/coll-selector", "Which collective selector to use", "default"); + simgrid::config::declare_flag("smpi/gather", "Which collective to use for gather", ""); + simgrid::config::declare_flag("smpi/allgather", "Which collective to use for allgather", ""); + simgrid::config::declare_flag("smpi/barrier", "Which collective to use for barrier", ""); + simgrid::config::declare_flag("smpi/reduce_scatter", "Which collective to use for reduce_scatter", ""); + simgrid::config::declare_flag("smpi/scatter", "Which collective to use for scatter", ""); + simgrid::config::declare_flag("smpi/allgatherv", "Which collective to use for allgatherv", ""); + simgrid::config::declare_flag("smpi/allreduce", "Which collective to use for allreduce", ""); + simgrid::config::declare_flag("smpi/alltoall", "Which collective to use for alltoall", ""); + simgrid::config::declare_flag("smpi/alltoallv", "Which collective to use for alltoallv", ""); + simgrid::config::declare_flag("smpi/bcast", "Which collective to use for bcast", ""); + simgrid::config::declare_flag("smpi/reduce", "Which collective to use for reduce", ""); + + const char* default_privatization = std::getenv("SMPI_PRIVATIZATION"); + if (default_privatization == nullptr) + default_privatization = "no"; + + + simgrid::config::declare_flag( "smpi/privatization", + "How we should privatize global variable at runtime (no, yes, mmap, dlopen).", + default_privatization, [](const std::string& smpi_privatize_option){ + if (smpi_privatize_option == "no" || smpi_privatize_option == "0") + _smpi_cfg_privatization = SmpiPrivStrategies::NONE; + else if (smpi_privatize_option == "yes" || smpi_privatize_option == "1") + _smpi_cfg_privatization = SmpiPrivStrategies::DEFAULT; + else if (smpi_privatize_option == "mmap") + _smpi_cfg_privatization = SmpiPrivStrategies::MMAP; + else if (smpi_privatize_option == "dlopen") + _smpi_cfg_privatization = SmpiPrivStrategies::DLOPEN; + else + xbt_die("Invalid value for smpi/privatization: '%s'", smpi_privatize_option.c_str()); + + if (not SMPI_switch_data_segment) { + XBT_DEBUG("Running without smpi_main(); disable smpi/privatization."); + _smpi_cfg_privatization = SmpiPrivStrategies::NONE; + } + if (not HAVE_WORKING_MMAP && _smpi_cfg_privatization == SmpiPrivStrategies::MMAP) { + XBT_INFO("mmap privatization is broken on this platform, switching to dlopen privatization instead."); + _smpi_cfg_privatization = SmpiPrivStrategies::DLOPEN; + } + }); + + simgrid::config::declare_flag("smpi/privatize-libs", + "Add libraries (; separated) to privatize (libgfortran for example)." + "You need to provide the full names of the files (libgfortran.so.4), or its full path", + ""); + simgrid::config::declare_flag("smpi/shared-malloc-blocksize", + "Size of the bogus file which will be created for global shared allocations", + 1UL << 20); + simgrid::config::declare_flag("smpi/shared-malloc-hugepage", + "Path to a mounted hugetlbfs, to use huge pages with shared malloc.", + ""); + + simgrid::config::declare_flag( + "smpi/os", "Small messages timings (MPI_Send minimum time for small messages)", "0:0:0:0:0"); + simgrid::config::declare_flag( + "smpi/ois", "Small messages timings (MPI_Isend minimum time for small messages)", "0:0:0:0:0"); + simgrid::config::declare_flag( + "smpi/or", "Small messages timings (MPI_Recv minimum time for small messages)", "0:0:0:0:0"); + simgrid::config::alias("smpi/display-timing", {"smpi/display_timing"}); + simgrid::config::alias("smpi/coll-selector", {"smpi/coll_selector"}); + simgrid::config::alias("smpi/simulate-computation", {"smpi/simulate_computation"}); + simgrid::config::alias("smpi/shared-malloc", {"smpi/use_shared_malloc", "smpi/use-shared-malloc"}); + simgrid::config::alias("smpi/host-speed", {"smpi/running_power", "smpi/running-power"}); + simgrid::config::alias("smpi/cpu-threshold", {"smpi/cpu_threshold"}); + simgrid::config::alias("smpi/async-small-thresh", {"smpi/async_small_thres", "smpi/async_small_thresh"}); + simgrid::config::alias("smpi/send-is-detached-thresh", {"smpi/send_is_detached_thres", "smpi/send_is_detached_thresh"}); + simgrid::config::alias("smpi/privatization", {"smpi/privatize_global_variables", "smpi/privatize-global-variables"}); + simgrid::config::alias("smpi/reduce_scatter", {"smpi/reduce-scatter"}); + _smpi_options_initialized=true; + +} + +void smpi_check_options() +{ +#if SIMGRID_HAVE_MC + if (MC_is_active()) { + if (_sg_mc_buffering == "zero") + simgrid::config::set_value("smpi/send-is-detached-thresh", 0); + else if (_sg_mc_buffering == "infty") + simgrid::config::set_value("smpi/send-is-detached-thresh", INT_MAX); + else + THROW_IMPOSSIBLE; + } +#endif + + xbt_assert(smpi_cfg_async_small_thresh() <= smpi_cfg_detached_send_thresh(), + "smpi/async-small-thresh (=%d) should be smaller or equal to smpi/send-is-detached-thresh (=%d)", + smpi_cfg_async_small_thresh(), + smpi_cfg_detached_send_thresh()); + + if (simgrid::config::is_default("smpi/host-speed") && not MC_is_active()) { + XBT_INFO("You did not set the power of the host running the simulation. " + "The timings will certainly not be accurate. " + "Use the option \"--cfg=smpi/host-speed:\" to set its value. " + "Check " + "https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more " + "information."); + } + + simgrid::smpi::colls::set_collectives(); + simgrid::smpi::colls::smpi_coll_cleanup_callback = nullptr; +} + diff --git a/src/smpi/internals/smpi_global.cpp b/src/smpi/internals/smpi_global.cpp index a2d7e50918..6013aa6861 100644 --- a/src/smpi/internals/smpi_global.cpp +++ b/src/smpi/internals/smpi_global.cpp @@ -9,15 +9,15 @@ #include "smpi_coll.hpp" #include "smpi_f2c.hpp" #include "smpi_host.hpp" +#include "smpi_config.hpp" #include "src/kernel/activity/CommImpl.hpp" #include "src/simix/smx_private.hpp" #include "src/smpi/include/smpi_actor.hpp" #include "xbt/config.hpp" #include -#include /* trim_right / trim_left */ +#include /* split */ #include -#include /* DBL_MAX */ #include #include /* intmax_t */ #include @@ -25,10 +25,6 @@ #include #include -#if SIMGRID_HAVE_MC -#include "src/mc/mc_config.hpp" -#endif - #if SG_HAVE_SENDFILE #include #endif @@ -41,18 +37,6 @@ #include #endif -#if defined(__APPLE__) -# include -# ifndef MAC_OS_X_VERSION_10_12 -# define MAC_OS_X_VERSION_10_12 101200 -# endif -constexpr bool HAVE_WORKING_MMAP = (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_12); -#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__sun) || defined(__HAIKU__) -constexpr bool HAVE_WORKING_MMAP = false; -#else -constexpr bool HAVE_WORKING_MMAP = true; -#endif - XBT_LOG_NEW_DEFAULT_SUBCATEGORY(smpi_kernel, smpi, "Logging specific to SMPI (kernel)"); #if SMPI_IFORT @@ -206,7 +190,7 @@ void smpi_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, v auto private_blocks = merge_private_blocks(src_private_blocks, dst_private_blocks); check_blocks(private_blocks, buff_size); void* tmpbuff=buff; - if ((smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) && + if ((smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) && (static_cast(buff) >= smpi_data_exe_start) && (static_cast(buff) < smpi_data_exe_start + smpi_data_exe_size)) { XBT_DEBUG("Privatization : We are copying from a zone inside global memory... Saving data to temp buffer !"); @@ -215,7 +199,7 @@ void smpi_comm_copy_buffer_callback(simgrid::kernel::activity::CommImpl* comm, v memcpy_private(tmpbuff, buff, private_blocks); } - if ((smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) && + if ((smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) && ((char*)comm->dst_buff_ >= smpi_data_exe_start) && ((char*)comm->dst_buff_ < smpi_data_exe_start + smpi_data_exe_size)) { XBT_DEBUG("Privatization : We are copying to a zone inside global memory - Switch data segment"); @@ -234,39 +218,6 @@ void smpi_comm_null_copy_buffer_callback(simgrid::kernel::activity::CommImpl*, v /* nothing done in this version */ } -static void smpi_check_options() -{ -#if SIMGRID_HAVE_MC - if (MC_is_active()) { - if (_sg_mc_buffering == "zero") - simgrid::config::set_value("smpi/send-is-detached-thresh", 0); - else if (_sg_mc_buffering == "infty") - simgrid::config::set_value("smpi/send-is-detached-thresh", INT_MAX); - else - THROW_IMPOSSIBLE; - } -#endif - - xbt_assert(simgrid::config::get_value("smpi/async-small-thresh") <= - simgrid::config::get_value("smpi/send-is-detached-thresh"), - "smpi/async-small-thresh (=%d) should be smaller or equal to smpi/send-is-detached-thresh (=%d)", - simgrid::config::get_value("smpi/async-small-thresh"), - simgrid::config::get_value("smpi/send-is-detached-thresh")); - - if (simgrid::config::is_default("smpi/host-speed") && not MC_is_active()) { - XBT_INFO("You did not set the power of the host running the simulation. " - "The timings will certainly not be accurate. " - "Use the option \"--cfg=smpi/host-speed:\" to set its value. " - "Check " - "https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more " - "information."); - } - - xbt_assert(simgrid::config::get_value("smpi/cpu-threshold") >= 0, - "The 'smpi/cpu-threshold' option cannot have negative values [anymore]. If you want to discard " - "the simulation of any computation, please use 'smpi/simulate-computation:no' instead."); -} - int smpi_enabled() { return MPI_COMM_WORLD != MPI_COMM_UNINITIALIZED; } @@ -278,14 +229,14 @@ static void smpi_init_papi() // the configuration as given by the user (counter data as a pair of (counter_name, counter_counter)) // and the (computed) event_set. - if (not simgrid::config::get_value("smpi/papi-events").empty()) { + if (not smpi_cfg_papi_events_file().empty()) { if (PAPI_library_init(PAPI_VER_CURRENT) != PAPI_VER_CURRENT) XBT_ERROR("Could not initialize PAPI library; is it correctly installed and linked?" " Expected version is %u", PAPI_VER_CURRENT); typedef boost::tokenizer> Tokenizer; boost::char_separator separator_units(";"); - std::string str = simgrid::config::get_value("smpi/papi-events"); + std::string str = smpi_cfg_papi_events_file(); Tokenizer tokens(str, separator_units); // Iterate over all the computational units. This could be processes, hosts, threads, ranks... You name it. @@ -338,50 +289,7 @@ static void smpi_init_papi() #endif } -static void smpi_init_options(){ - // return if already called - if (smpi_cpu_threshold > -1) - return; - simgrid::smpi::colls::set_collectives(); - simgrid::smpi::colls::smpi_coll_cleanup_callback = nullptr; - smpi_cpu_threshold = simgrid::config::get_value("smpi/cpu-threshold"); - if (smpi_cpu_threshold < 0) - smpi_cpu_threshold = DBL_MAX; - - smpi_host_speed = simgrid::config::get_value("smpi/host-speed"); - std::string smpi_privatize_option = simgrid::config::get_value("smpi/privatization"); - if (smpi_privatize_option == "no" || smpi_privatize_option == "0") - smpi_privatize_global_variables = SmpiPrivStrategies::NONE; - else if (smpi_privatize_option == "yes" || smpi_privatize_option == "1") - smpi_privatize_global_variables = SmpiPrivStrategies::DEFAULT; - else if (smpi_privatize_option == "mmap") - smpi_privatize_global_variables = SmpiPrivStrategies::MMAP; - else if (smpi_privatize_option == "dlopen") - smpi_privatize_global_variables = SmpiPrivStrategies::DLOPEN; - else - xbt_die("Invalid value for smpi/privatization: '%s'", smpi_privatize_option.c_str()); - if (not SMPI_switch_data_segment) { - XBT_DEBUG("Running without smpi_main(); disable smpi/privatization."); - smpi_privatize_global_variables = SmpiPrivStrategies::NONE; - } - if (not HAVE_WORKING_MMAP && smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { - XBT_INFO("mmap privatization is broken on this platform, switching to dlopen privatization instead."); - smpi_privatize_global_variables = SmpiPrivStrategies::DLOPEN; - } - - std::string val = simgrid::config::get_value("smpi/shared-malloc"); - if ((val == "yes") || (val == "1") || (val == "on") || (val == "global")) { - smpi_cfg_shared_malloc = SharedMallocType::GLOBAL; - } else if (val == "local") { - smpi_cfg_shared_malloc = SharedMallocType::LOCAL; - } else if ((val == "no") || (val == "0") || (val == "off")) { - smpi_cfg_shared_malloc = SharedMallocType::NONE; - } else { - xbt_die("Invalid value '%s' for option smpi/shared-malloc. Possible values: 'on' or 'global', 'local', 'off'", - val.c_str()); - } -} typedef std::function smpi_entry_point_type; typedef int (* smpi_c_entry_point_type)(int argc, char **argv); @@ -600,7 +508,7 @@ static void smpi_init_privatization_dlopen(const std::string& executable) static void smpi_init_privatization_no_dlopen(const std::string& executable) { - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) smpi_prepare_global_memory_segment(); // Load the dynamic library and resolve the entry point: @@ -610,7 +518,7 @@ static void smpi_init_privatization_no_dlopen(const std::string& executable) smpi_entry_point_type entry_point = smpi_resolve_function(handle); xbt_assert(entry_point, "main not found in %s", executable.c_str()); - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) smpi_backup_global_memory_segment(); // Execute the same entry point for each simulated process: @@ -627,23 +535,27 @@ int smpi_main(const char* executable, int argc, char* argv[]) * configuration tools */ return 0; } - + + SMPI_switch_data_segment = &smpi_switch_data_segment; + smpi_init_options(); TRACE_global_init(); SIMIX_global_init(&argc, argv); auto engine = simgrid::s4u::Engine::get_instance(); - SMPI_switch_data_segment = &smpi_switch_data_segment; + sg_storage_file_system_init(); // parse the platform file: get the host list engine->load_platform(argv[1]); SIMIX_comm_set_copy_data_callback(smpi_comm_copy_buffer_callback); - smpi_init_options(); - if (smpi_privatize_global_variables == SmpiPrivStrategies::DLOPEN) + if (smpi_cfg_privatization() == SmpiPrivStrategies::DLOPEN) smpi_init_privatization_dlopen(executable); else smpi_init_privatization_no_dlopen(executable); + simgrid::smpi::colls::set_collectives(); + simgrid::smpi::colls::smpi_coll_cleanup_callback = nullptr; + SMPI_init(); /* This is a ... heavy way to count the MPI ranks */ @@ -687,6 +599,7 @@ int smpi_main(const char* executable, int argc, char* argv[]) // Called either directly from the user code, or from the code called by smpirun void SMPI_init(){ + smpi_init_options(); simgrid::s4u::Actor::on_creation.connect([](simgrid::s4u::Actor& actor) { if (not actor.is_daemon()) actor.extension_set(new simgrid::smpi::ActorExt(&actor)); @@ -696,30 +609,10 @@ void SMPI_init(){ for (auto const& host : simgrid::s4u::Engine::get_instance()->get_all_hosts()) host->extension_set(new simgrid::smpi::Host(host)); - smpi_init_options(); if (not MC_is_active()) { global_timer = xbt_os_timer_new(); xbt_os_walltimer_start(global_timer); } - - std::string filename = simgrid::config::get_value("smpi/comp-adjustment-file"); - if (not filename.empty()) { - std::ifstream fstream(filename); - xbt_assert(fstream.is_open(), "Could not open file %s. Does it exist?", filename.c_str()); - - std::string line; - typedef boost::tokenizer> Tokenizer; - std::getline(fstream, line); // Skip the header line - while (std::getline(fstream, line)) { - Tokenizer tok(line); - Tokenizer::iterator it = tok.begin(); - Tokenizer::iterator end = std::next(tok.begin()); - - std::string location = *it; - boost::trim(location); - location2speedup.insert(std::pair(location, std::stod(*end))); - } - } smpi_init_papi(); smpi_check_options(); } @@ -739,7 +632,7 @@ void SMPI_finalize() xbt_os_timer_free(global_timer); } - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) smpi_destroy_global_memory_segments(); if (simgrid::smpi::F2C::lookup() != nullptr) simgrid::smpi::F2C::delete_lookup(); diff --git a/src/smpi/internals/smpi_replay.cpp b/src/smpi/internals/smpi_replay.cpp index b0c8bd973f..5d2619c299 100644 --- a/src/smpi/internals/smpi_replay.cpp +++ b/src/smpi/internals/smpi_replay.cpp @@ -489,7 +489,7 @@ void RecvAction::kernel(simgrid::xbt::ReplayAction&) void ComputeAction::kernel(simgrid::xbt::ReplayAction&) { - if (simgrid::config::get_value("smpi/simulate-computation")) { + if (smpi_cfg_simulate_computation()) { smpi_execute_flops(args.flops/smpi_adjust_comp_speed()); } } diff --git a/src/smpi/internals/smpi_shared.cpp b/src/smpi/internals/smpi_shared.cpp index 29f3b27171..2e406e37ff 100644 --- a/src/smpi/internals/smpi_shared.cpp +++ b/src/smpi/internals/smpi_shared.cpp @@ -344,14 +344,14 @@ void* smpi_shared_malloc_partial(size_t size, size_t* shared_block_offsets, int void *smpi_shared_malloc_intercept(size_t size, const char *file, int line) { - if( simgrid::config::get_value("smpi/auto-shared-malloc-thresh") == 0 || size < simgrid::config::get_value("smpi/auto-shared-malloc-thresh")) + if( smpi_cfg_auto_shared_malloc_thresh() == 0 || size < smpi_cfg_auto_shared_malloc_thresh()) return ::operator new(size); else return smpi_shared_malloc(size, file, line); } void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* file, int line){ - if( simgrid::config::get_value("smpi/auto-shared-malloc-thresh") == 0 || elem_size*num_elm < simgrid::config::get_value("smpi/auto-shared-malloc-thresh")){ + if( smpi_cfg_auto_shared_malloc_thresh() == 0 || elem_size*num_elm < smpi_cfg_auto_shared_malloc_thresh()){ void* ptr = ::operator new(elem_size*num_elm); memset(ptr, 0, elem_size*num_elm); return ptr; @@ -361,9 +361,9 @@ void* smpi_shared_calloc_intercept(size_t num_elm, size_t elem_size, const char* } void *smpi_shared_malloc(size_t size, const char *file, int line) { - if (size > 0 && smpi_cfg_shared_malloc == SharedMallocType::LOCAL) { + if (size > 0 && smpi_cfg_shared_malloc() == SharedMallocType::LOCAL) { return smpi_shared_malloc_local(size, file, line); - } else if (smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) { + } else if (smpi_cfg_shared_malloc() == SharedMallocType::GLOBAL) { int nb_shared_blocks = 1; size_t shared_block_offsets[2] = {0, size}; return smpi_shared_malloc_partial(size, shared_block_offsets, nb_shared_blocks); @@ -376,7 +376,7 @@ int smpi_is_shared(const void* ptr, std::vector> &priv private_blocks.clear(); // being paranoid if (allocs_metadata.empty()) return 0; - if (smpi_cfg_shared_malloc == SharedMallocType::LOCAL || smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) { + if (smpi_cfg_shared_malloc() == SharedMallocType::LOCAL || smpi_cfg_shared_malloc() == SharedMallocType::GLOBAL) { auto low = allocs_metadata.lower_bound(ptr); if (low != allocs_metadata.end() && low->first == ptr) { private_blocks = low->second.private_blocks; @@ -440,7 +440,7 @@ std::vector> merge_private_blocks(const std::vectorcount); } - } else if (smpi_cfg_shared_malloc == SharedMallocType::GLOBAL) { + } else if (smpi_cfg_shared_malloc() == SharedMallocType::GLOBAL) { auto meta = allocs_metadata.find(ptr); if (meta != allocs_metadata.end()){ meta->second.data->second.count--; diff --git a/src/smpi/mpi/smpi_comm.cpp b/src/smpi/mpi/smpi_comm.cpp index 3507333c9c..6c2bacc133 100644 --- a/src/smpi/mpi/smpi_comm.cpp +++ b/src/smpi/mpi/smpi_comm.cpp @@ -66,7 +66,7 @@ void Comm::destroy(Comm* comm) } int Comm::dup(MPI_Comm* newcomm){ - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -380,7 +380,7 @@ void Comm::init_smp(){ smpi_process()->set_replaying(false); } - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -395,7 +395,7 @@ void Comm::init_smp(){ allgather__ring(&leader, 1, MPI_INT , leaders_map, 1, MPI_INT, this); - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } @@ -468,7 +468,7 @@ void Comm::init_smp(){ } bcast__scatter_LR_allgather(&(is_uniform_),1, MPI_INT, 0, comm_intra ); - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables smpi_switch_data_segment(s4u::Actor::self()); } diff --git a/src/smpi/mpi/smpi_datatype.cpp b/src/smpi/mpi/smpi_datatype.cpp index b82b801426..eabb154634 100644 --- a/src/smpi/mpi/smpi_datatype.cpp +++ b/src/smpi/mpi/smpi_datatype.cpp @@ -275,7 +275,7 @@ int Datatype::copy(const void *sendbuf, int sendcount, MPI_Datatype sendtype, // FIXME Handle the case of a partial shared malloc. - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { smpi_switch_data_segment(simgrid::s4u::Actor::self()); } /* First check if we really have something to do */ diff --git a/src/smpi/mpi/smpi_op.cpp b/src/smpi/mpi/smpi_op.cpp index 24c9eb621d..9b755c7180 100644 --- a/src/smpi/mpi/smpi_op.cpp +++ b/src/smpi/mpi/smpi_op.cpp @@ -240,7 +240,7 @@ namespace smpi{ void Op::apply(const void* invec, void* inoutvec, const int* len, MPI_Datatype datatype) { - if (smpi_privatize_global_variables == SmpiPrivStrategies::MMAP) { + if (smpi_cfg_privatization() == SmpiPrivStrategies::MMAP) { // we need to switch as the called function may silently touch global variables XBT_DEBUG("Applying operation, switch to the right data frame "); smpi_switch_data_segment(simgrid::s4u::Actor::self()); diff --git a/src/smpi/mpi/smpi_request.cpp b/src/smpi/mpi/smpi_request.cpp index d34a031538..d99290b80e 100644 --- a/src/smpi/mpi/smpi_request.cpp +++ b/src/smpi/mpi/smpi_request.cpp @@ -376,15 +376,13 @@ void Request::start() simgrid::smpi::ActorExt* process = smpi_process_remote(simgrid::s4u::Actor::by_pid(dst_)); - int async_small_thresh = simgrid::config::get_value("smpi/async-small-thresh"); - simgrid::s4u::MutexPtr mut = process->mailboxes_mutex(); - if (async_small_thresh != 0 || (flags_ & MPI_REQ_RMA) != 0) + if (smpi_cfg_async_small_thresh() != 0 || (flags_ & MPI_REQ_RMA) != 0) mut->lock(); - if (async_small_thresh == 0 && (flags_ & MPI_REQ_RMA) == 0) { + if (smpi_cfg_async_small_thresh() == 0 && (flags_ & MPI_REQ_RMA) == 0) { mailbox = process->mailbox(); - } else if (((flags_ & MPI_REQ_RMA) != 0) || static_cast(size_) < async_small_thresh) { + } else if (((flags_ & MPI_REQ_RMA) != 0) || static_cast(size_) < smpi_cfg_async_small_thresh()) { //We have to check both mailboxes (because SSEND messages are sent to the large mbox). //begin with the more appropriate one : the small one. mailbox = process->mailbox_small(); @@ -423,7 +421,7 @@ void Request::start() process->replaying() ? &smpi_comm_null_copy_buffer_callback : smpi_comm_copy_data_callback, this, -1.0); XBT_DEBUG("recv simcall posted"); - if (async_small_thresh != 0 || (flags_ & MPI_REQ_RMA) != 0) + if (smpi_cfg_async_small_thresh() != 0 || (flags_ & MPI_REQ_RMA) != 0) mut->unlock(); } else { /* the RECV flag was not set, so this is a send */ simgrid::smpi::ActorExt* process = smpi_process_remote(simgrid::s4u::Actor::by_pid(dst_)); @@ -437,7 +435,7 @@ void Request::start() void* buf = buf_; if ((flags_ & MPI_REQ_SSEND) == 0 && ((flags_ & MPI_REQ_RMA) != 0 || (flags_ & MPI_REQ_BSEND) != 0 || - static_cast(size_) < simgrid::config::get_value("smpi/send-is-detached-thresh"))) { + static_cast(size_) < smpi_cfg_detached_send_thresh())) { void *oldbuf = nullptr; detached_ = true; XBT_DEBUG("Send request %p is detached", this); @@ -445,7 +443,7 @@ void Request::start() if (not(old_type_->flags() & DT_FLAG_DERIVED)) { oldbuf = buf_; if (not process->replaying() && oldbuf != nullptr && size_ != 0) { - if ((smpi_privatize_global_variables != SmpiPrivStrategies::NONE) && + if ((smpi_cfg_privatization() != SmpiPrivStrategies::NONE) && (static_cast(buf_) >= smpi_data_exe_start) && (static_cast(buf_) < smpi_data_exe_start + smpi_data_exe_size)) { XBT_DEBUG("Privatization : We are sending from a zone inside global memory. Switch data segment "); @@ -474,16 +472,14 @@ void Request::start() XBT_DEBUG("sending size of %zu : sleep %f ", size_, sleeptime); } - int async_small_thresh = simgrid::config::get_value("smpi/async-small-thresh"); - simgrid::s4u::MutexPtr mut = process->mailboxes_mutex(); - if (async_small_thresh != 0 || (flags_ & MPI_REQ_RMA) != 0) + if (smpi_cfg_async_small_thresh() != 0 || (flags_ & MPI_REQ_RMA) != 0) mut->lock(); - if (not(async_small_thresh != 0 || (flags_ & MPI_REQ_RMA) != 0)) { + if (not(smpi_cfg_async_small_thresh() != 0 || (flags_ & MPI_REQ_RMA) != 0)) { mailbox = process->mailbox(); - } else if (((flags_ & MPI_REQ_RMA) != 0) || static_cast(size_) < async_small_thresh) { // eager mode + } else if (((flags_ & MPI_REQ_RMA) != 0) || static_cast(size_) < smpi_cfg_async_small_thresh()) { // eager mode mailbox = process->mailbox(); XBT_DEBUG("Is there a corresponding recv already posted in the large mailbox %s?", mailbox->get_cname()); smx_activity_t action = mailbox->iprobe(1, &match_send, static_cast(this)); @@ -526,7 +522,7 @@ void Request::start() smpi_process()->get_tracing_category()); } - if (async_small_thresh != 0 || ((flags_ & MPI_REQ_RMA) != 0)) + if (smpi_cfg_async_small_thresh() != 0 || ((flags_ & MPI_REQ_RMA) != 0)) mut->unlock(); } } @@ -605,7 +601,7 @@ int Request::test(MPI_Request * request, MPI_Status * status, int* flag) { nsleeps=1;//reset the number of sleeps we will do next time if (*request != MPI_REQUEST_NULL && ((*request)->flags_ & MPI_REQ_PERSISTENT) == 0) *request = MPI_REQUEST_NULL; - } else if (simgrid::config::get_value("smpi/grow-injected-times")) { + } else if (smpi_cfg_grow_injected_times()) { nsleeps++; } } @@ -763,7 +759,7 @@ void Request::iprobe(int source, int tag, MPI_Comm comm, int* flag, MPI_Status* // This can speed up the execution of certain applications by an order of magnitude, such as HPL static int nsleeps = 1; double speed = s4u::this_actor::get_host()->get_speed(); - double maxrate = simgrid::config::get_value("smpi/iprobe-cpu-usage"); + double maxrate = smpi_cfg_iprobe_cpu_usage(); MPI_Request request = new Request(nullptr, 0, MPI_CHAR, source == MPI_ANY_SOURCE ? MPI_ANY_SOURCE : comm->group()->actor(source)->get_pid(), simgrid::s4u::this_actor::get_pid(), tag, comm, MPI_REQ_PERSISTENT | MPI_REQ_RECV); @@ -786,7 +782,7 @@ void Request::iprobe(int source, int tag, MPI_Comm comm, int* flag, MPI_Status* request->print_request("New iprobe"); // We have to test both mailboxes as we don't know if we will receive one or another - if (simgrid::config::get_value("smpi/async-small-thresh") > 0) { + if (smpi_cfg_async_small_thresh() > 0) { mailbox = smpi_process()->mailbox_small(); XBT_DEBUG("Trying to probe the perm recv mailbox"); request->action_ = mailbox->iprobe(0, &match_recv, static_cast(request)); @@ -812,7 +808,7 @@ void Request::iprobe(int source, int tag, MPI_Comm comm, int* flag, MPI_Status* } else { *flag = 0; - if (simgrid::config::get_value("smpi/grow-injected-times")) + if (smpi_cfg_grow_injected_times()) nsleeps++; } unref(&request); @@ -851,7 +847,7 @@ void Request::finish_wait(MPI_Request* request, MPI_Status * status) if (((req->flags_ & MPI_REQ_ACCUMULATE) != 0) || (datatype->flags() & DT_FLAG_DERIVED)) { // && (not smpi_is_shared(req->old_buf_))){ - if (not smpi_process()->replaying() && smpi_privatize_global_variables != SmpiPrivStrategies::NONE && + if (not smpi_process()->replaying() && smpi_cfg_privatization() != SmpiPrivStrategies::NONE && static_cast(req->old_buf_) >= smpi_data_exe_start && static_cast(req->old_buf_) < smpi_data_exe_start + smpi_data_exe_size) { XBT_VERB("Privatization : We are unserializing to a zone in global memory Switch data segment "); diff --git a/src/smpi/mpi/smpi_topo.cpp b/src/smpi/mpi/smpi_topo.cpp index cd0589a20f..058b4bd42e 100644 --- a/src/smpi/mpi/smpi_topo.cpp +++ b/src/smpi/mpi/smpi_topo.cpp @@ -47,11 +47,6 @@ Topo_Cart::Topo_Cart(MPI_Comm comm_old, int ndims, const int dims[], const int p *comm_cart = MPI_COMM_NULL; return; } - oldGroup = comm_old->group(); - newGroup = new Group(newSize); - for (int i = 0 ; i < newSize ; i++) { - newGroup->set_mapping(oldGroup->actor(i), i); - } nnodes_ = newSize; @@ -65,8 +60,15 @@ Topo_Cart::Topo_Cart(MPI_Comm comm_old, int ndims, const int dims[], const int p position_[i] = rank / nranks; rank = rank % nranks; } - if(comm_cart != nullptr) + + if(comm_cart != nullptr){ + oldGroup = comm_old->group(); + newGroup = new Group(newSize); + for (int i = 0 ; i < newSize ; i++) { + newGroup->set_mapping(oldGroup->actor(i), i); + } *comm_cart = new Comm(newGroup, this); + } } else { if(comm_cart != nullptr){ if (rank == 0) { diff --git a/teshsuite/smpi/auto-shared/auto-shared.tesh b/teshsuite/smpi/auto-shared/auto-shared.tesh index cfadf9f161..f00d67e9ef 100644 --- a/teshsuite/smpi/auto-shared/auto-shared.tesh +++ b/teshsuite/smpi/auto-shared/auto-shared.tesh @@ -1,7 +1,7 @@ p Test compute ! output sort ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/auto-shared --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/auto-shared-malloc-thresh:8 +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/auto-shared --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/auto-shared-malloc-thresh:8 > [0] After change, the value in the shared buffer is: 16053117601147974045 > [0] The value in the shared buffer is: 4 > [1] After change, the value in the shared buffer is: 16053117601147974045 @@ -14,7 +14,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ! output sort ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/auto-shared --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/shared-malloc:local --cfg=smpi/auto-shared-malloc-thresh:8 +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/auto-shared --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/shared-malloc:local --cfg=smpi/auto-shared-malloc-thresh:8 > [0] After change, the value in the shared buffer is: 16053117601147974045 > [0] The value in the shared buffer is: 4 > [1] After change, the value in the shared buffer is: 16053117601147974045 diff --git a/teshsuite/smpi/bug-17132/bug-17132.tesh b/teshsuite/smpi/bug-17132/bug-17132.tesh index fe2ef8d70f..ec78363891 100644 --- a/teshsuite/smpi/bug-17132/bug-17132.tesh +++ b/teshsuite/smpi/bug-17132/bug-17132.tesh @@ -1,3 +1,3 @@ -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -np 16 -platform ../../../examples/platforms/small_platform.xml -hostfile ../hostfile ${bindir:=.}/bug-17132 --cfg=smpi/simulate-computation:no --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -np 16 -platform ../../../examples/platforms/small_platform.xml -hostfile ../hostfile ${bindir:=.}/bug-17132 --cfg=smpi/simulate-computation:no --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > You requested to use 16 ranks, but there is only 5 processes in your hostfile... > Walltime = 0.476791 diff --git a/teshsuite/smpi/coll-allgather/coll-allgather.tesh b/teshsuite/smpi/coll-allgather/coll-allgather.tesh index b3db84e6b3..9271a5f68a 100644 --- a/teshsuite/smpi/coll-allgather/coll-allgather.tesh +++ b/teshsuite/smpi/coll-allgather/coll-allgather.tesh @@ -2,7 +2,7 @@ ! output sort p Test allgather -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allgather --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_pmpi.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allgather --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_pmpi.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-allgatherv/coll-allgatherv.tesh b/teshsuite/smpi/coll-allgatherv/coll-allgatherv.tesh index 3716966b8e..81166fecc8 100644 --- a/teshsuite/smpi/coll-allgatherv/coll-allgatherv.tesh +++ b/teshsuite/smpi/coll-allgatherv/coll-allgatherv.tesh @@ -2,7 +2,7 @@ ! output sort p Test allgatherv -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allgatherv --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allgatherv --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-allreduce/coll-allreduce-automatic.tesh b/teshsuite/smpi/coll-allreduce/coll-allreduce-automatic.tesh index 8471bda576..e4337b68ae 100644 --- a/teshsuite/smpi/coll-allreduce/coll-allreduce-automatic.tesh +++ b/teshsuite/smpi/coll-allreduce/coll-allreduce-automatic.tesh @@ -2,7 +2,7 @@ p Test allreduce ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allreduce --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --cfg=smpi/allreduce:automatic --cfg=smpi/async-small-thresh:65536 --cfg=smpi/send-is-detached-thresh:128000 --cfg=smpi/simulate-computation:no "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allreduce --log=smpi_config.thres:warning --log=smpi_coll.thres:error --cfg=smpi/allreduce:automatic --cfg=smpi/async-small-thresh:65536 --cfg=smpi/send-is-detached-thresh:128000 --cfg=smpi/simulate-computation:no "--log=root.fmt:[%10.6r]%e(%i:%P@%h)%e%m%n" --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-allreduce/coll-allreduce-large.tesh b/teshsuite/smpi/coll-allreduce/coll-allreduce-large.tesh index a8f6ac316a..eece93b746 100644 --- a/teshsuite/smpi/coll-allreduce/coll-allreduce-large.tesh +++ b/teshsuite/smpi/coll-allreduce/coll-allreduce-large.tesh @@ -3,7 +3,7 @@ ! timeout 20 p Test allreduce -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allreduce 300000 --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allreduce 300000 --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Jupiter > [rank 2] -> Fafard diff --git a/teshsuite/smpi/coll-allreduce/coll-allreduce.tesh b/teshsuite/smpi/coll-allreduce/coll-allreduce.tesh index 83b9fa24f5..700ffac1e9 100644 --- a/teshsuite/smpi/coll-allreduce/coll-allreduce.tesh +++ b/teshsuite/smpi/coll-allreduce/coll-allreduce.tesh @@ -2,7 +2,7 @@ ! output sort p Test allreduce -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allreduce --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-allreduce --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-alltoall/clusters.tesh b/teshsuite/smpi/coll-alltoall/clusters.tesh index 64fa937839..b01cb80a3a 100644 --- a/teshsuite/smpi/coll-alltoall/clusters.tesh +++ b/teshsuite/smpi/coll-alltoall/clusters.tesh @@ -2,7 +2,7 @@ ! output sort p Test classic - backbone -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir}/../hostfile_cluster -platform ${platfdir:=.}/cluster_backbone.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir}/../hostfile_cluster -platform ${platfdir:=.}/cluster_backbone.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> node-0.simgrid.org > [rank 1] -> node-1.simgrid.org > [rank 2] -> node-2.simgrid.org @@ -42,7 +42,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir}/../host ! output sort p Test separate clusters -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -platform ../../../examples/platforms/cluster_multi.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -platform ../../../examples/platforms/cluster_multi.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> node-0.1core.org > [rank 1] -> node-1.1core.org > [rank 2] -> node-2.1core.org @@ -82,7 +82,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -platform ../../../examples ! output sort p Test torus -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_torus.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_torus.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> node-0.simgrid.org > [rank 1] -> node-1.simgrid.org > [rank 2] -> node-2.simgrid.org @@ -122,7 +122,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_clust ! output sort p Test fat tree -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_fat_tree.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_fat_tree.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> node-0.simgrid.org > [rank 1] -> node-1.simgrid.org > [rank 2] -> node-2.simgrid.org @@ -162,7 +162,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_clust ! output sort p Test fat tree IB -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_fat_tree.xml -np 12 --cfg=network/model:IB --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_fat_tree.xml -np 12 --cfg=network/model:IB --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> node-0.simgrid.org > [rank 1] -> node-1.simgrid.org > [rank 2] -> node-2.simgrid.org @@ -202,7 +202,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_clust ! output sort p Test Dragonfly -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_dragonfly.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_cluster -platform ../../../examples/platforms/cluster_dragonfly.xml -np 12 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> node-0.simgrid.org > [rank 1] -> node-1.simgrid.org > [rank 2] -> node-2.simgrid.org diff --git a/teshsuite/smpi/coll-alltoall/coll-alltoall.tesh b/teshsuite/smpi/coll-alltoall/coll-alltoall.tesh index b1e8e8cde4..58eaa3a80f 100644 --- a/teshsuite/smpi/coll-alltoall/coll-alltoall.tesh +++ b/teshsuite/smpi/coll-alltoall/coll-alltoall.tesh @@ -2,7 +2,7 @@ ! output sort p Test all to all -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir:=.}/../hostfile_coll -platform ${platfdir}/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir:=.}/../hostfile_coll -platform ${platfdir}/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoall -q --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-alltoallv/coll-alltoallv.tesh b/teshsuite/smpi/coll-alltoallv/coll-alltoallv.tesh index aabb597f49..7392561f95 100644 --- a/teshsuite/smpi/coll-alltoallv/coll-alltoallv.tesh +++ b/teshsuite/smpi/coll-alltoallv/coll-alltoallv.tesh @@ -2,7 +2,7 @@ ! output sort p Test all to all -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoallv --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-alltoallv --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-barrier/coll-barrier.tesh b/teshsuite/smpi/coll-barrier/coll-barrier.tesh index b8faa4db4c..425c610978 100644 --- a/teshsuite/smpi/coll-barrier/coll-barrier.tesh +++ b/teshsuite/smpi/coll-barrier/coll-barrier.tesh @@ -2,7 +2,7 @@ ! output sort p Test barrier -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-barrier --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-barrier --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > ... Barrier .... > [rank 0] -> Tremblay > [rank 1] -> Tremblay diff --git a/teshsuite/smpi/coll-bcast/coll-bcast.tesh b/teshsuite/smpi/coll-bcast/coll-bcast.tesh index 43dcf103a7..18e2b9c79f 100644 --- a/teshsuite/smpi/coll-bcast/coll-bcast.tesh +++ b/teshsuite/smpi/coll-bcast/coll-bcast.tesh @@ -1,7 +1,7 @@ p Test Broadcast with more processes than hosts ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-bcast --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-bcast --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-gather/coll-gather.tesh b/teshsuite/smpi/coll-gather/coll-gather.tesh index 84fcf65209..acee3f1d9e 100644 --- a/teshsuite/smpi/coll-gather/coll-gather.tesh +++ b/teshsuite/smpi/coll-gather/coll-gather.tesh @@ -3,7 +3,7 @@ ! timeout 30 p Test all to all -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-gather --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-gather --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [rank 0] -> Tremblay > [rank 1] -> Tremblay > [rank 2] -> Tremblay diff --git a/teshsuite/smpi/coll-reduce-scatter/coll-reduce-scatter.tesh b/teshsuite/smpi/coll-reduce-scatter/coll-reduce-scatter.tesh index afeeb85f28..40c080ad31 100644 --- a/teshsuite/smpi/coll-reduce-scatter/coll-reduce-scatter.tesh +++ b/teshsuite/smpi/coll-reduce-scatter/coll-reduce-scatter.tesh @@ -2,7 +2,7 @@ ! output sort p Test reduce_scatter -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-reduce-scatter --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-reduce-scatter --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > No Errors > [rank 0] -> Tremblay > [rank 10] -> Fafard diff --git a/teshsuite/smpi/coll-reduce/coll-reduce.tesh b/teshsuite/smpi/coll-reduce/coll-reduce.tesh index 69433de174..7e0a68924c 100644 --- a/teshsuite/smpi/coll-reduce/coll-reduce.tesh +++ b/teshsuite/smpi/coll-reduce/coll-reduce.tesh @@ -2,7 +2,7 @@ ! output sort p Test allreduce -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-reduce --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-reduce --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [0] rcvbuf=[1920 1936 1952 1968 1984 2000 2016 2032 2048 2064 2080 2096 2112 2128 2144 2160 ] > [0] second sndbuf=[0 ] > [0] sndbuf=[0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ] diff --git a/teshsuite/smpi/coll-scatter/coll-scatter.tesh b/teshsuite/smpi/coll-scatter/coll-scatter.tesh index a7f0556e4f..2bc84ff3b6 100644 --- a/teshsuite/smpi/coll-scatter/coll-scatter.tesh +++ b/teshsuite/smpi/coll-scatter/coll-scatter.tesh @@ -2,7 +2,7 @@ ! output sort p Test scatter -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-scatter --log=smpi_kernel.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_coll -platform ../../../examples/platforms/small_platform.xml -np 16 --log=xbt_cfg.thres:critical ${bindir:=.}/coll-scatter --log=smpi_config.thres:warning --log=smpi_coll.thres:error --log=smpi_mpi.thres:error > [0] ok. > [10] ok. > [11] ok. diff --git a/teshsuite/smpi/fort_args/fort_args.tesh b/teshsuite/smpi/fort_args/fort_args.tesh index 8e220e3fbd..6979fbfceb 100644 --- a/teshsuite/smpi/fort_args/fort_args.tesh +++ b/teshsuite/smpi/fort_args/fort_args.tesh @@ -1,5 +1,5 @@ p Test fortran params ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/fort_args 'a' 3 -q --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/fort_args 'a' 3 -q --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter diff --git a/teshsuite/smpi/gh-139/gh-139.tesh b/teshsuite/smpi/gh-139/gh-139.tesh index 791b3071e3..acb01f0eb5 100644 --- a/teshsuite/smpi/gh-139/gh-139.tesh +++ b/teshsuite/smpi/gh-139/gh-139.tesh @@ -1,4 +1,4 @@ -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -np 2 -platform ../../../examples/platforms/small_platform.xml -hostfile ../hostfile ${bindir:=.}/gh-139 --cfg=smpi/simulate-computation:no --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -np 2 -platform ../../../examples/platforms/small_platform.xml -hostfile ../hostfile ${bindir:=.}/gh-139 --cfg=smpi/simulate-computation:no --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [Tremblay:0:(1) 0.000000] [smpi_test/INFO] I'm 0/2 > [Jupiter:1:(2) 0.000000] [smpi_test/INFO] I'm 1/2 > [Tremblay:wait send:(3) 0.000000] [smpi_test/INFO] new thread has parameter rank 0 and global variable rank 0 diff --git a/teshsuite/smpi/io-all-at/io-all-at.tesh b/teshsuite/smpi/io-all-at/io-all-at.tesh index 57f3e23b00..bda0cafc8f 100644 --- a/teshsuite/smpi/io-all-at/io-all-at.tesh +++ b/teshsuite/smpi/io-all-at/io-all-at.tesh @@ -1,6 +1,6 @@ # Test for MPI_File_read and MPI_File_write ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_kernel.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-all-at +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_config.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-all-at > You requested to use 4 ranks, but there is only 2 processes in your hostfile... > [rank 0] -> bob > [rank 1] -> carl diff --git a/teshsuite/smpi/io-all/io-all.tesh b/teshsuite/smpi/io-all/io-all.tesh index d60d27ec1b..0c96e62f6a 100644 --- a/teshsuite/smpi/io-all/io-all.tesh +++ b/teshsuite/smpi/io-all/io-all.tesh @@ -1,6 +1,6 @@ # Test for MPI_File_read and MPI_File_write ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_kernel.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-all +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_config.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-all > You requested to use 4 ranks, but there is only 2 processes in your hostfile... > [rank 0] -> bob > [rank 1] -> carl diff --git a/teshsuite/smpi/io-ordered/io-ordered.tesh b/teshsuite/smpi/io-ordered/io-ordered.tesh index dedb55072d..e7d779cd3f 100644 --- a/teshsuite/smpi/io-ordered/io-ordered.tesh +++ b/teshsuite/smpi/io-ordered/io-ordered.tesh @@ -1,6 +1,6 @@ # Test for MPI_File_read and MPI_File_write ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_kernel.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-ordered +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_config.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-ordered > You requested to use 4 ranks, but there is only 2 processes in your hostfile... > [rank 0] -> bob > [rank 1] -> carl diff --git a/teshsuite/smpi/io-shared/io-shared.tesh b/teshsuite/smpi/io-shared/io-shared.tesh index 8dba085727..e5a56ddba0 100644 --- a/teshsuite/smpi/io-shared/io-shared.tesh +++ b/teshsuite/smpi/io-shared/io-shared.tesh @@ -1,6 +1,6 @@ # Test for MPI_File_read and MPI_File_write ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_kernel.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-shared +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_config.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-shared > You requested to use 4 ranks, but there is only 2 processes in your hostfile... > [rank 0] -> bob > [rank 1] -> carl diff --git a/teshsuite/smpi/io-simple-at/io-simple-at.tesh b/teshsuite/smpi/io-simple-at/io-simple-at.tesh index f8ff02771a..16f351efe6 100644 --- a/teshsuite/smpi/io-simple-at/io-simple-at.tesh +++ b/teshsuite/smpi/io-simple-at/io-simple-at.tesh @@ -1,6 +1,6 @@ # Test for MPI_File_read and MPI_File_write ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_kernel.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-simple-at +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_config.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-simple-at > You requested to use 4 ranks, but there is only 2 processes in your hostfile... > [rank 0] -> bob > [rank 1] -> carl diff --git a/teshsuite/smpi/io-simple/io-simple.tesh b/teshsuite/smpi/io-simple/io-simple.tesh index bd56168279..b1739bb4b6 100644 --- a/teshsuite/smpi/io-simple/io-simple.tesh +++ b/teshsuite/smpi/io-simple/io-simple.tesh @@ -1,6 +1,6 @@ # Test for MPI_File_read and MPI_File_write ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_kernel.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-simple +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile_io -platform ../../../examples/platforms/hosts_with_disks.xml -np 4 --log=xbt_cfg.thres:critical --log=smpi_config.thres:warning --log=smpi_mpi.thres:error --log=smpi_io.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" --cfg=smpi/simulate-computation:0 ${bindir:=.}/io-simple > You requested to use 4 ranks, but there is only 2 processes in your hostfile... > [rank 0] -> bob > [rank 1] -> carl diff --git a/teshsuite/smpi/macro-partial-shared-communication/macro-partial-shared-communication.tesh b/teshsuite/smpi/macro-partial-shared-communication/macro-partial-shared-communication.tesh index 839b94055f..23a9c273cf 100644 --- a/teshsuite/smpi/macro-partial-shared-communication/macro-partial-shared-communication.tesh +++ b/teshsuite/smpi/macro-partial-shared-communication/macro-partial-shared-communication.tesh @@ -1,7 +1,7 @@ p Test compute ! output sort ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-partial-shared-communication --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-partial-shared-communication --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [3] The result of the (normal) communication check for block (0x123456, 0x130000) is: 1 > [3] The result of the (normal) communication check for block (0x130001, 0x345678) is: 1 > [3] The result of the (normal) communication check for block (0x345789, 0x444444) is: 1 diff --git a/teshsuite/smpi/macro-partial-shared/macro-partial-shared.tesh b/teshsuite/smpi/macro-partial-shared/macro-partial-shared.tesh index 985dbbef87..10f04787fd 100644 --- a/teshsuite/smpi/macro-partial-shared/macro-partial-shared.tesh +++ b/teshsuite/smpi/macro-partial-shared/macro-partial-shared.tesh @@ -1,7 +1,7 @@ p Test compute ! output sort ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-partial-shared --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-partial-shared --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [0] The result of the shared check for block (0x0, 0x123456) is: 1 > [0] The result of the shared check for block (0x130000, 0x130001) is: 1 > [0] The result of the shared check for block (0x345678, 0x345789) is: 1 diff --git a/teshsuite/smpi/macro-sample/macro-sample.tesh b/teshsuite/smpi/macro-sample/macro-sample.tesh index fc13419864..c3549dc39e 100644 --- a/teshsuite/smpi/macro-sample/macro-sample.tesh +++ b/teshsuite/smpi/macro-sample/macro-sample.tesh @@ -1,7 +1,7 @@ p Test compute and bench ! output sort ! timeout 45 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform_with_routers.xml -np 3 --log=root.thres:warning ${bindir:=.}/macro-sample quiet --log=smpi_kernel.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform_with_routers.xml -np 3 --log=root.thres:warning ${bindir:=.}/macro-sample quiet --log=smpi_config.thres:warning > (0) Run the first computation. It's globally benched, and I want no more than 4 benchmarks (thres<0) > (0) Run the first computation. It's globally benched, and I want no more than 4 benchmarks (thres<0) > (0) Run the first computation. It's globally benched, and I want no more than 4 benchmarks (thres<0) diff --git a/teshsuite/smpi/macro-shared/macro-shared.tesh b/teshsuite/smpi/macro-shared/macro-shared.tesh index 38b20ab2c0..3d31e9a6ea 100644 --- a/teshsuite/smpi/macro-shared/macro-shared.tesh +++ b/teshsuite/smpi/macro-shared/macro-shared.tesh @@ -1,7 +1,7 @@ p Test compute ! output sort ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-shared --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --log=smpi_kernel.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-shared --log=xbt_cfg.thres:warning --log=smpi_kernel.thres:verbose "--log=root.fmt:(%P@%h)%e%m%n" > (maestro@) You did not set the power of the host running the simulation. The timings will certainly not be accurate. Use the option "--cfg=smpi/host-speed:" to set its value. Check https://simgrid.org/doc/latest/Configuring_SimGrid.html#automatic-benchmarking-of-smpi-code for more information. > (maestro@) Receiver is shared. Let's ignore it. > (maestro@) Receiver is shared. Let's ignore it. @@ -19,7 +19,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ! output sort ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-shared --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/shared-malloc:local +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/macro-shared --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/shared-malloc:local > [0] After change, the value in the shared buffer is: 16053117601147974045 > [0] The value in the shared buffer is: 4 > [1] After change, the value in the shared buffer is: 16053117601147974045 diff --git a/teshsuite/smpi/privatization/privatization.tesh b/teshsuite/smpi/privatization/privatization.tesh index 5f5f479ff2..2b968d9a50 100644 --- a/teshsuite/smpi/privatization/privatization.tesh +++ b/teshsuite/smpi/privatization/privatization.tesh @@ -1,4 +1,4 @@ p Test privatization ! timeout 5 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 32 ${bindir:=.}/privatization -s -long --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/privatization:${privatization:=1} --log=simix_context.thres:error --log=xbt_memory_map.thres:critical +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 32 ${bindir:=.}/privatization -s -long --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/privatization:${privatization:=1} --log=simix_context.thres:error --log=xbt_memory_map.thres:critical > You requested to use 32 ranks, but there is only 5 processes in your hostfile... diff --git a/teshsuite/smpi/pt2pt-dsend/pt2pt-dsend.tesh b/teshsuite/smpi/pt2pt-dsend/pt2pt-dsend.tesh index 09a5b988c8..07e013c41e 100644 --- a/teshsuite/smpi/pt2pt-dsend/pt2pt-dsend.tesh +++ b/teshsuite/smpi/pt2pt-dsend/pt2pt-dsend.tesh @@ -1,6 +1,6 @@ p Test dsend ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir:=.}/../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/pt2pt-dsend -s --long --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/simulate-computation:no +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir:=.}/../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/pt2pt-dsend -s --long --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning --cfg=smpi/simulate-computation:no > [Jupiter:1:(2) 0.000000] [dsend/INFO] rank 1: data exchanged > [Tremblay:0:(1) 0.005890] [dsend/INFO] rank 0: data exchanged > [rank 0] -> Tremblay @@ -11,7 +11,7 @@ p message size is 4 bytes p process 1 will finish at 0.5+2*4 (send) + 1+0.1*4 (isend) = 9.9s p process 2 will finish at 0.5+2*4 (time before first send) + 2*(1+0.5*4) (recv+irecv) + 0.005890 (network time, same as before) = 14.505890s ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir:=.}/../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/pt2pt-dsend -s --long --log=smpi_kernel.thres:warning --cfg=smpi/or:0:1:0.5 --cfg=smpi/os:0:0.5:2 --cfg=smpi/ois:0:1:0.1 --cfg=smpi/simulate-computation:no --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ${bindir:=.}/../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/pt2pt-dsend -s --long --log=smpi_config.thres:warning --cfg=smpi/or:0:1:0.5 --cfg=smpi/os:0:0.5:2 --cfg=smpi/ois:0:1:0.1 --cfg=smpi/simulate-computation:no --log=xbt_cfg.thres:warning > [Jupiter:1:(2) 9.900000] [dsend/INFO] rank 1: data exchanged > [Tremblay:0:(1) 14.505890] [dsend/INFO] rank 0: data exchanged > [rank 0] -> Tremblay diff --git a/teshsuite/smpi/pt2pt-pingpong/TI_output.tesh b/teshsuite/smpi/pt2pt-pingpong/TI_output.tesh index 160ddc0a79..7458f2369b 100644 --- a/teshsuite/smpi/pt2pt-pingpong/TI_output.tesh +++ b/teshsuite/smpi/pt2pt-pingpong/TI_output.tesh @@ -4,7 +4,7 @@ $ rm -rf ./out_in_ti.txt_files p Test output of time independent tracing p generate a trace with pingpong, and replay itself, then check that output trace of the second run is the same as in the first (once sorted) ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:out_in_ti.txt --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:out_in_ti.txt --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > > > @@ -34,7 +34,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename > [rank 2] -> Fafard > [rank 3] -> Ginette -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -no-privatize -replay ./out_in_ti.txt --log=replay.:critical -trace-ti --cfg=tracing/filename:out_ti.txt --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/../../../examples/smpi/replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -no-privatize -replay ./out_in_ti.txt --log=replay.:critical -trace-ti --cfg=tracing/filename:out_ti.txt --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/../../../examples/smpi/replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > [rank 2] -> Fafard @@ -95,7 +95,7 @@ $ rm out_in_ti.txt p Same test, but only using one output file for all processes p generate a trace with pingpong, and replay itself, then check that output trace of the second run is the same as in the first (once sorted) ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:out_in_ti.txt --cfg=tracing/smpi/format/ti-one-file:yes --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename:out_in_ti.txt --cfg=tracing/smpi/format/ti-one-file:yes --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > > > @@ -125,7 +125,7 @@ $ ${bindir:=.}/../../../smpi_script/bin/smpirun -trace-ti --cfg=tracing/filename > [rank 2] -> Fafard > [rank 3] -> Ginette -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -no-privatize -replay ./out_in_ti.txt --log=replay.:critical -trace-ti --cfg=tracing/filename:out_ti.txt --cfg=tracing/smpi/format/ti-one-file:yes --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/../../../examples/smpi/replay/smpi_replay --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -no-privatize -replay ./out_in_ti.txt --log=replay.:critical -trace-ti --cfg=tracing/filename:out_ti.txt --cfg=tracing/smpi/format/ti-one-file:yes --cfg=smpi/simulate-computation:no -map -hostfile ${srcdir:=.}/../hostfile -platform ${srcdir:=.}/../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/../../../examples/smpi/replay/smpi_replay --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > [rank 2] -> Fafard diff --git a/teshsuite/smpi/pt2pt-pingpong/broken_hostfiles.tesh b/teshsuite/smpi/pt2pt-pingpong/broken_hostfiles.tesh index f6f0f23da8..f5a0b91c3f 100644 --- a/teshsuite/smpi/pt2pt-pingpong/broken_hostfiles.tesh +++ b/teshsuite/smpi/pt2pt-pingpong/broken_hostfiles.tesh @@ -1,7 +1,7 @@ ! expect return 1 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile_empty -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_kernel.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile ../hostfile_empty -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_config.thres:warning > [smpirun] ** error: the hostfile '../hostfile_empty' is empty. Aborting. ! expect return 1 -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile hostfile-does-not-exist.txt -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_kernel.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -hostfile hostfile-does-not-exist.txt -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_config.thres:warning > [smpirun] ** error: the file 'hostfile-does-not-exist.txt' does not exist. Aborting. diff --git a/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.c b/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.c index c46ea3395b..dcaf7e6131 100644 --- a/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.c +++ b/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.c @@ -30,7 +30,6 @@ int main(int argc, char *argv[]) int rank; int msg = 99; MPI_Status status; - int err = MPI_Init(&argc, &argv); /* Initialize MPI */ /* test getopt function */ diff --git a/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.tesh b/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.tesh index fb42fb4963..650c15f5bc 100644 --- a/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.tesh +++ b/teshsuite/smpi/pt2pt-pingpong/pt2pt-pingpong.tesh @@ -1,6 +1,6 @@ p Test pingpong ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/pt2pt-pingpong -s --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > *** Ping-pong test (MPI_Send/MPI_Recv) *** > > diff --git a/teshsuite/smpi/timers/timers.tesh b/teshsuite/smpi/timers/timers.tesh index eb782b8060..8e0283b87f 100644 --- a/teshsuite/smpi/timers/timers.tesh +++ b/teshsuite/smpi/timers/timers.tesh @@ -1,4 +1,4 @@ p Test timers -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 1 ${bindir:=.}/timers -q --log=smpi_kernel.thres:warning --cfg=smpi/simulate-computation:no --cfg=smpi/host-speed:100000 --log=xbt_cfg.thres:warning --cfg=smpi/wtime:0 +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 1 ${bindir:=.}/timers -q --log=smpi_config.thres:warning --cfg=smpi/simulate-computation:no --cfg=smpi/host-speed:100000 --log=xbt_cfg.thres:warning --cfg=smpi/wtime:0 > [rank 0] -> Tremblay diff --git a/teshsuite/smpi/topo-cart-sub/topo-cart-sub.tesh b/teshsuite/smpi/topo-cart-sub/topo-cart-sub.tesh index 8424d4e354..aa69b8e599 100644 --- a/teshsuite/smpi/topo-cart-sub/topo-cart-sub.tesh +++ b/teshsuite/smpi/topo-cart-sub/topo-cart-sub.tesh @@ -1,5 +1,5 @@ p Test cart_sub -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/topo-cart-sub -q --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 4 ${bindir:=.}/topo-cart-sub -q --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > [rank 2] -> Fafard diff --git a/teshsuite/smpi/type-hvector/type-hvector.tesh b/teshsuite/smpi/type-hvector/type-hvector.tesh index 839186d9c2..38f1983587 100644 --- a/teshsuite/smpi/type-hvector/type-hvector.tesh +++ b/teshsuite/smpi/type-hvector/type-hvector.tesh @@ -1,6 +1,6 @@ p Test hvector ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 2 ${bindir:=.}/type-hvector -q --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 2 ${bindir:=.}/type-hvector -q --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > rank= 0, a[0][0]=0.000000 diff --git a/teshsuite/smpi/type-indexed/type-indexed.tesh b/teshsuite/smpi/type-indexed/type-indexed.tesh index 933004363e..5a3da54052 100644 --- a/teshsuite/smpi/type-indexed/type-indexed.tesh +++ b/teshsuite/smpi/type-indexed/type-indexed.tesh @@ -1,6 +1,6 @@ p Test indexed ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 2 ${bindir:=.}/type-indexed -q --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 2 ${bindir:=.}/type-indexed -q --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > buffer[0] = 0 diff --git a/teshsuite/smpi/type-struct/type-struct.tesh b/teshsuite/smpi/type-struct/type-struct.tesh index f564cbb3b7..213f5abded 100644 --- a/teshsuite/smpi/type-struct/type-struct.tesh +++ b/teshsuite/smpi/type-struct/type-struct.tesh @@ -1,6 +1,6 @@ p Test struct ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 2 ${bindir:=.}/type-struct -q --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ../../../examples/platforms/small_platform.xml -np 2 ${bindir:=.}/type-struct -q --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > Process 0 got -2 (-2?) and 8.000000 (8.0?), tab (should be all 0): 0 0 0 0 0 0 diff --git a/teshsuite/smpi/type-vector/type-vector.tesh b/teshsuite/smpi/type-vector/type-vector.tesh index 2e873efc4b..9b8a637aac 100644 --- a/teshsuite/smpi/type-vector/type-vector.tesh +++ b/teshsuite/smpi/type-vector/type-vector.tesh @@ -1,6 +1,6 @@ p Test vector ! output sort -$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/type-vector -q --log=smpi_kernel.thres:warning --log=xbt_cfg.thres:warning +$ ${bindir:=.}/../../../smpi_script/bin/smpirun -map -hostfile ../hostfile -platform ${platfdir}/small_platform.xml -np 2 ${bindir:=.}/type-vector -q --log=smpi_config.thres:warning --log=xbt_cfg.thres:warning > [rank 0] -> Tremblay > [rank 1] -> Jupiter > rank= 0, a[0][0]=0.000000 diff --git a/tools/cmake/DefinePackages.cmake b/tools/cmake/DefinePackages.cmake index 0d278d9606..3db1ff93f8 100644 --- a/tools/cmake/DefinePackages.cmake +++ b/tools/cmake/DefinePackages.cmake @@ -100,6 +100,7 @@ set(SMPI_SRC src/smpi/internals/smpi_replay.cpp src/smpi/internals/smpi_actor.cpp src/smpi/internals/smpi_utils.cpp + src/smpi/internals/smpi_config.cpp src/smpi/mpi/smpi_comm.cpp src/smpi/mpi/smpi_datatype.cpp src/smpi/mpi/smpi_datatype_derived.cpp @@ -117,6 +118,7 @@ set(SMPI_SRC src/smpi/include/smpi_actor.hpp src/smpi/include/smpi_coll.hpp src/smpi/include/smpi_comm.hpp + src/smpi/include/smpi_config.hpp src/smpi/include/smpi_datatype_derived.hpp src/smpi/include/smpi_datatype.hpp src/smpi/include/smpi_errhandler.hpp