runtimeverification / runtimeverification/kontrol
Abstract configuration cells to improve performance
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 122
- Forks
- 16
- PR merge metrics
- No merged PRs in 30d
Description
Possibly related: https://github.com/runtimeverification/kontrol/pull/112
We are facing performance issues that are likely caused by the huge KEVM configurations that get generated in presence of multiple contracts.
As mentioned by @ehildenb, we might consider doing what Virgil implemented as a technique in Kasmer (which also gets quite huge configurations):
- When normal execution is going, it places a variable on the subconfiguration that gets huge (in our case, I guess the accounts cell, but we could also do fresh variables in the contents of each account in teh state, so that their storage isn't there, for example).
- When we get a branch, and can see that it's due to being too abstract, we concretize again using the stored abstraction, take the needed step of execution, then re-abstract.
That way, the overall configuration does not get too big for the backend.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue names no files, tests, or entry points. Start by reviewing the related pull request #112 and the Kasmer approach mentioned in the description. Done means reducing oversized configurations while preserving the described concretization and re-abstraction behavior during branching.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend, performance
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100