y-cruncher - A Multi-Threaded Pi-Program

From a high-school project that went a little too far...

By Alexander J. Yee

(Last updated: December 4, 2019)

 

Shortcuts:

 

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:

Windows: Version 0.7.8 Build 9503 (Released: October 27, 2019)

Linux      : Version 0.7.8 Build 9503 (Released: October 27, 2019)

 

Official Mersenneforum Subforum (new).

Official HWBOT forum thread.

 

News:

 

Second Formula for Zeta(5): (November 1, 2019) - permalink

 

Oliver Kruse has managed to unearth a new formula for Zeta(5) based on one of the original BBP papers. As far as I can tell, this formula is mathematically independent from Broadhurst's formula from 1998. Thus we finally have two different formulas for Zeta(5).

 

Moving forward, it is no longer permitted to use two versions of Broadhurst's formula as compute/verify pairs as had been done in the records to date.

 

Therefore, the fastest pair of allowed formulas for Zeta(5) records are:

The formula file for the new formula will be bundled into the next patch or release of y-cruncher.

 

With some basic optimizations, the new formula looks like this:

 

 

Version 0.7.8 Public Beta: (October 5, 2019) - permalink

 

Version 0.7.8 is now available as a public beta and release candidate. More information here.

 

This is unusual since I normally just push new versions out. But the changes in v0.7.8 are large and intruisive enough that I want some public user-testing before anybody tries to do anything crazy with it. (i.e. setting world records)

 

 

 

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.

Date Announced Date Completed: Source: Who: Constant: Decimal Digits: Time: Computer:
December 4, 2019 November 13, 2019  

Christophe Patris de Broe

& Alexandre Gouy

& Cyril Hsu

Golden Ratio 20,000,000,000,000

Compute:  6.94 days

Not Verified

Intel Xeon Platinum 8268 @ 2.9 GHz

768 GB

November 26, 2019 August 31, 2019

Screen

Screen

Hiroyuki Oodaira (大平 寛之) Log(10) 1,000,000,000,000 Compute:  8.73 days

Verify:  9.79 days

AMD Ryzen 3700X @ 3.6 GHz

128 GB

September 23, 2019

Screen

Screen

Hiroyuki Oodaira (大平 寛之) Golden Ratio 5,000,000,000,000 Compute:  46.9 hours

Verify:  46.8 hours

AMD Ryzen 3700X @ 3.6 GHz

128 GB

October 21, 2019 October 17, 2019   Marco Julian Hummel Gamma(1/3) 274,877,906,944 Compute:  11.2 days

Verify:  30.7 days

2 x Intel Xeon E5-2651 v2 @ 1.8 GHz

192 GB

July 21, 2019 July 16, 2019  

Seungmin Kim

Catalan's Constant 600,000,000,100

Compute:  23.8 days

Verify:  39.0 days

2 x Intel Xeon Gold 6140 @ 2.3 GHz

187 GB

June 6, 2019 May 26, 2019

Screen

Screen

Ian Cutress Zeta(3) - Apery's Constant 1,000,000,000,000

Compute:  5.89 days

Verify:  18.5 days

2 x Intel Xeon 8260L @ 2.4 GHz

768 TB + 6 TB Optane

2 x Xeon 8280 @ 2.7 GHz

1.5 TB

May 22, 2019 May 21, 2019 Screen

Seungmin Kim

Ian Cutress

Lemniscate 600,000,000,000

Compute:  47.4 days

Verify:  5.20 days

2 x Intel Xeon Gold 6140 @ 2.3 GHz

187 GB

2 x Intel Xeon 8260L @ 2.4 GHz

768 TB + 6 TB Optane

April 29, 2019 April 26, 2019   Jacob Riffee Log(2) 1,000,000,000,000 Compute:  30.9 days

Verify:  51.0 days

Intel Xeon E5-2660 @ 2.2 GHz

32 GB + 6 x 4 TB HD

April 22, 2019 April 20, 2019

Screen

Screen

Ian Cutress Gamma(1/4) 362,560,990,822 Compute:  3.01 days

Verify:  3.32 days

AMD Epyc 7601 @ 2.2 GHz

2 TB + 7 x 2 TB SSD

March 25, 2019 March 24, 2019  

Oliver Kruse

Ian Cutress

Zeta(5) 100,000,000,000

Compute:  62.4 days

Verify:  6.67 days

AMD Threadripper 1950X @ 3.4 GHz

128 GB

AMD Epyc 7601 @ 2.2 GHz

1 TB

March 14, 2019 January 21, 2019

Blogs

1 + 2

Emma Haruka Iwao Pi 31,415,926,535,897 Compute:  121 days

Verify:  20.0 hours

Validation File

2 x Undisclosed Intel Xeon @ 2.00 GHz
> 1.40 TB DDR4
> 240 TB SSD
January 3, 2019 January 3, 2019   Gerald Hofmann e 8,000,000,000,000 Compute:  28.5 days

Verify:  24.5 days

2 x AMD Epyc 7551 @ 2.0 GHz

256 GB

August 24, 2017 August 23, 2017   Ron Watkins Euler-Mascheroni Constant 477,511,832,674

Compute:  34.4 days

Verify:  141 days

4 x Xeon E5-4660 v3 @ 2.1 GHz - 1 TB
2 x Xeon X5690 @ 3.47 GHz - 128 GB
November 15, 2016 November 11, 2016 Blog
Sponsor
Peter Trueb Pi 22,459,157,718,361 Compute:  105 days

Verify:  28 hours

Validation File

4 x Xeon E7-8890 v3 @ 2.50 GHz
1.25 TB DDR4
20 x 6 TB 7200 RPM Seagate
June 28, 2016 June 19, 2016   Ron Watkins Square Root of 2 10,000,000,000,000

Compute:  18.8 days

Verify:  25.2 days

2 x Xeon X5690 @ 3.47 GHz
141 GB
October 8, 2014 October 7, 2014  

Sandon Van Ness

(houkouonchi)

Pi 13,300,000,000,000

Compute:  208 days

Verify:  182 hours

Validation File

2 x Xeon E5-4650L @ 2.6 GHz
192 GB DDR3 @ 1333 MHz
24 x 4 TB + 30 x 3 TB
December 28, 2013 December 28, 2013 Source Shigeru Kondo Pi 12,100,000,000,050

Compute: 94 days

Verify: 46 hours

2 x Xeon E5-2690 @ 2.9 GHz
128 GB DDR3 @ 1600 MHz
24 x 3 TB

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:

 

Download:

Sample Screenshot: 1 trillion digits of Pi

Core i7 5960X @ 4.0 GHz - 64 DDR4 @ 2400 MHz - 16 HDs

 

Latest Releases: (October 27, 2019)

Downloading any of these files constitutes as acceptance of the license agreement.

OS Download Link Size

Windows

y-cruncher v0.7.8.9503.zip

39.5 MB

Linux (Static)

y-cruncher v0.7.8.9503-static.tar.xz

26.3 MB

Linux (Dynamic)

y-cruncher v0.7.8.9503-dynamic.tar.xz

20.4 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:

Linux:

All Systems:

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: November 5, 2019)

 

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
Generation: Intel Skylake Intel Skylake Intel Kaby Lake R Intel Coffee Lake Intel Ice Lake Intel Ice Lake
Cores/Threads: 4/8 4/8 4/8 6/12 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) ???
Memory: 8 GB 16 GB 8 GB 16 GB - 2666 MT/s 16 GB @ 3200 MT/s 16 GB @ 3733 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)
Instruction Set: x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-VBMI x64 AVX512-VBMI
25,000,000 3.165 2.140 1.584 1.463 1.596 1.243 1.046
50,000,000 7.212 4.634 3.523 3.123 3.552 2.718 2.318
100,000,000 16.008 10.168 7.837 6.585 7.903 5.870 5.150
250,000,000 46.491 29.298 23.336 18.378 22.520 16.531 14.745
500,000,000 105.889 65.509 54.403 40.028 50.683 37.778 32.856
1,000,000,000 233.860 144.395 127.177 87.298 114.539 85.426 73.918
2,500,000,000   429.748   251.637 332.819 249.579 222.515
5,000,000,000              
10,000,000,000              
Credit: Sebastien Davies Marco Julian Hummel   ji lcpd ji lcpd Gnyueh
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): AMD Ryzen 5 3600 Ryzen 7 1800X Ryzen 7 2700 Ryzen 7 3700X Core i7 8700K Core i7 9700K Core i9 9900K
Generation: AMD Zen 2 AMD Zen AMD Zen+ AMD Zen 2 Intel Coffee Lake Intel Coffee Lake Intel Coffee Lake
Cores/Threads: 4/8 8/16 8/16 8/16 6/12 8/8 8/16
Processor Speed:   3.7 GHz 3.2 GHz 4.3 GHz 4.9 - 5.0 GHz (OC) 4.6 GHz 4.7 GHz
Memory: 16 GB 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
Program Version: 0.7.7 (17-ZN1) 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)
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.068 1.247 1.247 1.354 0.704 0.930 0.730 0.675
50,000,000 2.232 2.655 2.623 2.978 1.459 2.023 1.630 1.496
100,000,000 4.813 5.759 5.655 6.496 3.051 4.352 3.605 3.259
250,000,000 12.950 16.115 16.053 18.186 8.465 11.925 10.213 9.032
500,000,000 28.469 35.783 35.607 40.446 18.714 25.883 22.960 20.018
1,000,000,000 63.035 79.345 78.961 90.405 41.545 56.387 50.819 44.175
2,500,000,000 178.707 228.840 226.557 258.018 118.406 157.515 145.464 125.223
5,000,000,000   498.923 498.824 573.432 261.921     279.321
10,000,000,000   1,092.887 1,084.855 1,241.333 570.517      
Credit: Yusuke Kamui    

Hiroyuki Oodaira

(大平 寛之)

Sebastien Davies Nehal Prasad ji lcpd
Processor(s): Phenom II X3 720 Core i7 920 FX-8350 Core i7 4770K Core i7 5775C Core i7 7700K
Generation: AMD K10 Intel Nehalem AMD Piledriver Intel Haswell Intel Broadwell Intel Kaby Lake
Cores/Threads: 4/4 (unlock from 3/3) 4/8 8/8 4/8 4/8 4/8
Processor Speed: 2.8 GHz 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 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
Program Version: v0.7.6 (05-A64) 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)
Instruction Set: x64 SSE3 x64 SSE4.1 x64 AVX + XOP x64 AVX + XOP x64 AVX2 x64 AVX2 x64 AVX2 + ADX x64 AVX2 + ADX
25,000,000 9.357 4.934 3.239 3.070 1.524 1.482 1.730 1.149
50,000,000 19.678 10.935 7.167 6.845 3.365 3.396 3.940 2.489
100,000,000 43.794 24.792 15.700 15.130 7.527 7.385 8.739 5.482
250,000,000 127.530 73.153 43.787 43.077 20.766 20.610 25.073 15.419
500,000,000 283.572 164.107 97.843 96.327 46.358 45.964 56.343 33.986
1,000,000,000 648.422 374.590 219.344 214.870 102.451 101.692 125.967 74.021
2,500,000,000 1,832.422   633.021 623.521 291.632 292.899 369.738 209.412
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

 

 

High-End Desktops:

Processor(s): Core i7 5960X Threadripper 1950X Core i9 7900X Core i9 7940X Core i9 10980XE
Generation: Intel Haswell AMD Threadripper Intel Skylake X Intel Skylake X Intel Cascade Lake X
Cores/Threads: 8/16 16/32 10/20 14/28 18/36
Processor Speed: 4.0 GHz (OC) 3.5 - 3.7 GHz

4.3/4.0/3.6 GHz*

4.6/4.0/3.6 GHz* 3.8 GHz 3.6 GHz 2.8 GHz
3.0 GHz cache 2.8 GHz cache  
Memory: 64 GB - 2133 MT/s 128 GB - 2933 MT/s 128 GB - 3600 MT/s 128 GB - 3466 MT/s 64 GB - 3600 MT/s
Program Version: v0.7.6 (13-HSW) v0.7.8 (13-HSW) v0.7.8 (17-ZN1) v0.7.6 (17-SKX) v0.7.6 (17-SKX) v0.7.8 (14-BDW) v0.7.8 (17-SKX) v0.7.8 (17-SKX)
Instruction Set: x64 AVX2 x64 AVX2 x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-DQ x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-DQ
25,000,000 0.812 0.853 0.721 0.522 0.520 0.503 0.482 0.397
50,000,000 1.942 1.769 1.500 1.117 1.052 1.090 0.994 0.845
100,000,000 4.072 3.828 3.173 2.362 2.177 2.407 1.974 1.858
250,000,000 10.991 10.807 8.666 6.209 5.409 6.575 5.145 4.959
500,000,000 23.929 23.523 18.926 13.204 11.412 14.026 10.791 10.348
1,000,000,000 52.768 51.930 41.762 28.827 24.232 29.989 22.974 21.922
2,500,000,000 149.365 149.081 119.06 79.854 66.592 84.231 64.586 60.600
5,000,000,000 330.414 326.022 264.191 178.786 147.719 189.510 143.051 132.118
10,000,000,000 722.456 713.146 572.900 394.887 323.079 410.372 316.622 287.562
25,000,000,000     1642.184 1119.634 911.097 1,185.891 903.586  
Credit:     Oliver Kruse         ji lcpd

*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 E5-2696 v4 Epyc 7601 Xeon Gold 6130F Xeon Platinum 8124M Xeon Gold 6148 Xeon Platinum 8175M Epyc 7742
Generation: Intel Broadwell AMD Naples Intel Skylake Purley Intel Skylake Purley Intel Skylake Purley Intel Skylake Purley AMD Rome
Sockets/Cores/Threads: 2/44/88 2/64/128 2/32/64 2/36/72 2/40/40 2/48/96 2/128/256
Processor Speed: 2.2 GHz 2.2 GHz 2.1 GHz 3.0 GHz 2.4 GHz 2.5 GHz  
Memory: 768 GB - ??? 256 GB - ?? 256 GB - ?? 137 GB - ?? 188 GB - ?? ~756 GB - ?? ~504 GB
Program Version: v0.7.1 (14-BDW) v0.7.3 (17-ZN1) v0.7.3 (17-SKX) v0.7.5 (17-SKX) v0.7.6 (17-SKX) v0.7.6 (17-SKX) v0.7.7 (17-ZN1)
Instruction Set: x64 AVX2 + ADX x64 AVX2 + ADX x64 AVX512-DQ x64 AVX512-DQ x64 AVX512-DQ x64 AVX512-DQ x64 AVX2 + ADX
25,000,000 0.715 2.459 1.150 0.540 0.329 0.294 0.534
50,000,000 1.344 4.347 1.883 0.981 0.683 0.617 1.027
100,000,000 2.673 6.996 3.341 1.905 1.456 1.305 2.298
250,000,000 6.853 14.258 7.731 5.085 3.737 3.591 5.854
500,000,000 14.538 24.930 15.346 10.372 7.750 7.293 10.502
1,000,000,000 31.260 47.837 31.301 21.217 16.550 15.041 17.836
2,500,000,000 84.271 111.139 82.871 55.701 45.693 39.329 35.485
5,000,000,000 192.889 228.252 179.488 118.151 99.078 83.601 62.432
10,000,000,000 417.322 482.777 387.530 247.928 212.984 176.695 115.543
25,000,000,000 1,186.881 1,184.144 1,063.850   599.653 491.988 307.995
50,000,000,000 2,601.476         1,081.181 690.662
100,000,000,000 6,037.704            
250,000,000,000              
Credit: "yoyo" Dave Graham Jacob Coleman Oliver Kruse newalex Carsten Spille
Processor(s): Xeon X5482 Xeon E5-2690 Xeon E5-2683 v3 Xeon E7-8880 v3 Xeon E5-2687W v4 Xeon E5-2686 v4
Generation: Intel Penryn Intel Sandy Bridge Intel Haswell Intel Haswell Intel Broadwell Intel Broadwell
Sockets/Cores/Threads: 2/8/8 2/16/32 2/28/56 4/64/128 2/24/48 2/36/72
Processor Speed: 3.2 GHz 3.5 GHz 2.03 GHz 2.3 GHz 3.0 GHz 2.3 GHz
Memory: 64 GB - 800 MT/s 256 GB - ??? 128 GB - ??? 2 TB - ??? 64 GB 504 GB - ???
Program Version: v0.7.2 (08-NHM) v0.7.5 (07-PNR) v0.6.2/3 (11-SNB) v0.6.9 (13-HSW) v0.7.1 (13-HSW) v0.7.6 (14-BDW) v0.7.7 (14-BDW)
Instruction Set: x64 SSE4.1 x64 AVX x64 AVX2 x64 AVX2 x64 AVX2 + ADX x64 AVX2 + ADX
25,000,000 4.548 4.248 2.283 0.907 1.176 0.490 0.494
50,000,000 9.779 9.148 4.295 1.745 2.321 1.072 0.982
100,000,000 20.834 19.580 8.167 3.317 4.217 2.303 2.193
250,000,000 60.049 56.226 20.765 8.339 8.781 6.196 6.044
500,000,000 134.978 126.448 42.394 17.708 15.879 13.046 12.582
1,000,000,000 308.679 286.903 89.920 37.311 32.078 27.763 26.852
2,500,000,000 874.588 824.820 239.154 102.131 78.251 76.202 73.596
5,000,000,000 1,946.683 1,836.808 520.977 218.917 164.157 165.046 160.094
10,000,000,000 4,317.677 4,000.065 1,131.809 471.802 346.307 356.487 346.305
25,000,000,000     3,341.281 1,511.852 957.966 1,006.131 980.784
50,000,000,000     7,355.076   2,096.169 2,202.558 2,156.854
100,000,000,000         4,442.742    
250,000,000,000         17,428.450    
Credit:     Shigeru Kondo Shigeru Kondo Jacob Coleman Cameron Giesbrecht newalex

 

 

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:

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.

*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:

  1. The number of logical cores is not a power-of-two.
  2. 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.
  3. 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.

 

 

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:


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.