| Index | Recent Threads | Unanswered Threads | Who's Active | Guidelines | Search |
| World Community Grid Forums
|
| No member browsing this thread |
|
Thread Status: Active Total posts in this thread: 6
|
|
| Author |
|
|
Crystal Pellet
Veteran Cruncher Joined: May 21, 2008 Post Count: 1403 Status: Offline Project Badges:
|
Every now and then you may get a 32-bits task (windows_intelx86) for the Africa Rainfall Project.
I noticed on my Win10 system (64bit) that such a task is running much slower than the 'normal' tasks running the 64-bits version of the application. The difference in runtime is about 11% up to 20% slower. |
||
|
|
geophi
Advanced Cruncher U.S. Joined: Sep 3, 2007 Post Count: 113 Status: Offline Project Badges:
|
All my PCs run 64 bit Linux and will run both the i686 and 64 bit version of ARP. Noting completion times for i686 tasks vs. 64 bit tasks on those PCs, the i686 tasks were noticeably slower in completing tasks in the same generation. I didn't do any statistical study but the differences ranged from about 10 to 25% slower. So what Crystal Pellet found for his Windows comparison was also valid for my limited Linux sample.
|
||
|
|
Crystal Pellet
Veteran Cruncher Joined: May 21, 2008 Post Count: 1403 Status: Offline Project Badges:
|
During the runtime I replaced the 32bit app by the 64bit app making the task think it's still running the 32bit version.
32bit part: I know it are sequential days, but it is a remarkable speed-up. Another thing I noticed since the start of the project, is that the 4th and 8th part of a task (so the period between 18:00 and midnight are mostly faster. With my meteorological background, I conclude that in the sub-Sahara most rain will fall in the period between 12:00 and 18:00 UTC and therefore processing the data from those periods are lasting longer. |
||
|
|
nyanthiss
Cruncher Joined: Nov 23, 2012 Post Count: 15 Status: Offline Project Badges:
|
Same here. Ryzen 1700, Linux, 8 tasks in parallel: 64bit tasks 12-14 hours, 32bit tasks 15-18 hours. I've disabled alternate platform in the BOINC config to avoid this.
----------------------------------------It made me wonder whether it's even worth having 32bit tasks (on intel platform) in 2021. Are there so many 32bit-only BOINC clients out there ? Do they even make up the loss of efficiency by all the 64bit clients who run 32bit tasks ? I would understand if ARP 32bit tasks were a very small % of all tasks, but i was getting a lot of them quite regularly, before i disabled them.
Intel Xeon E3-1231 v3
AMD A10 7800 AMD Ryzen 5 3500U AMD Ryzen 1700X AMD Ryzen 5900X 2x RaspberryPi, 1x Odroid |
||
|
|
sam6861
Advanced Cruncher Joined: Mar 31, 2020 Post Count: 107 Status: Offline Project Badges:
|
If you want to avoid 32 bit apps, best to use <no_alt_platform>1</no_alt_platform> in cc_config.xml then restart BOINC, so will not receive 32 bit app, and the server will know this by refusing to send 32 bit apps.
During the runtime I replaced the 32bit app by the 64bit app making the task think it's still running the 32bit version. Just a warning, possible invalids. Both 32 bit and 64 bit can make slightly different calculations which can cause invalids as results don't exactly equal. Mostly depends on how verify works. Verify is possibly just a simple check, data exacly the same. This might be a reason why all tasks in one work unit is either 64 bit app only or 32 bit app only.Also, BOINC exit and restart will delete and re-download to the proper app/file if filesize is different, unless BOINC config <dont_check_file_sizes> was set to 1. The use of 80 bit float can slow down 32 bit app. Here is a wall of text that some programmers will know: My guess is, something to do with only 32 bit app (not 64 bit) use a higher precision 80 bit floating point registers, but store them as 64 bit or 32 bit float on parts of the compiled binary code. Also, fewer registers (8 vs 16), this can slow things down. Can minimize this different calculation issue if 32 bit app was compiled with SSE2 instruction set. GCC compiler can use -msse2 -mfpmath=sse to use 32 bit and 64 bit float registers. 64 bit compiler already use SSE2 with no option neccessary, as all 64 bit AMD64 intel64 have SSE2 instruction set. There is also -mpc64 or -mpc32 to tell the 80 registers to operate as reduced precision, but unfortunately it is not easy to handle mixed 32 bit and 64 bit float unless SSE2 is used. |
||
|
|
KerSamson
Master Cruncher Switzerland Joined: Jan 29, 2007 Post Count: 1684 Status: Offline Project Badges:
|
If you want to avoid 32 bit apps, best to use <no_alt_platform>1</no_alt_platform> in cc_config.xml then restart BOINC, so will not receive 32 bit app, and the server will know this by refusing to send 32 bit apps. or accept to run 32 bit application. In all cases the "trick" (switching 32 to 64) will probably cause invalid results which finally negatively impact the overall grid performance. Cheers, Yves |
||
|
|
|