Adapt Makefile after the last commit to measure the speedup instead of
trying several values for parameters in order to configure the
pipeline_template benchmark.
Change default mode from stage time measurement to speedup measurement.
Previously, each stage featured a sleep whose length is proportional to
a fixed total time divided by the number of cores involve in the
computation multiplied to the number of packets handled in order to
measure the length in time of one stage. That is, for a number of core
nc, a number of packets np and a total time T, the time spent to sleep
was t=T/(nc*np). By fixing both the number of cores and the total time,
it was thus possible to measure the time needed to deal with one packets
in one stage.
Now, the default mode is to not do any sleep and thus have a computation
whose complexity is inversely proportional to the number of cores. By
varying the number of cores, it is thus possible to measure the speedup.
Not sure declarations leads to real allocation anyway (it should be done
according to the pragmas instead) but just in case, move the declaration
of variables in main so that they are statically allocated.
Only print a probability for a few possible CRC of the last packet in
order to reduce the number of logs. This allows the program to be run
through ssh and to easily check wether the result is correct or not.
pipeline_template.c is an example of a pipeline parallelism friendly code in the
sense that it can't be parallelized by any other known parallelization technique.
* Source file for FMradio with (i) openmp stream extension and (ii)
openmp stream and data parallelism extensions.
* Input files (small and larger one) to test FMradio.
* Compiled version of FMradio just in case of any later problem in the
toolchain (although the toolchain itself is saved in git).