Skip to content
This repository was archived by the owner on Apr 25, 2024. It is now read-only.

Conversation

@nwatson22
Copy link
Contributor

@nwatson22 nwatson22 commented Nov 15, 2023

  • Adds ParallelAPRProver and ParallelAPRBMCProver, which implement ParallelProver interface for APR and APRBMC proofs
  • Adds interface ProcessData, implemented by APRProcessData, for passing in data into a process at the beginning and sharing data within the same process, but between different tasks
  • To enable this, switches to using manual queues and process spawning in prove_parallel
  • Adds tests exercising parallel proving with APRProver, APRProof, and APRProcessData

Blocked on runtimeverification/hs-backend-booster#383
Blocked on runtimeverification/evm-semantics#2272

nwatson22 and others added 30 commits October 31, 2023 14:22

@abstractmethod
def exec(self) -> U:
def exec(self, data: D) -> U:
Copy link
Collaborator

Choose a reason for hiding this comment

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

My understanding is that data is fixed for a given run of prove_parallel. What's the advantage of providing data as an argument to exec and not in __init__ of the Prover implementation?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Yes, it is now fixed, but I'm still using at as a way to only pass in large objects to the worker threads once at the beginning. With the way you suggest is there a different way exec could get access to the data?

Copy link
Collaborator

Choose a reason for hiding this comment

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

Prover instantiates ProofStep, so if Prover has access to data, then it can also pass it to ProofStep during instantiation. The exec method then reads data from its instance.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants