Unidirectional seemingly does not work in conjunction with randomization of connection pairs.
Consider the following (stable branch):
mpirun --oversubscribe -n 2 ../../install/linktest --mode mpi --unidirectional --num-slowest 4 --num-warmup-messages 10 --num-messages 1000 --size-messages 1024 --num-randomize-tasks 8 -o test.sion;
This generates with cmdline debugging:
min-runtime->0.000000
DEBUG: memory-buffer-allocator->DEFAULT
DEBUG: unidirectional->1
DEBUG: num-multi-buffer->0
DEBUG: seed-randomize-buffers->1234567890
DEBUG: num-randomize-tasks->8
DEBUG: seed-randomize-tasks->29309775
[linktest.cc in main:83] info: System string = "generic"
[benchmark.cc in init:709] info: Using POSIX memory-aligned--malloc allocator
timings[000] [first sync] t= 545.02770 ms
Linktest: 2.1.16 (71a40916f2ab5402ca526e675b25cfe8674209db)
-----------------------------------------------------------------------------------
Virtual-cluster implementation: mpi
Message length: 1024 B
Number of messages: 1000
Number of warm-up messages. 10
Communication pattern: Semidirectional End to End
Memory-buffer type: posix_memalign
Unidirectional is obviously detected but for some reason is overwritten when the cmdline arguments are summarized. This should not occur.
Edited by Max Holicki