ConorWilliams/libfork

Performance section desired simplification

Xottab-DUTY opened this issue · 4 comments

The Performance section in the readme doesn't have any timings provided, while the paper is absolutely unreadable because it's written in academic matters: formulas, coefficients, etc.
It would be great to have simple timings for simple developers that just want to use the library and want to have practical comparison in nanoseconds or CPU cycles: how much it takes to construct the task body, how much it takes for the task worker thread to pick up the task.

Think of comprehensive benchmarks like here: https://github.com/SergeyMakeev/ExcaliburHash

P.S. anyway, thanks for the amazing work!
I was thinking about such a library some time ago and found this. That's amazing!

Hi @Xottab-DUTY I think this is very fair criticism! Originally, I was hesitant to copy-paste in graphs from the paper as I though a graph like this:
image
may be misleading without details of what "speedup" is. I think your suggestion to just report time is appropriate in the README. I'll put together some measurements of spawn overhead and include the T3 UTS benchmarks time/memory costs.

What do you think about this

This is awesome!

Few comments:

  1. Is it possible with libfork to spawn the task object, but don't run it immediately, run it (add it to the queue) after some time?
    If so, then spawn time and run time are separate, then it's better to say something like this: the average time to spawn and run a task immediately
  2. It's also good to provide additional diagram showing how many ~millions of tasks the library can proceed in comparison with other libraries. I have seen in many task manager libraries that they provide such a diagrams (either only with their own results without comparison, or with it). You might come with another idea of the diagram, but yep, something like throughput results would be useful!

Cheers @Xottab-DUTY, as a continuation stealer libfork's tasks are always spawned and run immediately, I'll tweak the wording to make this clearer. I like the throughput idea will implement.