-
-
Notifications
You must be signed in to change notification settings - Fork 98
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
Proposal: Cross-Implementation Benchmarking Dataset for Plutus Performance #1049
Comments
@sierkov we should use https://github.com/pragma-org/uplc instead of this repo We are using a set of flat encoded files from the Haskell code base to benchmark against https://github.com/pragma-org/uplc/blob/main/crates/uplc/benches/benchmarks/haskell.rs We also have a binary of the Haskell benchmarks to make it possible to run in CI or to just compare against locally. I'm also working on a go implementation for blinklabs |
@rvcas, thank you for the quick response. Sure, I'll add https://github.com/pragma-org/uplc to the list instead. Would recreating this issue in that repository be helpful? Regarding the go implementation, would you like us to benchmark it as well? If so, could you provide a link to it? Regarding the benchmarked scripts, in my view, a dataset that is representative of the actual frequency and behavior of scripts executed on the mainnet can help all implementations optimize their performance for the actual profile of scripts. If you were to translate your concerns into a requirement for the proposed dataset, what would that requirement be? For example, would you like to have some form of compatibility with your existing set? I'd like this dataset to provide practical value to participating projects, so if there are requirements that can help to make it more useful in your day-to-day development activities, I'd love to learn about them. |
@rvcas, I've shared the links to the dataset and the reference benchmarking code in a related issue in the main Plutus repository in which you are tagged as well: Please, let me know what you've decided about this task. Shall I move it to the https://github.com/pragma-org/uplc? |
@sierkov, we can keep it here; it's the same people maintaining both repositories anyway. |
I'm working on a C++ implementation of Plutus aimed at optimizing batch synchronization. We'd like to benchmark our implementation against existing open-source Plutus implementations to foster cross-learning and understand their relative performance. This issue is a request for feedback on the proposed benchmark dataset, as well as for approved code samples representing your implementation to include in our benchmarks. Detailed information is provided below.
The proposed benchmark dataset is driven by the following considerations:
The procedure for creating the proposed benchmark dataset is as follows:
<mainnet-epoch>/<transaction-id>-<script-hash>-<redeemer-idx>.flat.
To gather performance data across open-source Plutus implementations, I am reaching out to the projects listed below. If there are any other implementations not listed here, please let me know, as I’d be happy to include them in the benchmark analysis. The known Plutus implementations:
I look forward to your feedback on the proposed benchmark dataset and to your support in providing code that can represent your project in this benchmark.
The text was updated successfully, but these errors were encountered: