32-bit application sent to 64-bit host

eOn code for long time scale dynamics

Moderator: moderators

Post Reply
Augustine
Posts: 8
Joined: Sat Sep 04, 2010 5:30 pm

32-bit application sent to 64-bit host

Post by Augustine »

I just noticed that my 64-bit Linux client gets the 32-bit application instead of the 64-bit one, even though it successfully gets the 64-bit application from other projects that offer them.

Please, advise.

PS: here's a list of applications under the "projects" directory:

Code: Select all

bearnol.is-a-geek.com_wanless2/wep_1.13_x86_64-pc-linux-gnu:                    
boinc.almeregrid.nl/correlizer_1.00_x86_64-pc-linux-gnu:                        
boinc.almeregrid.nl/wrapper_6.12_x86_64-pc-linux-gnu:                           
boinc.bakerlab.org_rosetta/minirosetta_2.17_x86_64-pc-linux-gnu:                
boinc.bakerlab.org_rosetta/minirosetta_graphics_1.92_x86_64-pc-linux-gnu:       
casathome.ihep.ac.cn/wscthread_5.14_i686-pc-linux-gnu:                          
casathome.ihep.ac.cn/wscthread_graphics_5.14_i686-pc-linux-gnu:                 
dg.imp.kiev.ua_slinca/rho_41.00_i686-pc-linux-gnu:                              
eon.ices.utexas.edu_eon2/eonclient_2.3_i686-pc-linux-gnu:                       
escatter11.fullerton.edu_nfs/lasievee_1.07_x86_64-pc-linux-gnu:                 
escatter11.fullerton.edu_nfs/lasievef_1.07_x86_64-pc-linux-gnu:                 
mersenneathome.net/llpt_2.07_x86_64-pc-linux-gnu:                               
spin.fh-bielefeld.de/metropolis_3.12_i686-pc-linux-gnu:                         
wuprop.boinc-af.org/data_collect_2.38_x86_64-pc-linux-gnu__nci:                 
www.malariacontrol.net/openMalariaA_6.52_x86_64-pc-linux-gnu:                   
www.malariacontrol.net/openMalariaB_6.49_x86_64-pc-linux-gnu:                   
www.primegrid.com/primegrid_llr_wrapper_6.09_i686-pc-linux-gnu:                 
www.primegrid.com/primegrid_sllr_3.8.4_final_i686-pc-linux-gnu:
chill
Posts: 96
Joined: Tue Jul 28, 2009 9:04 pm

Re: 32-bit application sent to 64-bit host

Post by chill »

zombie67 wrote:That is a new "feature". BOINC server is supposed to send both to a 64 bit host, and then decide which it crunches faster. And from then on, it sends only that app. So it looks like it decided that your machine crunches faster with a 32 bit app. How ridiculous is that?!
It really isn't all that crazy. There are some performance penalties involved with running 64 bit code. The biggest one is increased code size. If you look at the binaries and the resulting memory for 64 bit applications they are larger than their 32 bit counterparts. Memory pointers in 64 bit applications are 64 bits. Using more larger datatypes to store the same information means that the L1, L2, and L3 cpu caches will be filled faster. For example, you can store twice as many 32bit integers (or pointers) in the cache as 64 bit integers. Thus if your program doesn't need to represent numbers outside the range (-2^31, 2^31) then it would be faster to store everything 32bit integers. Having to fetch data from main memory can easily become the bottleneck for applications whose data exceeds the size of the cpu cache.

Unless a program needs to address more than 4GB ram or use 64 bit integers there is not likely to be a big performance increase in running a 64 bit binary. Additionally it can be misleading to compare 32 vs 64 bit binaries as the default compiler optimizations for each can be different. For example, since all amd64 compatible hardware supports at least sse2, gcc will produce code with sse optimizations by default when targeting amd64 platforms, but has to be explicitly told to generate these optimizations for 32bit cpus.
Post Reply