-
Notifications
You must be signed in to change notification settings - Fork 3.7k
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
[move-prover] Sharding feature + re-animate Prover.toml #15775
Conversation
⏱️ 4h 36m total CI duration on this PR
🚨 2 jobs on the last run were significantly faster/slower than expected
|
aef3e06
to
ebc35a8
Compare
5bf5802
to
afe2d9e
Compare
afe2d9e
to
22a726c
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
22a726c
to
4fc54a1
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
4fc54a1
to
0c22d8f
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
0c22d8f
to
e04c494
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
e04c494
to
61cbe98
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Boogie is using exhaustive amounts of memory if run as part of proving aptos-framework (100GB+), which makes CI and local testing fail randomly. This PR introduces a new `--shards` option which splits the Boogie job into multiple shards, if specified. Also re-animates the use of `Prover.toml` in a package directory allowing to set such options.
61cbe98
to
35d45b6
Compare
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
✅ Forge suite
|
✅ Forge suite
|
@@ -12,14 +12,14 @@ VectorPicture { length: 30720 } 34 0.924 1.081 6900.0 | |||
VectorPictureRead { length: 30720 } 34 0.938 1.089 6900.0 | |||
SmartTablePicture { length: 30720, num_points_per_txn: 200 } 34 0.972 1.074 42970.1 | |||
SmartTablePicture { length: 1048576, num_points_per_txn: 300 } 34 0.960 1.066 73865.4 | |||
ResourceGroupsSenderWriteTag { string_length: 1024 } 34 0.898 1.062 16.2 | |||
ResourceGroupsSenderWriteTag { string_length: 1024 } 34 0.898 1.062 19.2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This PR does not touch anything in the execution stack, so this most be from previous PRs. (Perhaps permissioned signers? @igor-aptos
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems like signer has indeed added noise - here it the recalibration PR - #15778
generated by doing:
./testsuite/single_node_performance_calibration.py --time-interval=3d
./testsuite/single_node_performance_calibration.py --move-e2e --time-interval=3d
note - this particular line didn't regress as much as you saw from the first run - you can see your second run much closer to the original value. But I assume all the changes create way too much noise anyways.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some comments, otherwise looks good to me.
#[clap(long)] | ||
pub shards: Option<usize>, | ||
|
||
/// If there are multiple shards, the shard to which verification shall be narrowed. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
From looking at other related code, it looks like the shards are numbered 1..
and not 0..
. We should document this, or perhaps make it numbered 0..
?
} | ||
if let Some(shard) = self.for_shard { | ||
// Check whether the shard is included. | ||
if self.options.only_shard.is_some() && self.options.only_shard != Some(shard + 1) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: could use is_some_and()
instead.
return false; | ||
} | ||
// Check whether it is part of the shard. | ||
let mut hasher = DefaultHasher::new(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this hasher is non-deterministic? Thus, if you decide to shard one by one, a target might fall into different shards each time? Thus, we may want to use a deterministic hasher.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@wrwg Checking in to see if you missed this before merging.
Description
Boogie is using exhaustive amounts of memory if run as part of proving aptos-framework (100GB+), which makes CI and local testing fail randomly. This PR introduces a new
--shards
option which splits the Boogie job into multiple shards, if specified. Also re-animates the use ofProver.toml
in a package directory allowing to set such options.How Has This Been Tested?
Existing tests
Type of Change
Which Components or Systems Does This Change Impact?