Reusing prime work limiter to limit the number of active threads.
This commit is contained in:
1 parent
fbfc682899
commit
67c1d9309a
1 file changed
+3
@@ -1,6 +1,7 @@
|
|||||||
using System.Buffers;
|
using System.Buffers;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using PerfectNumbers.Core.Gpu;
|
||||||
using PerfectNumbers.Core.Gpu.Accelerators;
|
using PerfectNumbers.Core.Gpu.Accelerators;
|
||||||
|
|
||||||
namespace PerfectNumbers.Core;
|
namespace PerfectNumbers.Core;
|
||||||
@@ -296,6 +297,7 @@ public static class MersenneNumberDivisorByDivisorTester
|
|||||||
() =>
|
() =>
|
||||||
{
|
{
|
||||||
startGate.Wait();
|
startGate.Wait();
|
||||||
|
GpuPrimeWorkLimiter.Acquire();
|
||||||
Console.WriteLine($"Task started for range {rangeStart}");
|
Console.WriteLine($"Task started for range {rangeStart}");
|
||||||
|
|
||||||
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
|
var gpu = PrimeOrderCalculatorAccelerator.Rent(1);
|
||||||
@@ -307,6 +309,7 @@ public static class MersenneNumberDivisorByDivisorTester
|
|||||||
PrimeOrderCalculatorAccelerator.Return(gpu);
|
PrimeOrderCalculatorAccelerator.Return(gpu);
|
||||||
Console.WriteLine($"Task finished for range {rangeStart}");
|
Console.WriteLine($"Task finished for range {rangeStart}");
|
||||||
PrimeOrderCalculatorAccelerator.DisposeAll();
|
PrimeOrderCalculatorAccelerator.DisposeAll();
|
||||||
|
GpuPrimeWorkLimiter.Acquire();
|
||||||
},
|
},
|
||||||
CancellationToken.None,
|
CancellationToken.None,
|
||||||
TaskCreationOptions.DenyChildAttach,
|
TaskCreationOptions.DenyChildAttach,
|
||||||
|
|||||||
Reference in new issue
Block a user