Skip to content
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

Run multiple pre-defined benchmarks #947

Merged
19 commits merged into from
Jul 3, 2023
Merged

Conversation

ghost
Copy link

@ghost ghost commented Jun 26, 2023

This PR introduces the ability for ETE benchmarks to run multiple pre-defined datasets and group their results into a single output. The idea is that this will allow checking in well-known datasets, representative of behaviour we want to optimise for or track, and compare the evolution of their performance over time.

The comparison part is still pending.


  • CHANGELOG updated or not needed
  • Documentation updated or not needed
  • Haddocks updated or not needed
  • No new TODOs introduced or explained herafter

@github-actions
Copy link

github-actions bot commented Jun 26, 2023

Test Results

330 tests  ±0   324 ✔️ ±0   20m 39s ⏱️ - 4m 36s
111 suites ±0       6 💤 ±0 
    6 files   ±0       0 ±0 

Results for commit bd82fbe. ± Comparison against base commit 531ccca.

♻️ This comment has been updated with latest results.

@ch1bo ch1bo assigned ghost Jun 26, 2023
@ghost ghost force-pushed the abailly-iohk/pre-configured-benchmarks branch from 25e9cfa to 06086b4 Compare June 26, 2023 12:10
@github-actions
Copy link

github-actions bot commented Jun 26, 2023

Transactions Costs

Sizes and execution budgets for Hydra protocol transactions. Note that unlisted parameters are currently using arbitrary values and results are not fully deterministic and comparable to previous runs.

Metadata
Generated at 2023-07-03 12:33:50.909113537 UTC
Max. memory units 14000000
Max. CPU units 10000000000
Max. tx size (kB) 16384

Script summary

Name Hash Size (Bytes)
νInitial 2212a4ee618434b9b2f366d7c330dbdfb5c7072e793a850fd0de6ddd 4294
νCommit 69e1ccf9ad73dc6d37a5bc8de5aec86f3c4c1710fe5fd334e0e16b18 2124
νHead 8ae095dca4d14a1b8edffb37faa6c84ec60340fbf389a62f027e0b76 9355
μHead 33642a45c7fbb955ce1704ef09229bb211bf9af9980530db28c6aafe* 4148
  • The minting policy hash is only usable for comparison. As the script is parameterized, the actual script is unique per Head.

Cost of Init Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 4742 12.54 4.90 0.50
2 4947 16.64 6.51 0.55
3 5152 19.52 7.62 0.59
5 5559 23.65 9.15 0.65
10 6586 34.24 13.10 0.81
37 12121 97.89 37.09 1.74

Cost of Commit Transaction

This is using ada-only outputs for better comparability.

UTxO Tx size % max Mem % max CPU Min fee ₳
1 596 14.98 5.74 0.34
2 784 19.57 7.70 0.40
3 970 24.75 9.88 0.46
5 1350 36.07 14.56 0.61
10 2278 71.73 28.85 1.04
13 2845 98.03 39.15 1.35

Cost of CollectCom Transaction

Parties UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
1 57 815 27.63 10.73 0.49
2 114 1143 43.42 16.99 0.67
3 169 1453 61.70 24.31 0.89
4 226 1775 82.36 32.59 1.13

Cost of Close Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 672 19.03 8.65 0.40
2 804 20.27 9.68 0.42
3 770 18.49 7.81 0.39
5 1291 24.46 13.45 0.50
10 2124 31.42 19.73 0.64
50 8725 86.87 69.87 1.74

Cost of Contest Transaction

Parties Tx size % max Mem % max CPU Min fee ₳
1 708 25.22 10.98 0.46
2 840 26.49 12.01 0.49
3 1013 27.77 13.21 0.51
5 1335 31.63 16.12 0.58
10 2161 40.20 22.97 0.74
45 7938 99.74 70.74 1.82

Cost of Abort Transaction

Some variation because of random mixture of still initial and already committed outputs.

Parties Tx size % max Mem % max CPU Min fee ₳
1 4858 22.40 9.38 0.61
2 5174 36.76 15.59 0.79
3 5496 53.72 22.99 0.99
4 5818 73.47 31.59 1.23
5 5997 90.55 38.85 1.43

Cost of FanOut Transaction

Involves spending head output and burning head tokens. Uses ada-only UTxO for better comparability.

Parties UTxO UTxO (bytes) Tx size % max Mem % max CPU Min fee ₳
5 0 0 4761 8.66 3.57 0.46
5 1 57 4800 10.06 4.39 0.47
5 5 285 4949 15.64 7.69 0.55
5 10 571 5130 22.61 11.82 0.64
5 20 1137 5479 36.56 20.07 0.83
5 30 1706 5842 50.52 28.33 1.02
5 40 2280 6206 64.49 36.60 1.21
5 50 2847 6563 78.46 44.87 1.40
5 65 3701 7102 99.42 57.28 1.68

@ghost ghost force-pushed the abailly-iohk/pre-configured-benchmarks branch from 65134da to 24c9e86 Compare June 27, 2023 05:47
@ghost ghost marked this pull request as draft June 27, 2023 06:43
@ghost ghost force-pushed the abailly-iohk/pre-configured-benchmarks branch from b8f7d66 to 1cf3264 Compare June 30, 2023 06:15
@ghost ghost marked this pull request as ready for review June 30, 2023 07:56
@ghost ghost requested review from pgrange, ch1bo and v0d1ch June 30, 2023 07:56
abailly and others added 17 commits July 2, 2023 08:46
And use those to generate Summary
We only run one client per node anyway so the cluster size is always
exactly the number of client datasets
... in the hope it will allow OS to clean resources and prevent
spurious errors across different scenarios
Those transactions were put back in the submission which, I suspect,
caused the process to hang as the consuming side just stopped before
that.
Given the way we generate our datasets we should never observe invalid
txs because 1/ the dataset is a linear sequence of txs consuming the
previous one's output and 2/ we always wait for a tx to be confirmed
before submitting the next one.

However, it seems that under some circumstances, this can happen so we
would like to know when it does. Therefore, we fail the test with a
specific message to give more context about the failure and help
investigate when this happens.
@ghost ghost force-pushed the abailly-iohk/pre-configured-benchmarks branch from 77a28db to cdf7039 Compare July 2, 2023 11:37
Copy link
Contributor

@v0d1ch v0d1ch left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

BAM!

hydra-cluster/hydra-cluster.cabal Outdated Show resolved Hide resolved
@ghost ghost merged commit 89e2ddf into master Jul 3, 2023
@ghost ghost deleted the abailly-iohk/pre-configured-benchmarks branch July 3, 2023 15:47
@ch1bo ch1bo added this to the 0.12.0 milestone Aug 18, 2023
This pull request was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants