forked from portelli/lattice-benchmarks
		
	fix bug that made benchmark_quda hang randomly
This commit is contained in:
		| @@ -4,6 +4,7 @@ | ||||
| #include <cassert> | ||||
| #include <chrono> | ||||
| #include <color_spinor_field.h> | ||||
| #include <communicator_quda.h> | ||||
| #include <dirac_quda.h> | ||||
| #include <fstream> | ||||
| #include <gauge_tools.h> | ||||
| @@ -51,6 +52,10 @@ template <class F> double bench(F const &f, double target_time, int niter_warmup | ||||
|   // niter = std::min(1000, niter); | ||||
|   // printfQuda("during warmup took %f s/iter, deciding on %d iters\n", secs, niter); | ||||
|  | ||||
|   // important: each rank has its own timer, so their measurements can slightly vary. But | ||||
|   // 'niter' needs to be consistent (bug took me a couple hours to track down) | ||||
|   comm_broadcast_global(&niter, sizeof(niter), 0); | ||||
|  | ||||
|   timer.reset(__FUNCTION__, __FILE__, __LINE__); | ||||
|   timer.start(); | ||||
|   for (int iter = 0; iter < niter; ++iter) | ||||
|   | ||||
| @@ -28,5 +28,5 @@ mkdir -p "${PREFIX_DIR}" | ||||
|  | ||||
| LINK_FLAGS="-Wl,-rpath,$QUDA_DIR/lib: $QUDA_DIR/lib/libquda.so $EXTRA_LIBS -lpthread -lmpi" | ||||
|  | ||||
| g++ $BUILD_FLAGS  -I$QUDA_DIR/include   -c -o $BUILD_DIR/Benchmark_Quda.o  $script_dir/Benchmark_Quda.cpp | ||||
| g++ $BUILD_FLAGS -I$QUDA_DIR/include/targets/cuda  -I$QUDA_DIR/include   -c -o $BUILD_DIR/Benchmark_Quda.o  $script_dir/Benchmark_Quda.cpp | ||||
| g++ -g -O3 $BUILD_DIR/Benchmark_Quda.o -o $PREFIX_DIR/Benchmark_Quda $LINK_FLAGS -lmpi | ||||
|   | ||||
		Reference in New Issue
	
	Block a user