The data-check compile-time option seems poorly debugged.
1. Compile IMB-MPI1 with data-check enabled (-DCHECK)
2. Create a msg_lengths file (for L in `seq 0 100`; do echo $L >> msg_len.txt; done)
3. Run with your favorite MPI implementation using two processes, the simples possible way, with the following arguments to IMB-MPI1:
-msglen msg_len.txt -iter 1 Exchange
and terrible things happens.
For example, with Open MPI and the command line:
mpirun -np 2 --mca btl self,sm ./IMB-MPI1 -msglen msg_len.txt -iter 1 Exchange
mpirun noticed that process rank 1 with PID 17473 on node x.y.z exited on signal 11 (Segmentation fault).
I've reproduced this and submitted it to our developer working on the Intel® MPI Benchmarks.
For more complete information about compiler optimizations, see our Optimization Notice.