Below, you can find several versions of the BOINC client optimized for diverse CPU platforms. I used modified source code of the developer versions and kept exactly their version numbers. It was compiled with Microsoft Visual Studio 2005 (v8), using processor specific optimizing. Better performance in comparison to builds from other developers available at this time (12/29/2005) was achieved especially due to selective optimization, and due to careful configuration of the compiler and linker. It also allowed keeping the size of the binary much smaller than at other currently available clients. I compiled the client with the latest ICC (Intel C++ Compiler) too, but unlike at the S@H application, where Intel binaries perform much better than those compiled with MSVC, the results here were suprisingly worse with ICC/IPP than with MSVC.
Please note that the software is offered as is, with no warranty at all. Use on your own risk! Since I compiled the source code of the developer version (not the public release), it is very likely that the client can contain some bugs. Also, I tested only some of the offered builds on only few machines with AMD and Intel processors, but cannot guarantee that they work flawlessly on other platforms. I also do not know if the performance gain is interesting on all platforms.
The optimized BOINC client will not speed up the calculation of any project! The BOINC client does not perform any calculation. It only manages projects and the client-server communication. The optimization has practically impact only on the benchmarks that are important for the calculation of the claimed credit. I am releasing the optimized client, because recently there are many optimized SETI @ Home applications available, and due to better optimizing of the project application, it caused incorrectly low credits for units they calculate. While at the users with the optimized software, the lost credit is partially compensated by higher number of completed units, the global average credit per unit for everybody permanently declines as the number of optimized clients grows. It means that also users with the official client are getting lower and lower credits, and the accuracy of the crediting system suffers.
On the other hand, if you do not use any optimized project application, or spend a considerable part of your CPU time on projects with official unoptimized software, you should not install the optimized BOINC client either, because it would add just more inaccuracy to the credit calculation. Please use these optimized BOINC client only if you dedicated most of your computation time to projects with an optimized client or at projects that do not use the BOINC benchmarks at all (i.e. CPDN).
| SSE2 current processors |
v5.3.6.tx12 | v5.3.2.tx7 |
|---|---|---|
| SSE older AMD Athlon/Duron/Sempron, some P3 cpu's |
v5.3.6.tx12 | v5.3.2.tx7 |
| no SSE older processors without SSE support (MMX only) |
v5.3.6.tx12 | v5.3.2.tx7 |
| Source code (modified files only) | v5.3.6.tx11 | v5.3.2.tx7 |
Look up what level of SSE your processor supports (i.e. by running the free CPU-Z utility from http://www.cpuid.org see the line Instructions in the tab CPU of the CPU-Z output), then download the corresponding client version. Stop the running BOINC program or service (depending on the original installation mode), replace the original boinc.exe file in the BOINC directory (typically in C:\Program Files\BOINC). You can only replace matching versions of boinc.exe - v5.x by v5.x (or v4.531). Keep backup copy of the original file for the case you need to put it back! Copy also all other files in this zip (except of the readme files) to the main BOINC directory. Then restart BOINC again.
Some modifications were made in the official source code and additional features added. Please see below the details (the list of added features may grow over time). You can configure the additional options and features by editing the file global_prefs.xml. For editing it, right-click and select 'edit', or open the file in Notepad. The location of the additional tags is not too important, but they should be within the main block, just like almost all other global settings, or within the respective venue block, in case you use different venue preferences (home/school/work). You do not need to add parameters for features you do not plan to use.
<rpc_port>1043</rpc_port>
If the port parameter is not set, the default RPC port 1043 is used. Of course, you have to set the same port number for the given client in BoincView too.
<return_results_immediately/>
<set_cpu_affinity/>
<process_priority>0</process_priority> ... (or parameter not set) default IDLE priority<process_priority>1</process_priority> ... BELOW NORMAL priority<process_priority>2</process_priority> ... NORMAL priority<process_priority>3</process_priority> ... ABOVE NORMAL priority<process_priority>4</process_priority> ... HIGH priority<process_priority>5</process_priority> ... REALTIME priority (dangerous - not recommended!)<global_preferences> <source_project>http://setiathome.berkeley.edu/</source_project> <source_scheduler>http://setiboinc.ssl.berkeley.edu/sah_cgi/cgi</source_scheduler> <return_results_immediately/> <set_cpu_affinity/> <process_priority>2</process_priority> <rpc_port>1043</rpc_port> ...
The optimized client writes a log message to the stdoutdae.txt file at the loading time when it finds any of the additional parameters. You can view the messages by opening the file in Notepad, or in Messages in BOINC Manager or BoincView too. In this way you can easily verify if your settings were accepted.
2006-01-04 23:26:05 [---] General prefs: no separate prefs for home; using your defaults 2006-01-04 23:26:07 [---] Remote control allowed 2006-01-04 23:26:07 [---] Listening on port 31416 2006-01-04 23:26:07 [---] truXoft add-on: process priority = 4 2006-01-04 23:26:07 [---] truXoft add-on: return_results_immediately 2006-01-04 23:26:07 [---] truXoft add-on: set_cpu_affinity
# port = 1044 # return_results_immediately # set_cpu_affinity # set_priority = 1 127.0.0.1 192.168.2.101 some.site.com Joe
You can freely redistribute the software, but I do prefer that you link to this page instead of serving the files from your site. Also please do not link directly to the download files! Linking to the main page will greatly simplify future updates, and I also prefere if people have the chance to read the accompanying description and notes here.
IMPORTANT: Please do not contact me with any questions about the CPU compatibility. I am a busy person, handling daily many hundreds of emails, and will very likely have to ignore anything that does not concern my daily job. If you have any troubles or doubts, please write your question to the BOINC message boards - there are plenty of experts who will happily jump in with a helpful advice, and I may answer too if I have the chance to see it.
|
The compiled clients are my contribution to the BOINC community, and I do not intend profiting from it. However, the cost of the software tools for Windows development is huge (over three thousands of dollars), so if you can help with a small donation, I may be able to buy other tools I need for better optimizing - Intel Math Libraries, Intel Debugger, Profiler, and possibly other needs may emerge (i.e. updates). I already purchased full and legal versions of MS Visual Studio PRO 2003, and the Intel ICC Compiler + the Intel IPP Library. I did so spontaneously, without expecting any return, but unfortunately I cannot afford spending any more funds on the other needed tools. Any donations to help covering the cost of the development tools are very much appreciated!
Current donation status: €352.20 (updated manually) |