Page 1 of 3

Bug report: FAH client cannot detect more than 32 CPUs

Posted: Wed Sep 02, 2020 6:21 am
by jnv11
I noticed that my Folding@home client has trouble automatically detecting more than 32 logical cores. I am running an Intel Xeon W-2295 processor which has 18 physical cores, which becomes 36 logical cores when Hyper-Threading is turned on. I noticed that Folding@home is reporting 32 CPUs in the system info tab in the advanced control. It should be fixed to recognize more than 32 logical cores. To fully utilize my CPU, I have defined two CPU slots of 18 cores each. There is an additional slot for one GPU as well in my configuration. Since I am using a new account, I cannot link to the Intel ARK page with the CPU's specification.

While this bug is being fixed, the client should also be programmed to recognize NUMA CPU configurations, like AMD Ryzen Threadripper CPUs in NUMA mode. In this configuration, Threadripper should be configured with one slot per active chip.

I am running Windows 10 Pro and have an Nvidia RTX Titan installed.

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Wed Sep 02, 2020 7:13 am
by Joe_H
jnv11 wrote:I am running Windows 10 Pro
Known issue with running on Windows. Not an issue with the Linux or OS X clients. Last I looked, there is an existing report on the F@h GitHub and there have been multiple reports here on the forum.

It may get fixed at some point in the future, you would still probably need to be running a different Windows license than than Win 10 Pro to use more than 32 threads on a single process.

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Wed Sep 02, 2020 7:52 am
by Neil-B
License does not currently fix issue ... run win 10 pro and win 10 ent ... both are still limited by this issue ... cores will happily run on more than 32 as has been tested ... so it will need a fahclient/fahcontrol update to resolve ... when it happens the performance gains are startling ... in my tests on A8 core a single 54 slot can process more WUs/day than a 32 and a 24 and the WUs are all turned round 60-90 minutes quicker ... the core working at 54 confirms it usnt a will does license issue but rather a fahclient/fahcontrol imposed limit .. I'm hoping this research might improve the case for working this issue but reality is with limited dev resource and many competing priorities this may just take time to resolve and we need to be patient:)

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Wed Sep 02, 2020 4:33 pm
by anandhanju
I'd thought the known bug was that the Windows client detected the logical processor count from the current group in a multi socket configuration. However, this shouldn't manifest in the case of the Intel Xeon W-2295 processor which is single CPU with 18 physical cores/ 36 logical cores.

Is there another (known) issue that caps the detected CPUs to 32 on Windows?

Edit: @Neil-B, found your run into this with your 56 core system.

Can one of you please post the log -- I'd like to see if CPUs is set to 32 in both the FAHClient info (at the beginning of the log) and in the FahCore info blocks?

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Thu Sep 03, 2020 1:50 am
by jnv11
I am experimenting to see which gets more points per day. This time, I am trying just maxing out the number of cores that I can per slot, which is 32 cores. Here is the start of the log with this configuration.

Code: Select all

*********************** Log Started 2020-09-03T01:46:35Z ***********************
01:46:35:Trying to access database...
01:46:35:Successfully acquired database lock
01:46:35:Read GPUs.txt
01:46:35:Enabled folding slot 00: READY cpu:32
01:46:36:Enabled folding slot 01: READY gpu:0:TU102 [TITAN RTX] 16310
01:46:36:****************************** FAHClient ******************************
01:46:36:        Version: 7.6.13
01:46:36:         Author: Joseph Coffland <[email protected]>
01:46:36:      Copyright: 2020 foldingathome.org
01:46:36:       Homepage: https://foldingathome.org/
01:46:36:           Date: Apr 27 2020
01:46:36:           Time: 21:21:01
01:46:36:       Revision: 5a652817f46116b6e135503af97f18e094414e3b
01:46:36:         Branch: master
01:46:36:       Compiler: Visual C++ 2008
01:46:36:        Options: /TP /nologo /EHa /wd4297 /wd4103 /Ox /MT
01:46:36:       Platform: win32 10
01:46:36:           Bits: 32
01:46:36:           Mode: Release
01:46:36:           Args: --open-web-control
01:46:36:         Config: C:\Users\Jesse Viviano\AppData\Roaming\FAHClient\config.xml
01:46:36:******************************** CBang ********************************
01:46:36:           Date: Apr 24 2020
01:46:36:           Time: 17:07:55
01:46:36:       Revision: ea081a3b3b0f4a37c4d0440b4f1bc184197c7797
01:46:36:         Branch: master
01:46:36:       Compiler: Visual C++ 2008
01:46:36:        Options: /TP /nologo /EHa /wd4297 /wd4103 /Ox /MT
01:46:36:       Platform: win32 10
01:46:36:           Bits: 32
01:46:36:           Mode: Release
01:46:36:******************************* System ********************************
01:46:36:            CPU: Intel(R) Xeon(R) W-2295 CPU @ 3.00GHz
01:46:36:         CPU ID: GenuineIntel Family 6 Model 85 Stepping 7
01:46:36:           CPUs: 32
01:46:36:         Memory: 127.68GiB
01:46:36:    Free Memory: 119.89GiB
01:46:36:        Threads: WINDOWS_THREADS
01:46:36:     OS Version: 6.2
01:46:36:    Has Battery: false
01:46:36:     On Battery: false
01:46:36:     UTC Offset: -4
01:46:36:            PID: 2044
01:46:36:            CWD: C:\Users\Jesse Viviano\AppData\Roaming\FAHClient
01:46:36:  Win32 Service: false
01:46:36:             OS: Windows 10 Enterprise
01:46:36:        OS Arch: AMD64
01:46:36:           GPUs: 1
01:46:36:          GPU 0: Bus:104 Slot:0 Func:0 NVIDIA:8 TU102 [TITAN RTX] 16310
01:46:36:  CUDA Device 0: Platform:0 Device:0 Bus:104 Slot:0 Compute:7.5 Driver:11.0
01:46:36:OpenCL Device 0: Platform:0 Device:0 Bus:104 Slot:0 Compute:1.2 Driver:452.6
01:46:36:******************************* libFAH ********************************
01:46:36:           Date: Apr 15 2020
01:46:36:           Time: 14:53:14
01:46:36:       Revision: 216968bc7025029c841ed6e36e81a03a316890d3
01:46:36:         Branch: master
01:46:36:       Compiler: Visual C++ 2008
01:46:36:        Options: /TP /nologo /EHa /wd4297 /wd4103 /Ox /MT
01:46:36:       Platform: win32 10
01:46:36:           Bits: 32
01:46:36:           Mode: Release
01:46:36:***********************************************************************
01:46:36:<config>
01:46:36:  <!-- Folding Core -->
01:46:36:  <checkpoint v='3'/>
01:46:36:
01:46:36:  <!-- Network -->
01:46:36:  <proxy v=':8080'/>
01:46:36:
01:46:36:  <!-- Slot Control -->
01:46:36:  <power v='full'/>
01:46:36:
01:46:36:  <!-- User Information -->
01:46:36:  <team v='59'/>
01:46:36:  <user v='Jesse_Viviano'/>
01:46:36:
01:46:36:  <!-- Folding Slots -->
01:46:36:  <slot id='0' type='CPU'>
01:46:36:    <cpus v='32'/>
01:46:36:  </slot>
01:46:36:  <slot id='1' type='GPU'/>
01:46:36:</config>
01:46:36:WU00:FS00:Connecting to assign1.foldingathome.org:80
01:46:36:WU01:FS01:Connecting to assign1.foldingathome.org:80
01:46:37:WU00:FS00:Assigned to work server 3.21.157.11
01:46:37:WU00:FS00:Requesting new work unit for slot 00: READY cpu:32 from 3.21.157.11
01:46:37:WU01:FS01:Assigned to work server 140.163.4.231
01:46:37:WU00:FS00:Connecting to 3.21.157.11:8080
01:46:37:WU01:FS01:Requesting new work unit for slot 01: READY gpu:0:TU102 [TITAN RTX] 16310 from 140.163.4.231
01:46:37:WU01:FS01:Connecting to 140.163.4.231:8080
01:46:37:WU00:FS00:Downloading 1.40MiB
01:46:38:WU00:FS00:Download complete
01:46:38:WU00:FS00:Received Unit: id:00 state:DOWNLOAD error:NO_ERROR project:14807 run:1757 clone:0 gen:162 core:0xa7 unit:0x000000b703159d0b5ec033ea6803d859
01:46:38:WU00:FS00:Starting
01:46:38:WU00:FS00:Running FahCore: "C:\Program Files (x86)\FAHClient/FAHCoreWrapper.exe" "C:\Users\Jesse Viviano\AppData\Roaming\FAHClient\cores/cores.foldingathome.org/win/64bit-avx-256/a7-0.0.19/Core_a7.fah/FahCore_a7.exe" -dir 00 -suffix 01 -version 706 -lifeline 2044 -checkpoint 3 -np 32
01:46:38:WU00:FS00:Started FahCore on PID 5540
01:46:38:WU00:FS00:Core PID:12836
01:46:38:WU00:FS00:FahCore 0xa7 started
01:46:38:WU00:FS00:0xa7:*********************** Log Started 2020-09-03T01:46:38Z ***********************
01:46:38:WU00:FS00:0xa7:************************** Gromacs Folding@home Core ***************************
01:46:38:WU00:FS00:0xa7:       Type: 0xa7
01:46:38:WU00:FS00:0xa7:       Core: Gromacs
01:46:38:WU00:FS00:0xa7:       Args: -dir 00 -suffix 01 -version 706 -lifeline 5540 -checkpoint 3 -np 32
01:46:38:WU00:FS00:0xa7:************************************ CBang *************************************
01:46:38:WU00:FS00:0xa7:       Date: Nov 27 2019
01:46:38:WU00:FS00:0xa7:       Time: 03:40:09
01:46:38:WU00:FS00:0xa7:   Revision: d25803215b59272441049dfa05a0a9bf7a6e3c48
01:46:38:WU00:FS00:0xa7:     Branch: master
01:46:38:WU00:FS00:0xa7:   Compiler: Visual C++ 2008
01:46:38:WU00:FS00:0xa7:    Options: /TP /nologo /EHa /wd4297 /wd4103 /Ox /MT
01:46:38:WU00:FS00:0xa7:   Platform: win32 10
01:46:38:WU00:FS00:0xa7:       Bits: 64
01:46:38:WU00:FS00:0xa7:       Mode: Release
01:46:38:WU00:FS00:0xa7:************************************ System ************************************
01:46:38:WU00:FS00:0xa7:        CPU: Intel(R) Xeon(R) W-2295 CPU @ 3.00GHz
01:46:38:WU00:FS00:0xa7:     CPU ID: GenuineIntel Family 6 Model 85 Stepping 7
01:46:38:WU00:FS00:0xa7:       CPUs: 36
01:46:38:WU00:FS00:0xa7:     Memory: 127.68GiB
01:46:38:WU00:FS00:0xa7:Free Memory: 119.51GiB
01:46:38:WU00:FS00:0xa7:    Threads: WINDOWS_THREADS
01:46:38:WU00:FS00:0xa7: OS Version: 6.2
01:46:38:WU00:FS00:0xa7:Has Battery: false
01:46:38:WU00:FS00:0xa7: On Battery: false
01:46:38:WU00:FS00:0xa7: UTC Offset: -4
01:46:38:WU00:FS00:0xa7:        PID: 12836
01:46:38:WU00:FS00:0xa7:        CWD: C:\Users\Jesse Viviano\AppData\Roaming\FAHClient\work
01:46:38:WU00:FS00:0xa7:******************************** Build - libFAH ********************************
01:46:38:WU00:FS00:0xa7:    Version: 0.0.19
01:46:38:WU00:FS00:0xa7:     Author: Joseph Coffland <[email protected]>
01:46:38:WU00:FS00:0xa7:  Copyright: 2019 foldingathome.org
01:46:38:WU00:FS00:0xa7:   Homepage: https://foldingathome.org/
01:46:38:WU00:FS00:0xa7:       Date: Nov 25 2019
01:46:38:WU00:FS00:0xa7:       Time: 17:12:41
01:46:38:WU00:FS00:0xa7:   Revision: d5b5c747532224f986b7cd02c968ed9a20c16d6e
01:46:38:WU00:FS00:0xa7:     Branch: master
01:46:38:WU00:FS00:0xa7:   Compiler: Visual C++ 2008
01:46:38:WU00:FS00:0xa7:    Options: /TP /nologo /EHa /wd4297 /wd4103 /Ox /MT
01:46:38:WU00:FS00:0xa7:   Platform: win32 10
01:46:38:WU00:FS00:0xa7:       Bits: 64
01:46:38:WU00:FS00:0xa7:       Mode: Release
01:46:38:WU00:FS00:0xa7:************************************ Build *************************************
01:46:38:WU00:FS00:0xa7:       SIMD: avx_256
01:46:38:WU00:FS00:0xa7:********************************************************************************
01:46:38:WU00:FS00:0xa7:Project: 14807 (Run 1757, Clone 0, Gen 162)
01:46:38:WU00:FS00:0xa7:Unit: 0x000000b703159d0b5ec033ea6803d859
01:46:38:WU00:FS00:0xa7:Reading tar file core.xml
01:46:38:WU00:FS00:0xa7:Reading tar file frame162.tpr
01:46:38:WU00:FS00:0xa7:Digital signatures verified
01:46:38:WU00:FS00:0xa7:Calling: mdrun -s frame162.tpr -o frame162.trr -cpt 3 -nt 32
01:46:38:WU00:FS00:0xa7:Steps: first=0 total=250000
01:46:39:WU00:FS00:0xa7:Completed 1 out of 250000 steps (0%)
01:46:40:18:127.0.0.1:New Web session
01:46:44:WU01:FS01:Downloading 4.53MiB
01:46:44:WU01:FS01:Download complete
01:46:44:WU01:FS01:Received Unit: id:01 state:DOWNLOAD error:NO_ERROR project:11748 run:0 clone:6277 gen:160 core:0x22 unit:0x0000012e8ca304e75e6bb09dd453fe0f
01:46:44:WU01:FS01:Starting
01:46:44:WU01:FS01:Running FahCore: "C:\Program Files (x86)\FAHClient/FAHCoreWrapper.exe" "C:\Users\Jesse Viviano\AppData\Roaming\FAHClient\cores/cores.foldingathome.org/win/64bit/22-0.0.11/Core_22.fah/FahCore_22.exe" -dir 01 -suffix 01 -version 706 -lifeline 2044 -checkpoint 3 -gpu-vendor nvidia -opencl-platform 0 -opencl-device 0 -cuda-device 0 -gpu 0
01:46:44:WU01:FS01:Started FahCore on PID 20996
01:46:44:WU01:FS01:Core PID:7008
01:46:44:WU01:FS01:FahCore 0x22 started
01:46:45:WU01:FS01:0x22:*********************** Log Started 2020-09-03T01:46:44Z ***********************
01:46:45:WU01:FS01:0x22:*************************** Core22 Folding@home Core ***************************
01:46:45:WU01:FS01:0x22:       Core: Core22
01:46:45:WU01:FS01:0x22:       Type: 0x22
01:46:45:WU01:FS01:0x22:    Version: 0.0.11
01:46:45:WU01:FS01:0x22:     Author: Joseph Coffland <[email protected]>
01:46:45:WU01:FS01:0x22:  Copyright: 2020 foldingathome.org
01:46:45:WU01:FS01:0x22:   Homepage: https://foldingathome.org/
01:46:45:WU01:FS01:0x22:       Date: Jun 26 2020
01:46:45:WU01:FS01:0x22:       Time: 19:49:16
01:46:45:WU01:FS01:0x22:   Revision: 22010df8a4db48db1b35d33e666b64d8ce48689d
01:46:45:WU01:FS01:0x22:     Branch: core22-0.0.11
01:46:45:WU01:FS01:0x22:   Compiler: Visual C++ 2015
01:46:45:WU01:FS01:0x22:    Options: /TP /nologo /EHa /wd4297 /wd4103 /O2 /Ob3 /Zc:throwingNew /MT
01:46:45:WU01:FS01:0x22:   Platform: win32 10
01:46:45:WU01:FS01:0x22:       Bits: 64
01:46:45:WU01:FS01:0x22:       Mode: Release
01:46:45:WU01:FS01:0x22:Maintainers: John Chodera <[email protected]> and Peter Eastman
01:46:45:WU01:FS01:0x22:             <[email protected]>
01:46:45:WU01:FS01:0x22:       Args: -dir 01 -suffix 01 -version 706 -lifeline 20996 -checkpoint 3
01:46:45:WU01:FS01:0x22:             -gpu-vendor nvidia -opencl-platform 0 -opencl-device 0 -cuda-device
01:46:45:WU01:FS01:0x22:             0 -gpu 0
01:46:45:WU01:FS01:0x22:************************************ libFAH ************************************
01:46:45:WU01:FS01:0x22:       Date: Jun 26 2020
01:46:45:WU01:FS01:0x22:       Time: 19:47:12
01:46:45:WU01:FS01:0x22:   Revision: 2b383f4f04f38511dff592885d7c0400e72bdf43
01:46:45:WU01:FS01:0x22:     Branch: HEAD
01:46:45:WU01:FS01:0x22:   Compiler: Visual C++ 2015
01:46:45:WU01:FS01:0x22:    Options: /TP /nologo /EHa /wd4297 /wd4103 /O2 /Ob3 /Zc:throwingNew /MT
01:46:45:WU01:FS01:0x22:   Platform: win32 10
01:46:45:WU01:FS01:0x22:       Bits: 64
01:46:45:WU01:FS01:0x22:       Mode: Release
01:46:45:WU01:FS01:0x22:************************************ CBang *************************************
01:46:45:WU01:FS01:0x22:       Date: Jun 26 2020
01:46:45:WU01:FS01:0x22:       Time: 19:46:11
01:46:45:WU01:FS01:0x22:   Revision: f8529962055b0e7bde23e429f5072ff758089dee
01:46:45:WU01:FS01:0x22:     Branch: master
01:46:45:WU01:FS01:0x22:   Compiler: Visual C++ 2015
01:46:45:WU01:FS01:0x22:    Options: /TP /nologo /EHa /wd4297 /wd4103 /O2 /Ob3 /Zc:throwingNew /MT
01:46:45:WU01:FS01:0x22:   Platform: win32 10
01:46:45:WU01:FS01:0x22:       Bits: 64
01:46:45:WU01:FS01:0x22:       Mode: Release
01:46:45:WU01:FS01:0x22:************************************ System ************************************
01:46:45:WU01:FS01:0x22:        CPU: Intel(R) Xeon(R) W-2295 CPU @ 3.00GHz
01:46:45:WU01:FS01:0x22:     CPU ID: GenuineIntel Family 6 Model 85 Stepping 7
01:46:45:WU01:FS01:0x22:       CPUs: 36
01:46:45:WU01:FS01:0x22:     Memory: 127.68GiB
01:46:45:WU01:FS01:0x22:Free Memory: 119.26GiB
01:46:45:WU01:FS01:0x22:    Threads: WINDOWS_THREADS
01:46:45:WU01:FS01:0x22: OS Version: 6.2
01:46:45:WU01:FS01:0x22:Has Battery: false
01:46:45:WU01:FS01:0x22: On Battery: false
01:46:45:WU01:FS01:0x22: UTC Offset: -4
01:46:45:WU01:FS01:0x22:        PID: 7008
01:46:45:WU01:FS01:0x22:        CWD: C:\Users\Jesse Viviano\AppData\Roaming\FAHClient\work
01:46:45:WU01:FS01:0x22:********************************************************************************
01:46:45:WU01:FS01:0x22:Project: 11748 (Run 0, Clone 6277, Gen 160)
01:46:45:WU01:FS01:0x22:Unit: 0x0000012e8ca304e75e6bb09dd453fe0f
01:46:45:WU01:FS01:0x22:Reading tar file core.xml
01:46:45:WU01:FS01:0x22:Reading tar file integrator.xml
01:46:45:WU01:FS01:0x22:Reading tar file state.xml
01:46:46:WU01:FS01:0x22:Reading tar file system.xml
01:46:47:WU01:FS01:0x22:Digital signatures verified
01:46:47:WU01:FS01:0x22:Folding@home GPU Core22 Folding@home Core
01:46:47:WU01:FS01:0x22:Version 0.0.11
01:46:47:WU01:FS01:0x22:  Checkpoint write interval: 100000 steps (5%) [20 total]
01:46:47:WU01:FS01:0x22:  JSON viewer frame write interval: 20000 steps (1%) [100 total]
01:46:47:WU01:FS01:0x22:  XTC frame write interval: 50000 steps (2.5%) [40 total]
01:46:47:WU01:FS01:0x22:  Global context and integrator variables write interval: disabled
01:47:02:WU01:FS01:0x22:Completed 0 out of 2000000 steps (0%)
01:47:07:WU00:FS00:0xa7:Completed 2500 out of 250000 steps (1%)

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Thu Sep 03, 2020 3:10 am
by anandhanju
Thanks. In both the A7 and 22 core startup sections (and the A8 section in Neil-B's log), the CPUs is correctly detected as 36. However in the client startup right in the beginning, it is incorrectly detected as 32. I see two (1, 2) CPU count detection routines in C! that are presumed to be used in the client and the core.

Although the versions of C! used for the client and the cores are not the same, there haven't been any changes to these routines. What is different is the fact that the client appears to have been built on 32-bit environment while the cores used a 64-bit environment.

A Google search for "32 bit app cannot use more than 32 cores" brought me back to viewtopic.php?f=106&t=32326 and Sir Elton John singing "Circle of Life". So it appears the fact that the client is 32-bit is limiting the identification of more than 32 CPUs, assuming the same code is used by the client and the cores for CPU detection and the only difference being the 32-vs-64 bit environment.

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Thu Sep 03, 2020 7:41 am
by MeeLee
Most windows 64 bit versions are capped at 32 cores. Even if in windows task manager you can see 64. Watch linus trying to play crisis on cpu rendering with a Threadripper (32c/64t).
The last 32 cores are unused.
They were the ones that mention you need a $300 something enterprise edition, to circumvent the windows core limit.
So It's not only fah. It's games too, and probably everything else.

If you don't want to pay for the enterprise version, and come to the conclusion that it still doesn't work, try out linux. Works better too, even at less cores.

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Thu Sep 03, 2020 2:57 pm
by Neil-B
The cores are 64-bit so not an issue actually folding at that ... The client doesn't need to run at 64-bit ... Simply the logic of how to define slots and hand that information to the cores needs to be correct? ... There must be a call that a 32-bit client can do - not to try and use all the cores but to ask task mangler or the os for the actual core count and then allow sots to be configured up to that - yes if the client as a 32-bit app tries to identify number of cores it may only find 32 as that is all it can use - but if it gets the real number from a part of the system that doesn't have the 32-bit limitation surely then it can manage the slots correctly? ... I think what I am saying is don't use the client to detect - just get the information from the system as it already knows the correct figure :)

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Fri Sep 04, 2020 8:27 pm
by jnv11
I found that the system call for retrieving the number of CPUs in Windows, GetSystemInfo, is apparently not accurate if the program is running under WOW64, the emulation subsystem that allows Windows programs written for one architecture to run on a different architecture as seen in https://en.wikipedia.org/wiki/WoW64 according to https://docs.microsoft.com/en-us/window ... systeminfo. The most common setup for this system is for IA-32 programs running on AMD64 machines, but other setups are known as well. Apparently, a program has to call the GetNativeSystemInfo function as defined in https://docs.microsoft.com/en-us/window ... systeminfo if the program wants to get information about the native machine that it is running on instead of the emulation layer that it is running on. Maybe if both 32-bit and 64-bit programs are calling GetSystemInfo, that could be why only the 64-bit programs get accurate logical CPU counts.

Also, some of the information that a 32-bit program can get on a 64-bit machine can be inaccurate according to https://docs.microsoft.com/en-us/window ... ormationex. The reason is that one of the data structures for holding the information, the KAFFINITY structure as seen in https://docs.microsoft.com/en-us/window ... -kaffinity, holds less information in 32-bit Windows than 64-bit Windows. That document also shows that 32-bit Windows limits the number of logical processors in one processor group to 32 logical cores, and 64-bit Windows limits the number of logical processors in one processor group to 64 logical cores.

I think that given this information, building a 64-bit client would probably be the easiest way to automatically schedule all cores in the majority of today's systems efficiently, and provide a better foundation for future growth for future machines. BOINC clients already have separate 32-bit and 64-bit builds for Windows. Then the 64-bit build could be enhanced further for systems with multiple processor groups due to having too many cores for one processor group and for NUMA (e.g. 2-8 socket builds, Ryzen Threadrippers set up to expose their internal NUMA architecture instead of hiding it, and Xeons configured to use either Cluster on Die or Sub-NUMA Clustering modes). If the 32-bit client is enhanced to try to deal with 64-bit systems, the inaccuracies in the information supplied to the 32-bit client will just frustrate further enhancement efforts to deal with systems with even more cores (both physical and logical).

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Fri Sep 04, 2020 8:51 pm
by Neil-B
The cores are 64 bit and since they quite happily work for all CPUs cores (if they get the right arguments when called) then the issue is simply with the Client not identifying this - it doesn't have to use them it is simply needs the correct count ... this appears accurately in a number of places ... not asking the client to do anything clever with affinity actually even use the just accurately know the maximum cores available and use that to provide the correct management of slots and pass the correct arguments to the cores when calling them ... It isn't about using the WOW64 emulation of any such links simply finding a place where the base system actually states the right figure and using that?

OK so don't use an inaccurate system call under emulation ... there must be a reliable source to get it from instead ... In my simple mind this shouldn't actually be a hard fix :) ... yes a 64 bit client may now be sensible - but that may be more dev time than available ... just sourcing the core counts from a reliable source ought to be simpler/quicker/easier?

Heck - worst case scenario let the folder manually override the core count in the client interface (with caveats of course - a config file flag should do the trick ... or just have the cores report back the count to the client and have the client reset its count to match the cores report? ... the cores are already reporting correct count in the logs - the client could check this and if greater than what it thinks update the count ?

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Sat Sep 05, 2020 12:18 am
by jnv11
I did mention that calling the GetNativeSystemInfo function will get the correct total number of logical cores.

However, the other information beyond that can be wrong. That information is not relevant for most clients except for Threadripper users, multi-chip workstations, and multi-chip servers. Servers, multi-chip workstation users, and Threadripper users will need that information. Developing the 32-bit client further to take advantage of NUMA systems could help the 32-bit servers that still run Windows 2003 (which apparently is still supported), but the client would bug out on current 64-bit servers and clients with many more cores than those old servers due to the inaccurate information that the 32-bit client would get. This will make the development of a separate 64-bit client necessary.

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Sun Sep 06, 2020 2:07 am
by MeeLee
If windows would allow you to use 64 cores, you could run one instance of fah using 32 threads, and another instance using the other threads (in a VM or however you are able to make it work).

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Sun Sep 06, 2020 2:25 am
by PantherX
Once Windows is correctly detecting CPU cores, it would still be preferred to have a single CPU Slot of 64 CPUs. Plus, the new FahCore_a8 has avoided Domain Decomposition issues using a workaround that will eventually be replaced by proper code that (hopefully) does a much better job than FahCore_a7 :)

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Sun Sep 06, 2020 4:30 am
by jnv11
MeeLee wrote:If windows would allow you to use 64 cores, you could run one instance of fah using 32 threads, and another instance using the other threads (in a VM or however you are able to make it work).
The way I am able to make the program use all logical cores is to configure two slots of 18 cores each. You can have as many slots of up to 32 cores each as you want.

Re: Bug report: FAH client cannot detect more than 32 CPUs

Posted: Sun Sep 06, 2020 4:32 am
by jnv11
PantherX wrote:Once Windows is correctly detecting CPU cores, it would still be preferred to have a single CPU Slot of 64 CPUs. Plus, the new FahCore_a8 has avoided Domain Decomposition issues using a workaround that will eventually be replaced by proper code that (hopefully) does a much better job than FahCore_a7 :)
You are right, because having more cores in one process means that fewer processes are fighting over the CPU's cache, making 1 slot of 64 cores faster than 2 slots of 32 cores each.