Commit Graph
603 Commits
Author SHA1 Message Date
mlemanczyk 9147124ddf MersenneNumberTesterTemplate extended to depend on new enums: CacheStatus & OrderDevice instead of constructor parameters to limit code branches during execution. 2025-12-19 22:01:21 +01:00
mlemanczyk c5c42b0c19 MersenneNumberTesterTemplate made dependent on the calculation method to eliminate unnecessary branching. 2025-12-19 20:01:45 +01:00
mlemanczyk d32eea0212 DeviceDependentGenerator extended to allow generation of enum dependent templates. Name suffix separate to its own attribute. 2025-12-19 19:01:38 +01:00
mlemanczyk a21ab3134e MersenneNumberTester converted to device dependent MersenneNumberTesterTemplate. 2025-12-19 18:25:27 +01:00
mlemanczyk 74837a407e MersenneDivisorCycles converted to device template. 2025-12-19 04:03:27 +01:00
mlemanczyk 31ecf24522 TODOs added. 2025-12-19 00:10:21 +01:00
mlemanczyk 870819dec6 MersenneNumberDivisorByDivisorCpuTesterWithTemplate optimizations 2025-12-19 00:10:09 +01:00
mlemanczyk 4edad10be8 MethodImpl attributes adjustments. 2025-12-18 20:10:41 +01:00
mlemanczyk ed299edf56 MersenneNumberDivisorByDivisorCpuTesterWithCpuOrder, MersenneNumberDivisorByDivisorCpuTesterWithHybridOrder & MersenneNumberDivisorByDivisorCpuTesterWithGpuOrder converted to device dependent template MersenneNumberDivisorByDivisorCpuTesterWithTemplate. 2025-12-18 20:10:20 +01:00
mlemanczyk 2236c3ec35 MersenneCpuDivisorScanSessionWithCpuOrder, MersenneCpuDivisorScanSessionWithHybridOrder & MersenneCpuDivisorScanSessionWithGpuOrder converted to device dependent templates 2025-12-18 19:46:21 +01:00
mlemanczyk 8ea975f2ed DeviceDependentGenerator added to tasks.json. It can now generate the files during VS Code builds. Ignore list updated. 2025-12-18 09:39:56 +01:00
mlemanczyk af7c9491e4 DeviceDependentGenerator can now add suffix to the name of the generated types. 2025-12-18 09:23:41 +01:00
mlemanczyk 9faa397364 DeviceDependentGenerator added. 2025-12-18 07:37:53 +01:00
mlemanczyk 23748ad3d2 MethodImpl attributes added. Unnecessary try...finally blocks removed. 2025-12-18 05:31:27 +01:00
mlemanczyk 2abc6aae49 --mersenne=bydivisor testers and sessions integrated and converted to structs. 2025-12-18 05:07:31 +01:00
mlemanczyk 3c80221105 MontgomeryDivisorDataPool.Rent / .Return removed as we no longer pool Montgomery divisor data. UInt128Extensions.MontgomeryDivisorDataPool variables optimized. 2025-12-16 02:27:29 +01:00
mlemanczyk b7773adad8 PrimeOrderCalculator.ExponentLoweringCpu optimized to reuse factors & exponents span instead of its own buffers 2025-12-15 20:22:03 +01:00
mlemanczyk 566cbc3599 PrimeOrderCalculator.Cpu optimizations. 2025-12-15 17:22:55 +01:00
mlemanczyk 97fd041ec0 Tiny cleanup for improved readability. 2025-12-15 04:37:03 +01:00
mlemanczyk 2c18818ac8 PrimeOrderCalculator.PopulateSmallPrimeFactorsCpu, .ExtractSmallPrimeExponent & ULongExtensions.ReduceCycleRemainder optimized. 2025-12-15 04:36:47 +01:00
mlemanczyk 048d1576ef Tiny cleanup. 2025-12-15 04:33:09 +01:00
mlemanczyk 974b1da873 Small optimizations 2025-12-14 01:35:13 +01:00
mlemanczyk e0daccdc1a BTree fine-tuned. 2025-12-14 00:19:53 +01:00
mlemanczyk bca059c4f2 Initial BTree version implemented. 2025-12-14 00:03:51 +01:00
mlemanczyk e8cca74f68 DeeterministicRandom types optimized. 2025-12-13 16:00:28 +01:00
mlemanczyk 1b3882addc PrimeOrderCalculator.PartialFactorCpu variables optimized. Removed constant parameter from AddFactorToCollector. 2025-12-13 15:36:32 +01:00
mlemanczyk 079b2d5b72 PartialFactorPendingEntry changed back to struct for better performance. 2025-12-13 14:28:01 +01:00
mlemanczyk a185149eba PrimeOrderCalculator.PartiaFactorCpu optimized to use one-time allocation list and stack. 2025-12-13 14:21:37 +01:00
mlemanczyk ec080ade7f PendingEntry renamed to PartialFactorPendingEntry and moved to its own file. PrimeOrderCalculator.PartialFactor partially optimized to use fixed buffers factors & exponents. 2025-12-13 05:11:02 +01:00
mlemanczyk 8fbe248a49 Revert "Reusable buffers introduced."
This reverts commit 39a66fdef1.
2025-12-13 04:17:30 +01:00
mlemanczyk 39a66fdef1 Reusable buffers introduced. 2025-12-13 04:16:05 +01:00
mlemanczyk 8b0d09cc9c Fixed capacity stack improvements to make sure that each thread gets its own instance. 2025-12-12 14:43:49 +01:00
mlemanczyk 15bcde1776 SemaphoreSlim replaced with PollingSemaphore. 2025-12-12 03:41:13 +01:00
mlemanczyk 45c477de5a DefaultThreadPoolCapacity updated to avoid too big arrays without reason. 2025-12-12 00:57:51 +01:00
mlemanczyk 49e47b161d Tiny cleanup. Namespace updated. 2025-12-12 00:56:33 +01:00
mlemanczyk 43376745f5 Benchmarks to compare Interlocked with Atomic added. Atomic replaced with Interlocked on CPU path as better performer. 2025-12-11 23:45:01 +01:00
mlemanczyk 51284be4fb Micro-optimizations and adjustments. 2025-12-11 22:50:47 +01:00
mlemanczyk 8f0cc17d90 PoolingSemaphore optimized. 2025-12-11 21:46:07 +01:00
mlemanczyk 260aa19e44 Pools renamed to FixedCapacityPools. Other fixed capacity collections added. Queues, concurrent queues and standard stacks replaced with fixed capacity stacks. MethodImplOptions.AggressiveInlining and .AggressiveOptimization added to simple methods and getters / setters. Variables optimized in few places. 2025-12-11 21:10:19 +01:00
mlemanczyk 547d43de84 ExponentRemainderStepperCpu local variables optimized. Cache is now driven by manually calculated key to avoid unnecessary allocations. 2025-12-11 05:29:19 +01:00
mlemanczyk 131b3265bc PrimeOrderCalculator.Cpu cleaned up - hybrid & GPU related methods moved to their corresponding files. 2025-12-11 00:00:12 +01:00
mlemanczyk 5df2cc7f9b using cleaned up. 2025-12-10 23:59:04 +01:00
mlemanczyk 05d3061c47 MethodImplOptions.AggressiveOptimization & MethodImplOptions.AggressiveInlining optimized. Small optimizations. 2025-12-10 19:59:51 +01:00
mlemanczyk 7a242b3bfa PrimeOrderCalculator.PartialFactorCpu simplified to work only with spans and throw exception if the number of factors is exceeded. PrimeOrderMode removed in favor of bool flag. 2025-12-10 12:47:25 +01:00
mlemanczyk 72890bf343 Dictionary and List pooling added in PrimeOrderCalculator.Cpu. 2025-12-08 21:03:25 +01:00
mlemanczyk f7dbc017a9 Modulo operators replaced with steppers, where possible. 2025-12-08 20:57:47 +01:00
mlemanczyk 5c91d79927 State saving frequency increased to prevent too many re-calculations during frequent restarts. 2025-12-08 16:35:24 +01:00
mlemanczyk 6e68252279 Status update improvement. 2025-12-08 02:53:27 +01:00
mlemanczyk f1109330df Default no. of accelerators increased back to 298 (max without exceptions). State saving interval decreased to limit unnecessary overhead. 2025-12-08 02:51:04 +01:00
mlemanczyk f76cf05e10 Exception message added to console output. 2025-12-08 02:49:57 +01:00