y-cruncher - A Multi-Threaded Pi-Program From a high-school project that went a little too far... By Alexander J. Yee

The first scalable multi-threaded Pi-benchmark for multi-core systems...

How fast can your computer compute Pi?

y-cruncher is a program that can compute Pi and other constants to trillions of digits.

It is the first of its kind that is multi-threaded and scalable to multi-core systems. Ever since its launch in 2009, it has become a common benchmarking and stress-testing application for overclockers and hardware enthusiasts.

y-cruncher has been used to set several world records for the most digits of Pi ever computed.

Current Release:

Official Mersenneforum Subforum (new).

Official HWBOT forum thread.

News:

Version 0.7.8 Patch with Zen 2 Optimizations: (March 1, 2020) - permalink

A new patch for v0.7.8 has been released. Aside from the usual bug fixes, this release includes a new binary optimized for AMD Zen 2 processors.

I don't usually add new features to patch releases. However, my priorities in recent months have largely shifted away from y-cruncher. As such, very little progress has been made on v0.7.9. With no timeline for when the next feature release will happen, I decided to pull the Zen 2 optimizations into the v0.7.8 branch.

That aside, the new Zen 2 binary seems bring about 10% performance improvement. This is far greater than the 1-2% that I had expected.

This may be a bit of a shocker, but I have no idea why the improvement is so large nor do I have the time to investigate. Most of the tuning is automated by a superoptimizer. So all I did was run the superoptimizer, wait a week for it to finish, then copy-paste the results into the code.

In other words, I have no idea what it did or what it found that is so significant. But it worked, and I'll take it - no questions asked.

The Pi Record Returns to the Personal Computer: (January 29, 2020) - permalink

After a grueling 10 months of computation running from April of last year to today, the world record for Pi has once again fallen. This time to Timothy Mullican who computed 50 trillion digits of Pi on a dated (but still powerful) personal computer.

As the previous record was set by Google using their cloud platform, this computation marks the return of the Pi record to single machine personal computers.

Timothy used a 2012-era computer (Ivy Bridge) along with a very large array of 48 modern hard drives. While the processing power was significantly less than that of Google's computation, it had a better balance of computing power and storage bandwidth - thus leading to a computation of comparable speed to Google's.

Full details of the computation can be found on Tim's blog.

Older News

Records Set by y-cruncher:

y-cruncher has been used to set a number of world record sized computations.

Blue: Current World Record

Green: Former World Record

Red: Unverified computation. Does not qualify as a world record until verified using an alternate formula.

See the complete list including other notably large computations. If you want to set a record yourself, the rules are in that link.

Features:

The main computational features of y-cruncher are:

Able to compute Pi and other constants to trillions of digits.

Two algorithms are available for most constants. One for computation and one for verification.

Multi-Threaded - Multi-threading can be used to fully utilize modern multi-core processors without significantly increasing memory usage.

- Multi-threading can be used to fully utilize modern multi-core processors without significantly increasing memory usage. Vectorized - Able to fully utilize the SIMD capabilities for most processors. (SSE, AVX, AVX512, etc...)

- Able to fully utilize the SIMD capabilities for most processors. (SSE, AVX, AVX512, etc...) Swap Space management for large computations that require more memory than there is available.

management for large computations that require more memory than there is available. Multi-Hard Drive - Multiple hard drives can be used for faster disk swapping.

- Multiple hard drives can be used for faster disk swapping. Semi-Fault Tolerant - Able to detect and correct for minor errors that may be caused by hardware instability or software bugs.

Download:

Sample Screenshot: 1 trillion digits of Pi Core i7 5960X @ 4.0 GHz - 64 DDR4 @ 2400 MHz - 16 HDs

Latest Releases: (September 14, 2020)

Downloading any of these files constitutes as acceptance of the license agreement. OS Download Link Size Windows y-cruncher v0.7.8.9507.zip 43.4 MB Linux (Static) y-cruncher v0.7.8.9507-static.tar.xz 29.2 MB Linux (Dynamic) y-cruncher v0.7.8.9507-dynamic.tar.xz 22.8 MB

The Linux version comes in both statically and dynamically linked versions. The static version should work on most Linux distributions, but lacks Cilk Plus and NUMA binding. The dynamic version supports all features, but is less portable due to the DLL dependency hell. The Windows download comes bundled with the HWBOT submitter which allows benchmarks to be submitted to HWBOT.

System Requirements:

Windows: Windows 7 or later.

The HWBOT submitter requires the Java 8 Runtime. Linux: 64-bit Linux is required. There is no support for 32-bit.

The dynamic version has been tested on Ubuntu 18.04. All Systems: An x86 or x64 processor. Very old systems that don't meet these requirements may be able to run older versions of y-cruncher. Support goes all the way back to even before Windows XP.

Version History:

Other Downloads (for C++ programmers):

Advanced Documentation:

Benchmarks:

Comparison Chart: (Last updated: September 13, 2020)

Computations of Pi to various sizes. All times in seconds. All computations done entirely in ram.

The timings include the time needed to convert the digits to decimal representation, but not the time needed to write out the digits to disk.

Blue: Benchmarks are up-to-date with the latest version of y-cruncher.

Green: Benchmarks were done with an old version of y-cruncher that is comparable in performance with the current release.

Red: Benchmarks are significantly out-of-date due to being run with an old version of y-cruncher that is no longer comparable with the current release.

Purple: Benchmarks are from unreleased internal builds that are not speed comparable with the current release.

Laptops + Low-Power:

Processor(s): Core i7 6560U Core i7 6700HQ Core i7 8565U Core i7 9750H Core i7 1065G7 Core i7 1065G7 Core i7 1165G7 Generation: Intel Skylake Intel Skylake Intel Kaby Lake R Intel Coffee Lake Intel Ice Lake Intel Ice Lake Intel Tiger Lake Cores/Threads: 4/8 4/8 4/8 6/12 4/8 4/8 4/8 Processor Speed: 2.21 GHz 2.6 GHz ? 2.3 - 4.6 GHz 3.1 - 3.9 GHz 2.1 - 3.0 GHz (25W) ??? 3.6 - 4.0 GHz (45W) Memory: 8 GB 16 GB 8 GB 16 GB - 2666 MT/s 16 GB @ 3200 MT/s 16 GB @ 3733 MT/s 32 GB @ 3200 MT/s Version: v0.7.8 (14-BDW) v0.7.8 (14-BDW) v0.7.8 (14-BDW) v0.7.8 (14-BDW) v0.7.7 (18-CNL) v0.7.8 (18-CNL) v0.7.8 (18-CNL) Instruction Set: x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-VBMI x64 AVX512-VBMI x64 AVX512-VBMI 25,000,000 3.165 2.140 1.584 1.463 1.596 1.243 1.046 0.868 50,000,000 7.212 4.634 3.523 3.123 3.552 2.718 2.318 1.825 100,000,000 16.008 10.168 7.837 6.585 7.903 5.870 5.150 3.888 250,000,000 46.491 29.298 23.336 18.378 22.520 16.531 14.745 10.813 500,000,000 105.889 65.509 54.403 40.028 50.683 37.778 32.856 23.769 1,000,000,000 233.860 144.395 127.177 87.298 114.539 85.426 73.918 52.930 2,500,000,000 429.748 251.637 332.819 249.579 222.515 156.696 5,000,000,000 348.512 10,000,000,000 Credit: Sebastien Davies Marco Julian Hummel ji lcpd ji lcpd Gnyueh ji lcpd

Processor(s): Core i7 3630QM Core i7 4610M Core i3 8121U (Windows*) Generation: Intel Ivy Bridge Intel Haswell Intel Cannon Lake Cores/Threads: 4/8 2/4 2/4 Processor Speed: 3.2 GHz 3.0 GHz 2.6 - 3.0 GHz 2.6 - 3.0 GHz 2.4 - 2.9 GHz Memory: 16 GB - 1600 MT/s 8 GB 8 GB Version: v0.7.8 (11-SNB) v0.7.8 (13-HSW) v0.7.8 (14-BDW) v0.7.8 (17-SKX) v0.7.8 (18-CNL) Instruction Set: x64 AVX x64 AVX2 x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-VBMI 25,000,000 3.688 3.372 2.984 2.685 2.189 50,000,000 8.460 7.634 6.795 6.079 4.879 100,000,000 18.817 17.037 15.173 13.654 10.725 250,000,000 56.097 48.912 45.801 41.775 31.268 500,000,000 129.173 109.82 106.192 97.429 75.072 1,000,000,000 302.003 244.751 241.978 222.909 170.715 2,500,000,000 848.475 5,000,000,000 10,000,000,000 Credit: Oliver Kruse Marco Julian Hummel

Mainstream Desktops:

Processor(s): Ryzen 7 1800X Ryzen 7 2700 Ryzen 7 3700X Core i7 8700K Core i7 9700K Core i9 9900K AMD Ryzen 9 3950X Generation: AMD Zen AMD Zen+ AMD Zen 2 Intel Coffee Lake Intel Coffee Lake Intel Coffee Lake AMD Zen 2 Cores/Threads: 8/16 8/16 8/16 6/12 8/8 8/16 16/32 Processor Speed: 3.7 GHz 3.2 GHz 4.3 GHz 4.9 - 5.0 GHz (OC) 4.6 GHz 4.7 GHz Memory: 64 GB - 3000 MT/s 64 GB - 2866 MT/s 64 GB - 2400 MT/s 64 GB - 3600 MT/s 16 GB - 3600 MT/s 16 GB - 3600 MT/s 32 GB - 3600 MT/s 16 GB - 3200 MT/s Program Version: v0.7.6 (17-ZN1) v0.7.8 (17-ZN1) v0.7.7 (17-ZN1) v0.7.8 (17-ZN1) v0.7.6 (14-BDW) v0.7.6 (14-BDW) v0.7.6 (14-BDW) v0.7.8 (17-ZN1) Instruction Set: x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX 25,000,000 1.247 1.247 1.354 0.704 0.930 0.730 0.675 0.701 50,000,000 2.655 2.623 2.978 1.459 2.023 1.630 1.496 1.422 100,000,000 5.759 5.655 6.496 3.051 4.352 3.605 3.259 2.870 250,000,000 16.115 16.053 18.186 8.465 11.925 10.213 9.032 7.279 500,000,000 35.783 35.607 40.446 18.714 25.883 22.960 20.018 15.037 1,000,000,000 79.345 78.961 90.405 41.545 56.387 50.819 44.175 32.306 2,500,000,000 228.840 226.557 258.018 118.406 157.515 145.464 125.223 91.836 5,000,000,000 498.923 498.824 573.432 261.921 279.321 204.570 10,000,000,000 1,092.887 1,084.855 1,241.333 570.517 460.548 Credit: Hiroyuki Oodaira (大平 寛之) Sebastien Davies Nehal Prasad ji lcpd Marc Beste

Processor(s): Core i7 920 FX-8350 Core i7 4770K Core i7 5775C Core i7 7700K AMD Ryzen 5 3600 Generation: Intel Nehalem AMD Piledriver Intel Haswell Intel Broadwell Intel Kaby Lake AMD Zen 2 Cores/Threads: 4/8 8/8 4/8 4/8 4/8 6/12 Processor Speed: 3.5 GHz (OC) 4.0 GHz 4.0 GHz (OC) 3.8 GHz (OC) 4.9 GHz (OC) Memory: 12 GB - 1333 MT/s 32 GB - 1600 MT/s 32 GB - 2133 MT/s 16 GB - 2400 MT/s 64 GB - 3200 MT/s 16 GB Program Version: v0.7.6 (08-NHM) v0.7.6 (11-BD1) v0.7.8 (11-BD1) v0.7.6 (13-HSW) v0.7.8 (13-HSW) v0.7.1 (14-BDW) v0.7.8 (14-BDW) v0.7.7 (17-ZN1) Instruction Set: x64 SSE4.1 x64 AVX + XOP x64 AVX + XOP x64 AVX2 x64 AVX2 x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX 25,000,000 4.934 3.239 3.070 1.524 1.482 1.730 1.149 1.068 50,000,000 10.935 7.167 6.845 3.365 3.396 3.940 2.489 2.232 100,000,000 24.792 15.700 15.130 7.527 7.385 8.739 5.482 4.813 250,000,000 73.153 43.787 43.077 20.766 20.610 25.073 15.419 12.950 500,000,000 164.107 97.843 96.327 46.358 45.964 56.343 33.986 28.469 1,000,000,000 374.590 219.344 214.870 102.451 101.692 125.967 74.021 63.035 2,500,000,000 633.021 623.521 291.632 292.899 369.738 209.412 178.707 5,000,000,000 1,408.939 1,384.689 645.998 643.534 451.414 10,000,000,000 966.710 Credit: André Bachmann Oliver Kruse Yusuke Kamui

High-End Desktops:

Processor(s): Core i9 7900X Core i9 7940X Core i9 9980XE Core i9 10980XE Threadripper 3970X Generation: Intel Skylake X Intel Skylake X Intel Skylake X Intel Cascade Lake X AMD Threadripper Cores/Threads: 10/20 14/28 18/18 18/36 32/64 Processor Speed: 4.3/4.0/3.6 GHz* 3.8 GHz 3.6 GHz 4.7/4.2/3.7 2.8 GHz 3.7 GHz 3.0 GHz cache 2.8 GHz cache Memory: 128 GB - 3600 MT/s 128 GB - 3466 MT/s 64 GB - 3600 MT/s 128 GB - 3600 MT/s 64 GB Program Version: v0.7.6 (17-SKX) v0.7.8 (14-BDW) v0.7.8 (17-SKX) v0.7.8 (17-SKX) v0.7.8 (17-SKX) v0.7.8 (17-ZN1) Instruction Set: x64 AVX512-DQ x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-DQ x64 AVX512-DQ x64 AVX2 + ADX 25,000,000 0.522 0.503 0.482 0.300 0.394 0.458 50,000,000 1.117 1.090 0.994 0.679 0.837 0.910 100,000,000 2.362 2.407 1.974 1.386 1.814 1.763 250,000,000 6.209 6.575 5.145 3.833 4.885 4.258 500,000,000 13.204 14.026 10.791 8.186 10.198 8.699 1,000,000,000 28.827 29.989 22.974 17.764 21.633 18.427 2,500,000,000 79.854 84.231 64.586 50.576 59.536 50.338 5,000,000,000 178.786 189.510 143.051 111.292 129.954 109.537 10,000,000,000 394.887 410.372 316.622 243.525 282.091 237.537 25,000,000,000 1119.634 1,185.891 903.586 799.543 Credit: 曾 铮 ji lcpd Tainus

Processor(s): Core i7 5960X Threadripper 1950X Generation: Intel Haswell AMD Threadripper Cores/Threads: 8/16 16/32 Processor Speed: 4.0 GHz (OC) 3.5 - 3.7 GHz Memory: 64 GB - 2133 MT/s 128 GB - 2933 MT/s Program Version: v0.7.6 (13-HSW) v0.7.8 (13-HSW) v0.7.8 (17-ZN1) Instruction Set: x64 AVX2 x64 AVX2 x64 AVX2 + ADX 25,000,000 0.812 0.853 0.721 50,000,000 1.942 1.769 1.500 100,000,000 4.072 3.828 3.173 250,000,000 10.991 10.807 8.666 500,000,000 23.929 23.523 18.926 1,000,000,000 52.768 51.930 41.762 2,500,000,000 149.365 149.081 119.06 5,000,000,000 330.414 326.022 264.191 10,000,000,000 722.456 713.146 572.900 25,000,000,000 1642.184 Credit: Oliver Kruse

*All-core non-AVX/AVX/AVX512 CPU frequency.

Multi-Processor Workstation/Servers:

Due to high core count and the effect of NUMA (Non-Uniform Memory Access), performance on multi-processor systems are extremely sensitive to various settings. Therefore, these benchmarks may not be entirely representative of what the hardware is capable of.

Processor(s): Xeon Platinum 8124M Xeon Gold 6148 Xeon Platinum 8175M Xeon Platinum 8275CL Epyc 7742 Epyc 7B12 Epyc 7742 Generation: Intel Skylake Purley Intel Skylake Purley Intel Skylake Purley Intel Cascade Lake AMD Rome AMD Rome AMD Rome Sockets/Cores/Threads: 2/36/72 2/40/40 2/48/96 2/48/96 2/128/256 2/112/224 2/128/256 Processor Speed: 3.0 GHz 2.4 GHz 2.5 GHz 3.0 GHz 2.25 GHz 2.25 GHz Memory: 137 GB - ?? 188 GB - ?? ~756 GB - ?? 192 GB ~504 GB ~882 GB 2 TB Program Version: v0.7.5 (17-SKX) v0.7.6 (17-SKX) v0.7.6 (17-SKX) v0.7.8 (17-SKX) v0.7.7 (17-ZN1) v0.7.8 (19-ZN2) v0.7.8 (19-ZN2) Instruction Set: x64 AVX512-DQ x64 AVX512-DQ x64 AVX512-DQ x64 AVX512-DQ x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX 25,000,000 0.540 0.329 0.294 0.283 0.534 0.439 0.513 50,000,000 0.981 0.683 0.617 0.544 1.027 0.838 0.920 100,000,000 1.905 1.456 1.305 1.169 2.298 1.796 1.887 250,000,000 5.085 3.737 3.591 3.125 5.854 4.509 4.650 500,000,000 10.372 7.750 7.293 6.309 10.502 8.196 8.066 1,000,000,000 21.217 16.550 15.041 13.042 17.836 14.252 13.246 2,500,000,000 55.701 45.693 39.329 34.028 35.485 30.592 27.011 5,000,000,000 118.151 99.078 83.601 71.777 62.432 58.405 49.940 10,000,000,000 247.928 212.984 176.695 153.169 115.543 116.900 98.156 25,000,000,000 599.653 491.988 425.442 307.995 314.907 258.081 50,000,000,000 1,081.181 690.662 741.633 598.716 100,000,000,000 1715.123 1,370.714 250,000,000,000 3,872.397 Credit: Jacob Coleman Oliver Kruse newalex Xinyu Miao Carsten Spille Greg Hogan Song Pengei

Processor(s): Xeon E5-2683 v3 Xeon E7-8880 v3 Xeon E5-2687W v4 Xeon E5-2686 v4 Xeon E5-2696 v4 Epyc 7601 Xeon Gold 6130F Generation: Intel Haswell Intel Haswell Intel Broadwell Intel Broadwell Intel Broadwell AMD Naples Intel Skylake Purley Sockets/Cores/Threads: 2/28/56 4/64/128 2/24/48 2/36/72 2/44/88 2/64/128 2/32/64 Processor Speed: 2.03 GHz 2.3 GHz 3.0 GHz 2.3 GHz 2.2 GHz 2.2 GHz 2.1 GHz Memory: 128 GB - ??? 2 TB - ??? 64 GB 504 GB - ??? 768 GB - ??? 256 GB - ?? 256 GB - ?? Program Version: v0.6.9 (13-HSW) v0.7.1 (13-HSW) v0.7.6 (14-BDW) v0.7.7 (14-BDW) v0.7.1 (14-BDW) v0.7.3 (17-ZN1) v0.7.3 (17-SKX) Instruction Set: x64 AVX2 x64 AVX2 x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX512-DQ 25,000,000 0.907 1.176 0.490 0.494 0.715 2.459 1.150 50,000,000 1.745 2.321 1.072 0.982 1.344 4.347 1.883 100,000,000 3.317 4.217 2.303 2.193 2.673 6.996 3.341 250,000,000 8.339 8.781 6.196 6.044 6.853 14.258 7.731 500,000,000 17.708 15.879 13.046 12.582 14.538 24.930 15.346 1,000,000,000 37.311 32.078 27.763 26.852 31.260 47.837 31.301 2,500,000,000 102.131 78.251 76.202 73.596 84.271 111.139 82.871 5,000,000,000 218.917 164.157 165.046 160.094 192.889 228.252 179.488 10,000,000,000 471.802 346.307 356.487 346.305 417.322 482.777 387.530 25,000,000,000 1,511.852 957.966 1,006.131 980.784 1,186.881 1,184.144 1,063.850 50,000,000,000 2,096.169 2,202.558 2,156.854 2,601.476 100,000,000,000 4,442.742 6,037.704 250,000,000,000 17,428.450 Credit: Shigeru Kondo Jacob Coleman Cameron Giesbrecht newalex "yoyo" Dave Graham

Fastest Times:

The full chart of rankings for each size can be found here:

These fastest times may include unreleased betas.



Got a faster time? Let me know: a-yee@u.northwestern.edu

Note that I usually do not respond to these emails. I simply put them into the charts which I update periodically (typically within 2 weeks).

Performance Tips:

Decimal Digits of Pi - Times in Seconds Core i9 7940X @ 3.7 GHz AVX512 Memory Frequency: 2666 MT/s 3466 MT/s 25,000,000 0.839 0.758 50,000,000 1.424 1.338 100,000,000 2.701 2.425 250,000,000 6.489 5.877 500,000,000 13.307 11.917 1,000,000,000 27.913 24.915 2,500,000,000 76.837 68.322 5,000,000,000 168.058 148.737 10,000,000,000 365.047 322.115 25,000,000,000 1,037.527 916.039 High core count Skylake X processors are known to be heavily bottlenecked by memory bandwidth.

Memory Bandwidth:

Because of the memory-intensive nature of computing Pi and other constants, y-cruncher needs a lot of memory bandwidth to perform well. In fact, the program has been noticably memory bound on nearly all high-end desktops since 2012 as well as the majority of multi-socket systems since at least 2006.

Recommendations:

Make sure all memory channels are populated. This is by far the most important since bandwidth scales almost linearly with the # of channels.

Run your memory at as high a frequency as possible to maximize bandwidth.

Memory timings are usually less important. Long memory latencies are hidden away fairly well by Hyperthreading.

On Skylake X processors, L3 cache bandwidth is also a bottleneck. So overclock the cache as much as possible.

Don't be surprised if y-cruncher exposes instabilities that other applications and stress-tests do not. y-cruncher is unusual in that it simultaneously places a heavy load on both the CPU and the entire memory subsystem.

Parallel Performance:

y-cruncher has a lot of settings for tuning parallel performance. By default, it makes a best effort to analyze the hardware and pick the best settings. But because of the virtually unlimited combinations of processor topologies, it's difficult for y-cruncher to optimally pick the best settings for everything. So sometimes the best performance can only be achieved with manual settings.

Try both the Push Pool and Cilk Plus frameworks. While the Push Pool is faster in most cases, Cilk Plus may be better for extremely small computations as well as on machines with many (> 64) cores.*

Experiment with larger task decomposition sizes. This may alleviate problems with load-imbalance.*

On Windows, if the system has more than 64 logical cores, make sure node-interleaving is disabled in the BIOS. Otherwise, it would lead to imbalanced processor groups which will lead to load-imbalance.

*These are advanced settings that cannot be changed if you're using the benchmark option in the console UI. To change them, you will need to either run benchmark mode from the command line or use the custom compute menu.

Load imbalance is a faily common problem in y-cruncher. The usual causes are:

The number of logical cores is not a power-of-two. The cores are not homogenous. Common reasons include: The cores are clocked at different speeds.

The cores have access to different amounts of memory bandwidth due an imbalanced NUMA topology.

The cores are different generation cores hidden behind a virtual machine. CPU-intensive background processes are interfering with y-cruncher's ability to use all the hardware. This applies to all forms of system jitter.

Large Pages:

Large pages used to not matter in the past, but they do now in the post-Spectre/Meltdown world. Mitigations for the Meltdown vulnerability can have a noticeable performance drop for y-cruncher (up to 5% has been observed). It turns out that turning on large pages can mitigate the penalty for this mitigation. (pun intended)

Refer to the memory allocation guide on how to turn on large pages.

Swap Mode:

This is probably one of the most complicated features in y-cruncher.

Read the guide so you know how to use it.

Depending on the CPU capability of your system, chances are you will either need multiple NVMe SSDs or many hard drives to avoid bottlenecking on disk I/O.

Don't use hardware or software RAID. y-cruncher usually does a better job if you let it manage each drive separately.

Don't use SSDs if you care about their lifespan. y-cruncher can and will destroy SSDs if you sustain it long enough.

Known Issues:

Everything in this section is in the process of being re-verified and moved to: https://github.com/Mysticial/y-cruncher/issues

Performance Issues:



Swap computations on the latest Ubuntu (15.10) and possibly everything else with the same kernel version have very poor performance in swap mode. This is because the OS does excessive and unnecessary disk swapping to the pagefile. The solution is to disable the swap file so that no paging is possible. It may also suffice to set the "swappiness" value to zero. y-cruncher will also attempt to lock pages in memory to prevent the OS from shooting itself with paging.





Algorithms and Developments:

FAQ:

Pi and other Constants:

Program Usage:

Hardware and Overclocking:

Academia:

Programming:

Other:

Links:

Here's some interesting sites dedicated to the computation of Pi and other constants:

Questions or Comments

Contact me via e-mail. I'm pretty good with responding unless it gets caught in my school's junk mail filter.

You can also find me on Twitter as @Mysticial.