/********************************************************************** * This file was generated by coNCePTuaL on Fri Aug 10 04:47:59 2018 * using the c_mpi backend (C + MPI). * Do not modify this file; modify /Users/xin/macworkspace/conceptual-1.5.1/examples/latency.ncptl instead. * * Entire source program * --------------------- * # A ping-pong latency test written in coNCePTuaL * * Require language version "1.5". * * # Parse the command line. * reps is "Number of repetitions of each message size" and comes from * "--reps" or "-r" with default 1000. * maxbytes is "Maximum number of bytes to transmit" and comes from * "--maxbytes" or "-m" with default 1M. * * # Ensure that we have a peer with whom to communicate. * Assert that "the latency test requires at least two tasks" with num_tasks>=2. * * # Perform the benchmark. * For each msgsize in {0}, {1, 2, 4, ..., maxbytes} { * for reps repetitions { * task 0 resets its counters then * task 0 sends a msgsize byte message to task 1 then * task 1 sends a msgsize byte message to task 0 then * task 0 logs the msgsize as "Bytes" and * the median of elapsed_usecs/2 as "1/2 RTT (usecs)" * } then * task 0 computes aggregates * } **********************************************************************/ /***************** * Include files * *****************/ /* Header files needed by all C-based backends */ #include #include #include /* Header files specific to the c_mpi backend */ #include #include /********** * Macros * **********/ /* Define the maximum loop trip count that we're willing to unroll fully. */ #define CONC_MAX_UNROLL 5 /* Specify the minimum number of trial iterations in each FOR