in gloo/benchmark/options.cc [21:108]
static void usage(int status, const char* argv0) {
if (status != EXIT_SUCCESS) {
fprintf(stderr, "Try `%s --help' for more information.\n", argv0);
exit(status);
}
fprintf(stderr, "Usage: %s [OPTIONS] BENCHMARK\n", argv0);
#define X(x) fputs(x "\n", stderr);
X("");
X("Participation:");
X(" -s, --size=SIZE Number of processes");
X(" Note: Need exactly two processes for send/recv benchmarks");
X(" -r, --rank=RANK Rank of this process");
X("");
X("Rendezvous:");
X(" -h, --redis-host=HOST Host name of Redis server");
X(" -p, --redis-port=PORT Port number of Redis server");
X(" -x, --prefix=PREFIX Rendezvous prefix (unique for this run)");
X(" --shared-path=PATH File system rendezvous with this shared path");
X("");
X("Transport:");
X(" -t, --transport=TRANSPORT Transport to use (tcp, ibverbs, ...)");
X(" --sync=BOOL Switch pairs to sync mode (default: false)");
X(" --busy-poll=BOOL Busy-poll in sync mode (default: false)");
X("");
X("Transport configuration for \"tcp\":");
X("");
X(" Note: if the device argument is not specified, Gloo uses the");
X(" network device associated with the machine's hostname.");
X("");
X(" --tcp-device=DEV[,DEV...] Network interface(s) to use (default: empty)");
X("");
X("Transport configuration for \"ibverbs\":");
X("");
X(" Note: the same port and index are used across all devices,");
X(" in case multiple are specified.");
X("");
X(" --ib-device=DEV[,DEV...] InfiniBand device(s) to use (default: mlx5_0)");
X(" --ib-port=PORT InfiniBand port to use (default: 1)");
X(" --ib-index=INDEX InfiniBand index to use (default: 0)");
X("");
X("Benchmark parameters:");
X(" --no-verify Do not verify results of first iteration");
X(" --show-all-errors Displays all errors when running with verify");
X(" --inputs Number of input buffers");
X(" --elements Number of floats to use per input buffer");
X(" --warmup-iters Number of warmup iterations to run (default: 5)");
X(" --iteration-count Number of iterations to run benchmark for");
X(" Iteration time is used by default if not specified");
X(" --iteration-time Minimum time to run benchmark for (default: 2s)");
X(" This value is unused if iteration count is specified");
X(" --threads Number of threads to spawn (default: 1)");
X(" --nanos Display timing data in nanos instead of micros");
X(" --gpudirect Use GPUDirect (CUDA only)");
X(" --halfprecision Use 16-bit floating point values");
X(" --destinations Number of separate destinations per host in "
"pairwise exchange benchmark");
X("Algorithm parameters:");
X(" --base The base for allreduce_bcube (if applicable)");
X(" --messages The number of messages to send from A to B for");
X(" sendrecv_stress and isendirecv_stress (default: 10000)");
X("");
X("BENCHMARK is one of:");
X(" allgather");
X(" allgather_v");
X(" allgather_ring");
X(" allreduce_ring");
X(" allreduce_ring_chunked");
X(" allreduce_halving_doubling");
X(" allreduce_bcube");
X(" allreduce_local");
X(" alltoall");
X(" alltoall_v");
X(" barrier_all_to_all");
X(" broadcast");
X(" broadcast_one_to_all");
X(" pairwise_exchange");
X(" reduce");
X(" reduce_scatter");
X(" scatter");
X(" sendrecv_roundtrip");
X(" sendrecv_stress");
X(" isendirecv_stress");
X("");
exit(status);
}