coryan / jaybeams

JayBeams: A Project to have fun Coding, and maybe measure relative delays in market feeds
Apache License 2.0
2 stars 2 forks source link

TDE multi array benchmark requires further investigation #131

Open GFariasR opened 7 years ago

GFariasR commented 7 years ago

Initial results obtained running the TDE multi array benchmark (jb/fftw/bm_time_delay_estimator_many) are not confirming our assumption:

For example: float:aligned:single summary min=110us, p25=111us, p50=111us, p75=111us, p90=113us, p99=114us, p99.9=118us, max=198us, N=10000

float:aligned:many summary min=113us, p25=113us, p50=113us, p75=113us, p90=115us, p99=116us, p99.9=123us, max=250us, N=10000

So, further investigation is required.

We will start finding out answers for the following questions: Are running more iterations in one case vs. the other? Why one path is slower than the other? Use callgrind to find out Did we make sure FFTW is given the right options with respect to memory alignment? Is the test fair with respect to FFTW initialization?

coryan commented 7 years ago

It is also possible that FFTW does well when the number of parallel timeseries is small (try 1, 2, 4, 8).

And there are more options to FFTW, such as whether it can destroy the inputs, or whether it can spend time finding the best execution plan or should just estimate based on the sizes.

coryan commented 7 years ago

Also, you can add a void iteration_setup(); member function to your fixture class to reset the array/vector to well known values before each iteration. The time taken to run iteration_setup() is not included in the performance results.