computablee / DotMP

A collection of powerful abstractions for parallel programming in .NET with an OpenMP-like API.
https://computablee.github.io/DotMP/
GNU Lesser General Public License v2.1
29 stars 7 forks source link

[PERFORMANCE] Use `ConcurrentDictionary` for `Single`/`Ordered`/`Critical` #130

Open computablee opened 11 months ago

computablee commented 11 months ago

Identify the function(s) which are causing performance issues.

The current implementations of Parallel.Single/Ordered/Critical are locking a dictionary before modifying it. We can use a similar approach from the tasking system and use ConcurrentDictionary classes to implement lock-free modifications.

Describe the performance expected vs. performance observed.

Performance metrics still need to be measured. A comprehensive evaluation should be provided when a corresponding PR is opened.