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

Add slim dedicated implementation of Parallel loop APIs #57580

Closed
kg opened this issue Aug 17, 2021 · 8 comments
Closed

Add slim dedicated implementation of Parallel loop APIs #57580

kg opened this issue Aug 17, 2021 · 8 comments
Assignees
Labels
Milestone

Comments

@kg
Copy link
Member

kg commented Aug 17, 2021

#57283 made Parallel.Invoke/For/ForEach work in WASM but there's a lot of cruft attached, the ideal long term solution is a simple custom implementation that doesn't pull in unnecessary dependencies. This probably pairs well with a wasm implementation of PLINQ.

@kg kg added the arch-wasm WebAssembly architecture label Aug 17, 2021
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@dotnet-issue-labeler dotnet-issue-labeler bot added the untriaged New issue has not been triaged by the area owner label Aug 17, 2021
@ghost
Copy link

ghost commented Aug 17, 2021

Tagging subscribers to 'arch-wasm': @lewing
See info in area-owners.md if you want to be subscribed.

Issue Details

#57283 made Parallel.Invoke/For/ForEach work in WASM but there's a lot of cruft attached, the ideal long term solution is a simple custom implementation that doesn't pull in unnecessary dependencies. This probably pairs well with a wasm implementation of PLINQ.

Author: kg
Assignees: -
Labels:

arch-wasm

Milestone: -

@ghost
Copy link

ghost commented Aug 17, 2021

Tagging subscribers to this area: @dotnet/area-system-threading-tasks
See info in area-owners.md if you want to be subscribed.

Issue Details

#57283 made Parallel.Invoke/For/ForEach work in WASM but there's a lot of cruft attached, the ideal long term solution is a simple custom implementation that doesn't pull in unnecessary dependencies. This probably pairs well with a wasm implementation of PLINQ.

Author: kg
Assignees: -
Labels:

arch-wasm, area-System.Threading.Tasks

Milestone: 7.0.0

@lewing lewing modified the milestones: 7.0.0, 8.0.0 Jul 25, 2022
@stephentoub
Copy link
Member

@kg, is this still something we might do or should we close it?

@kg
Copy link
Member Author

kg commented Jan 21, 2023

@kg, is this still something we might do or should we close it?

I don't have the data I would need to answer this. I think it's a question of whether the normal parallel APIs have too much overhead (in both time and code size) on the current implementation. Do we have benchmarks for them that already run?

@stephentoub
Copy link
Member

stephentoub commented Jan 26, 2023

Do we have benchmarks for them that already run?

I don't see any benchmarks for these in dotnet/performance.

@kg
Copy link
Member Author

kg commented Jan 26, 2023

I would lean towards not doing anything unless we hear feedback from users that it's necessary, especially since we will eventually have actual threading available and the slim version will not be useful in that scenario. These APIs have a lot of overhead in their design to begin with.

We would have the ability to conditionally ship either the slim or non slim version depending on whether we have threads, at least. So if we build a slim implementation it won't make the threaded scenario worse.

@stephentoub
Copy link
Member

SGTM.

@stephentoub stephentoub closed this as not planned Won't fix, can't repro, duplicate, stale Jan 26, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Feb 25, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

4 participants