Commit Graph
100 Commits
Author SHA1 Message Date
mlemanczyk 046cfe7d26 BuildDivisorTransitions application added. 2025-12-15 07:30:29 +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 dce598c857 Results updated. 2025-12-15 04:32:23 +01:00
mlemanczyk a8a41c6132 Results updated. 2025-12-15 04:12:07 +01:00
mlemanczyk 7c3ed34df3 Results updated. 2025-12-15 04:05:10 +01:00
mlemanczyk 695e164f51 Results updated. 2025-12-15 04:04:52 +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 0fb5a5fa10 Merge branch 'simplify-bydivisor' of https://github.com/mlemanczyk/even-perfect-numbers-scanner into simplify-bydivisor 2025-12-13 14:29:25 +01:00
mlemanczyk 079b2d5b72 PartialFactorPendingEntry changed back to struct for better performance. 2025-12-13 14:28:01 +01:00
mlemanczyk 96bb6a4340 PartialFactorPendingEntry changed back to struct for better performance. 2025-12-13 14:26:55 +01:00
mlemanczyk a185149eba PrimeOrderCalculator.PartiaFactorCpu optimized to use one-time allocation list and stack. 2025-12-13 14:21:37 +01:00
mlemanczyk 9fcd21b734 Results updated. 2025-12-13 13:37:01 +01:00
mlemanczyk cbf3dfcf2e Results updated. 2025-12-13 05:12:22 +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 fd58079c5a Results updated. 2025-12-13 04:03:05 +01:00
mlemanczyk 964bc8b734 Results updated. 2025-12-12 23:35:47 +01:00
mlemanczyk d9bff88055 Results updated. 2025-12-12 22:06:37 +01:00
mlemanczyk 2607c6e2d4 Results updated. 2025-12-12 20:26:43 +01:00
mlemanczyk e8e67ebf83 Results updated. 2025-12-12 18:50:52 +01:00
mlemanczyk ca3785c20d Results updated. 2025-12-12 18:48:07 +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 8a5a8a7bb5 Results updated. 2025-12-12 11:51:28 +01:00
mlemanczyk 382f0c01a2 Results updated. 2025-12-12 04:53:13 +01:00
mlemanczyk 3e591586fb Results updated. 2025-12-12 04:10:15 +01:00
mlemanczyk d066c780ea Results updated. 2025-12-12 03:46:42 +01:00
mlemanczyk 15bcde1776 SemaphoreSlim replaced with PollingSemaphore. 2025-12-12 03:41:13 +01:00
mlemanczyk 471f9ac6cf Results updated. 2025-12-12 03:33:26 +01:00
mlemanczyk 8afd761d2a Results updated. 2025-12-12 03:18:04 +01:00
mlemanczyk 477d2675ef Results updated. 2025-12-12 01:52:25 +01:00
mlemanczyk 10f0fa272c Results updated. 2025-12-12 01:05:58 +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 0ec48f1f0b Tiny cleanup 2025-12-11 23:27:25 +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 60ccb3db74 Results updated. 2025-12-11 21:10:37 +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 7518ba396e Results updated. 2025-12-08 20:59:18 +01:00
mlemanczyk f7dbc017a9 Modulo operators replaced with steppers, where possible. 2025-12-08 20:57:47 +01:00
mlemanczyk 475507ce0c Results updated. 2025-12-08 16:39:07 +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
mlemanczyk d69ad9c64a State saving interval decreased. 2025-12-07 19:17:09 +01:00
mlemanczyk 6887111128 BigInteger-friendly steppers added. MersenneResidueStepper converted to struct. Manual residue tracking replaced with steppers. Modulo operations replaced with steppers. 2025-12-07 19:16:45 +01:00
mlemanczyk fbf074ade0 Results updated. 2025-12-07 13:48:11 +01:00
mlemanczyk 3f9cd53efc Results updated. 2025-12-07 00:21:57 +01:00
mlemanczyk a4c52e7282 Results updated. 2025-12-06 23:24:03 +01:00
mlemanczyk 9af8244040 Results updated. 2025-12-06 20:12:09 +01:00
mlemanczyk 788e11588e README updated. 2025-12-06 20:11:56 +01:00
mlemanczyk c44d188720 --mersenne=residue filtering results added. 2025-12-06 19:47:25 +01:00
mlemanczyk 3cde986fa0 Results file updated 2025-12-06 15:24:11 +01:00
mlemanczyk 573781f086 Results updated 2025-12-06 12:33:00 +01:00
mlemanczyk 374bf5fe53 Readme updated. 2025-12-06 11:33:00 +01:00
mlemanczyk 946798affe Results consolidated into one, raw file 2025-12-06 11:30:38 +01:00
mlemanczyk 86f20ed083 Support for q > 2^64 added in --mersenne=bydivisor mode 2025-12-05 23:33:21 +01:00
mlemanczyk cf5bd6bc1a PendingEntry.WithPrimality changed to modify the instance instead of creating a new one. 2025-12-05 15:51:16 +01:00
mlemanczyk 928e847f1f AscendingdivisorRemainderStepper used in PrimeTesterByLastDigit 2025-12-05 14:17:24 +01:00
mlemanczyk b3a325521a PrimeTester.IsPrimeCpu will now reuse remainders from previous checks. 2025-12-04 12:39:56 +01:00
mlemanczyk efb4933935 Tiny cleanup 2025-12-04 12:34:42 +01:00
mlemanczyk 19e549adc5 Readme extended. Added excluded candidates without recording the factor. 2025-12-04 12:27:44 +01:00
mlemanczyk bce11e0842 Factors from primality tests added. 2025-12-04 12:16:09 +01:00
mlemanczyk 86192a71b0 Divisor checking optimized to only flag if divisor was found or not without returning complete array of hits. We'll now also track residues for 13, 17 & 19 as the most frequent ones. 2025-12-03 00:57:25 +01:00
mlemanczyk 85a90c70bf --gpu-ration command-line argument added. AscendingDivisorRemainderStepper implemented in PrimeTester.IsPrimeCpu. PrimeOrderCalculator.RunOnCpu adjusted for low GPU ratios to prevent infinite increase of the counter. 2025-12-02 23:36:18 +01:00
mlemanczyk f43c67c86f Tasks will now save calculations progress and resume calculation upon restart. 2025-12-02 00:42:38 +01:00
mlemanczyk 941733905b Hybrid device mode implemented as the current --mersenne=bydivisor CPU execution path. CPU path is now limited to CPU calculations, only. 2025-12-01 03:45:39 +01:00
mlemanczyk 353a121d03 Alternative to SemaphoreSlim added 2025-11-30 15:41:00 +01:00
mlemanczyk c3254e3fda Temporary restored delegating all work to CPU in CPU mode in preparation for a branch-less split. 2025-11-30 15:40:03 +01:00
mlemanczyk 67c1d9309a Reusing prime work limiter to limit the number of active threads. 2025-11-30 15:37:01 +01:00
mlemanczyk fbfc682899 Restored heuristic prime tester use 2025-11-30 15:35:56 +01:00
mlemanczyk 6a1198c417 CPU vs GPU work delegation adjusted to better utilize CPU. 2025-11-29 12:09:33 +01:00
mlemanczyk c311b27dcc Prime testing using divisor tables depending on the last digit separated to its own class. PrimeTester switched back to standard endings. 2025-11-27 16:45:02 +01:00
mlemanczyk a296e62d4d --min-k command-line argument added. Partial factoring switched back to CPU. 2025-11-26 22:03:52 +01:00
mlemanczyk 13498dc460 Most device buffers integrated into PrimeOrderCalculatorAccelerator. PrimeOrderCalculator switched to partial factoring on GPU. 2025-11-26 03:16:39 +01:00
mlemanczyk 5b48a89448 Cleanup. Hint removed. 2025-11-25 01:34:31 +01:00
mlemanczyk bacb2a1d18 Cleanup. Unnecessary GC collection removed. It doesn't limit RAM usage. 2025-11-25 01:30:59 +01:00
mlemanczyk 1e9bd49145 Cleanup. No longer applicable TODO removed. 2025-11-25 01:30:13 +01:00
mlemanczyk 47521e327a Cleanup 2025-11-25 00:50:18 +01:00
mlemanczyk e8b4c1fc83 Missing return of accelerator added 2025-11-25 00:34:17 +01:00
mlemanczyk 3e756b262e Cleanup 2025-11-25 00:33:54 +01:00
mlemanczyk e9787f2991 Cleanup. Completed TODO removed. 2025-11-24 23:53:09 +01:00
mlemanczyk 91894637af Aggressive inlining added to simple switch methods. 2025-11-24 22:54:04 +01:00
mlemanczyk b9ca95bf8c PrimeOrderCalculatorAccelerator.Rent is now created outside of the loops and re-used for all calculations. 2025-11-24 22:51:53 +01:00
mlemanczyk 57a50e2a37 Pow2Mod kernel specific methods moved to Pow2MontgomeryKernels. 2025-11-24 18:04:07 +01:00