Skip to content

Fluxie/scalar_set_eval

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

scalar_set_eval

An application for evaluating the performance of testing any value in a set A matches a value in a set B. The evaluations are done in parallel.

Preliminary results

Machine:

  • CPU: 3 600 MHz x 8
  • NVMe SSD

Number of values in a set: 10

Sets Test set size Matching sets Duration
10 10 0 0.006301 s
10 100 0 0.000030 s
10 1000 0 0.000098 s
10 10000 3 0.000386 s
100 10 0 0.000032 s
100 100 2 0.000047 s
100 1000 4 0.000494 s
100 10000 43 0.001760 s
1000 10 1 0.000062 s
1000 100 5 0.000232 s
1000 1000 58 0.001838 s
1000 10000 407 0.015398 s
10000 10 3 0.000303 s
10000 100 46 0.002302 s
10000 1000 478 0.019392 s
10000 10000 4047 0.144778 s
100000 10 55 0.002105 s
100000 100 483 0.019779 s
100000 1000 4859 0.181027 s
100000 10000 40012 1.475988 s

Number of values in a set: 100

Sets Test set size Matching sets Duration
10 10 0 0.000010 s
10 100 1 0.000018 s
10 1000 3 0.000057 s
10 10000 10 0.000286 s
100 10 0 0.000029 s
100 100 2 0.000057 s
100 1000 39 0.000278 s
100 10000 100 0.000922 s
1000 10 7 0.000167 s
1000 100 46 0.000738 s
1000 1000 401 0.002172 s
1000 10000 994 0.006434 s
10000 10 42 0.000659 s
10000 100 506 0.003014 s
10000 1000 3940 0.019635 s
10000 10000 9942 0.048411 s
100000 10 465 0.002645 s
100000 100 4866 0.024125 s
100000 1000 39460 0.187497 s
100000 10000 99404 0.477725 s

Number of values in a set: 1000

Sets Test set size Matching sets Duration
10 10 0 0.000025 s
10 100 3 0.000019 s
10 1000 10 0.000028 s
10 10000 10 0.000048 s
100 10 3 0.000034 s
100 100 41 0.000067 s
100 1000 100 0.000102 s
100 10000 100 0.000177 s
1000 10 44 0.000172 s
1000 100 359 0.000364 s
1000 1000 994 0.000539 s
1000 10000 1000 0.000628 s
10000 10 483 0.001447 s
10000 100 3991 0.003444 s
10000 1000 9940 0.006270 s
10000 10000 10000 0.006997 s
100000 10 4888 0.013774 s
100000 100 39265 0.035204 s
100000 1000 99340 0.058818 s
100000 10000 100000 0.059603 s

Number of values in a set: 10000

Sets Test set size Matching sets Duration
10 10 3 0.000044 s
10 100 10 0.000034 s
10 1000 10 0.000048 s
10 10000 10 0.000041 s
100 10 44 0.000061 s
100 100 100 0.000076 s
100 1000 100 0.000068 s
100 10000 100 0.000101 s
1000 10 401 0.000294 s
1000 100 989 0.000423 s
1000 1000 1000 0.000509 s
1000 10000 1000 0.000439 s
10000 10 4053 0.002220 s
10000 100 9942 0.003838 s
10000 1000 10000 0.005164 s
10000 10000 10000 0.006144 s
100000 10 40185 0.017047 s
100000 100 99400 0.036445 s
100000 1000 100000 0.035735 s
100000 10000 100000 0.033349 s

TODO

  • Run the tests multiple times and average out the results. Do not use results from the first run.
  • Figure out what causes the anomaly in the first test.
    • Delay in CPU clock ramp up?
    • Imprecise measurements?
    • Cold instruction? cache??
  • Store the test values in a ro_scalar_buffer instead of a vector and always iterate the smaller set.
    • This result should see improvement: | 100000| 10000| 40024| 1.477368 s|

About

An application for evaluating the performance of intersecting scalar sets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages