-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Single-threaded performance #46
Comments
Hi @bkomuves! I am in favor of creating an advanced pane where users can select more operations and also select single vs multi-core operations. I would be happy to review a PR that addresses this issue, if you want to take a stab at it. Replying more pedantically to your points: Thoughts? |
I politely disagree. I always use single-threaded performance when estimating the speeds of the different algorithms (and implementations), because that's what's actually comparable, and you can always just multiply by some ad-hoc parallel multipliers, say 6x-10x for a modern laptop, or 15-30x for a modern server (assuming very good parallelization), or whatever. But the point is that these multipliers change with the hardware. Not all ZK applications are supposed to run on the latest bleeding edge hardware. And it's simple to estimate the multiplier for your target machine, but pretty much impossible to estimate it for whatever machines these benchmarks where run on, without getting access to the exact same machine and running some benchmarks on your own, which kind of defeats the purpose. I don't think this service is useful for "non-experts" at all. I however think it can be very useful for experts. Oh I somehow missed the hovering machine description! Still, to reiterate, I personally have zero idea what Unfortunately I don't have the capacity either , but maybe when finally I get access to more man-power I can try and delegate. Thanks. |
Just replying to your paragraph:
because I think my view is already in the previous message (in short: I am ok with an advanced interface). About that, and trying to constructive, we try to support the widest range of hardware and CPU possible, including the cheapest available and (as mentioned in the about page) we are very welcoming for people to submit their new measurements :) If you are able to find some man-power I'm happy to have a more extended discussion. |
An easy approximation: Ed25519/Ristretto results are already single threaded, which makes them incomparable here usually. If anything else, then use the smallest machine and multiply the results by 8. This is probably not the approximation you'd like for real zk protocols, especialy not if comparing with bulletproofs. It's likely okay for basic questions though, like: How mush could BLS signatures cost vs Ed25519 or EC VRF? Answer there: BLS verifiers cost almost 200 x the cost of Ed25519. You could reduce this to 42 x for gossip messages by sending the EC VRF proof of the BLS signature. |
As I understand, most (?) of the benchmarks are multi-threaded.
However, I think it would be very useful to see single-threaded performance too. There are several reasons for that:
So a feature request: the ability to switch between single-threaded and multi-threaded benchmarks (and maybe also present some information about the number of physical / logical cores in the machines used for testing)
The text was updated successfully, but these errors were encountered: