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

feat(executor): Add a parallel dataflow scheduler #20

Merged
merged 1 commit into from
Sep 13, 2024

Conversation

antoniupop
Copy link
Contributor

Add a parallel dataflow scheduler for computations in a SyncComputeRequest.

The scheduler runs on top of a DFG built using the daggy extension to petgraph and executes computations/tasks along the wavefront of maximum parallelism within the graph.
Circular dependences are detected early.

Copy link
Collaborator

@david-zk david-zk left a comment

Choose a reason for hiding this comment

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

Some comments

fhevm-engine/executor/src/dfg.rs Outdated Show resolved Hide resolved
fhevm-engine/executor/src/dfg.rs Show resolved Hide resolved
fhevm-engine/executor/src/dfg/scheduler.rs Outdated Show resolved Hide resolved
fhevm-engine/executor/src/dfg.rs Outdated Show resolved Hide resolved
@dartdart26
Copy link
Collaborator

I will look at the PR in detail tomorrow.

One thing I was wondering about - daggy doesn't have lots of downloads and maybe the same can be achieved via petgraph that is much more popular? Just to avoid a smaller library with potentially less support. Wdyt?

@antoniupop
Copy link
Contributor Author

I will look at the PR in detail tomorrow.

One thing I was wondering about - daggy doesn't have lots of downloads and maybe the same can be achieved via petgraph that is much more popular? Just to avoid a smaller library with potentially less support. Wdyt?

Daggy is an extension of petgraph specialised for DAGs. I think it's likely to be just fine and we can always switch over if needed.

fhevm-engine/executor/src/main.rs Show resolved Hide resolved
fhevm-engine/executor/src/server.rs Show resolved Hide resolved
fhevm-engine/executor/src/server.rs Outdated Show resolved Hide resolved
fhevm-engine/executor/src/dfg/scheduler.rs Outdated Show resolved Hide resolved
fhevm-engine/executor/src/dfg/types.rs Outdated Show resolved Hide resolved
… a SyncComputeRequest

The scheduler runs on top of a DFG built using the daggy extension to
petgraph and executes computations/tasks along the wavefront of
maximum parallelism within the graph.
Circular dependences are detected early.
@antoniupop antoniupop force-pushed the antoniu/dataflow-graph-scheduling branch from 9cb4ef4 to 5080aeb Compare September 13, 2024 18:23
@antoniupop antoniupop merged commit 1d93ef1 into main Sep 13, 2024
2 checks passed
@antoniupop antoniupop deleted the antoniu/dataflow-graph-scheduling branch September 13, 2024 18:43
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.

3 participants