DotMP Pre-Release v1.6.0-pre2
Pre-releaseThis is a second pre-release of v1.6.0. Starting with this pre-release moving forward, we will no longer be providing binaries on GitHub. We recommend using the NuGet package manager. This saves me some time and energy.
Performance Improvements
Index calculations have been thoroughly optimized across the board. v1.6.0-pre1 optimized index calculations for 2D and 3D loops, and pre2 optimizes index calculations for 4D and higher to a significant margin.
GetThreadNum
has also been optimized, though this is already such a lightweight function that it's hardly noticeable.
Atomics
We have now implemented atomic subtraction for unsigned integer types. Two new methods were added to the Atomic
static class: uint Sub(ref uint, uint)
, and ulong Sub(ref ulong, ulong)
. These are not super optimized and could probably be better before the full v1.6.0 release.
Reorganizing
There has been some internal reorganizing. DotMP exceptions have been moved to the DotMP.Exceptions
namespace, and the actual scheduler implementations have been moved to the DotMP.Schedulers
namespace.
Bug fixes
There are a few bug fixes and performance improvements throughout DotMP.
What's Changed
- Improve
GetThreadNum
performance by @computablee in #111 - nuget: bump Microsoft.NET.Test.Sdk from 17.7.2 to 17.8.0 in /DotMP-Tests by @dependabot in #112
- nuget: bump the xunit group in /DotMP-Tests with 1 update by @dependabot in #113
- Implement optimized index calculations for collapse(4) and higher by @computablee in #114
- nuget: bump the xunit group in /DotMP-Tests with 5 updates by @dependabot in #116
- Implement atomic subtraction for unsigned integers by @computablee in #118
- Add error checking to ForCollapse by @computablee in #120
- Create symbols for nuget by @computablee in #121
Full Changelog: v1.6.0-pre1...v1.6.0-pre2