7899
Comment:
|
8034
|
Deletions are marked like this. | Additions are marked like this. |
Line 115: | Line 115: |
|| {{{-g -O3 -fprofile-use -march=pentium3 -mfpmath=sse}}} || 900 || 1515 || 2415 || 4.71-1 || 4.0.1-2 || CXXFLAGS=".." ./configure || |
BOINC - Berkeley Open Infrastructure for Network Computing
The [http://boinc.berkeley.edu/ wiki:BOINC] project transferred all its fame from the [http://setiweb.ssl.berkeley.edu/ SETI@home] project that the developers created before to the new infrastructure they are providing. This is far more flexible now, now fostering many more projects at a very high scientific level. It is a great success with a strong attention of the media.
The idea behind having Debian projects for BOINC ( {alioth:pkg-boinc} ) was that Debian could push the infrastructure by its capabilities of automated builds from source that cater for a higher efficiency of clients under Debian since these are adapted to the AMD/Intel/other processors, also taking, if preferences are set correctly by the user, the respective version of the processor into account.
From the user's perspective, BOINC has three parts.
- The server that the data flow to which, after registration to the project(s) is no longer of interst.
- The boinc client that is commonly wrapped by the BOINC Manager (boincmgr) and the only program actually that is started by the user.
- The application's binary that is started by the boinc client.
The speed of the processor is measured by the boinc-client. One gets the more credits for one's efforts in the stats, the faster the boinc-client says the individual machine is. Hence, it makes perfect sense to have a very much optimised binary of the boinc client, if one is interested in the stats. In a way, the Debianers are interested in high stats to show that their distribution is a good one. However, the client that does the real work, the application's binary, does not go any faster from that. And this is where the real interest is in. Hence, the ultimate goal of this project is, that we have packages for the applications, too. Some are only distributed as binaries, though, which renders this process difficult. There is an [http://bioinformatics.pzr.uni-rostock.de/~moeller/debian/boinc/ inofficial (and now outdated) package] for [http://setiweb.ssl.berkeley.edu/ SETI@home], updates are badly due. Jump in for help, please if you can spare the resources.
Instructions
Installation of binary distribution
You should not do this. However, admittedly, it feels good for a start to go for the less efficient binary.
Add pkg-boinc to /etc/apt/sources.list
(cd /etc/apt/ && cp sources.list sources.list.backup \ && cat sources.list.backup || sed -e '/pkg-boinc/d' > sources.list \ && echo "deb http://pkg-boinc.alioth.debian.org ./" >> sources.list \ && echo "deb-src http://pkg-boinc.alioth.debian.org ./" >> sources.list )
Update and get things
apt-get update apt-get install boinc-client boinc-manager
Run the user interface boincmgr and follow the instructions for the addition of a new project, use your user keys if you have one already. Don't go into the hazzle to copy over any prior partial results.
Installation from source
The installation from source is totally identical to the binary. The apt-src tool takes care.
- Prepare source directory
- mkdir -p ~/src/boinc
- cd !$
- apt-src install boinc
- Inspect source and apply patches
- Build and install binaries
- apt-src build boinc
- dpkg -i boinc-client boinc-manager
The man page to apt-src gives insights into how above steps could be more streamlined. I.e., if no manual intervention is desired, with apt-src install -i boinc all these steps could have been performed in one go.
Compiler settings
Frankly, we are ourselves a bit floating around on how to optimise the build process. At the moment, the following feels a nice path to go. Prior to the build, or even prior to the download, set the following variables which are picked up by configure.
CFLAGS C compiler flags CXXFLAGS C++ compiler flags
Then inspect man gcc for the specification of your hardware. The best settings should be exchange on this wiki. For a laptop the following might be appropriate:
export CFLAGS="-mtune=pentium-m" export CXXFLAGS=$CFLAGS
It was stated before that this settings will only influence the credits assigned to your machines, unless you also recompile the module performing the computation which is a separate download for which alioth does not yet feature Debian packages. Sadly, while the above apparently works when starting the configure directly, say with
CFLAGS=$CFLAGS CXXFLAGS=$CXXFLAGS ./configure --enable-server --enable-client
this information is not forwarded in the current debian/rules. Suggestions?
Client Benchmarks
Pentium 4 2.6 GHz (FrankThomas)
Processor Inventory: 2 GenuineIntel Intel(R) Pentium(R) 4 CPU 2.60!["GHz"] Processor(s)
- Memory Inventory: Memory total - 1010.98 MB, Swap total - 125.50 MB
CFLAGS / CXXFLAGS |
Whetstone |
Dhrystone |
Total |
BOINC |
GCC |
Comments |
-O3 |
961 |
1358 |
2319 |
4.71-1 |
4.0.1-2 |
|
-O3 -mtune=pentium4 |
794 |
1359 |
2153 |
4.71-1 |
4.0.1-2 |
|
-g -O0 |
453 |
771 |
1224 |
4.71-1 |
4.0.1-2 |
|
-g -O2 |
559 |
1033 |
1592 |
4.71-1 |
4.0.1-2 |
|
-g -O3 |
870 |
1372 |
2242 |
4.71-1 |
4.0.1-2 |
|
-g -O2 -mtune=pentium4 |
632 |
1074 |
1706 |
4.71-1 |
4.0.1-2 |
|
-g -O3 -mtune=pentium4 |
888 |
1325 |
2213 |
4.71-1 |
4.0.1-2 |
|
-g -O2 -ffast-math |
|
|
|
4.71-1 |
4.0.1-2 |
1) |
-g -O3 -ffast-math |
1229 |
1341 |
2570 |
4.71-1 |
4.0.1-2 |
|
-g -O2 -ffast-math -mtune=pentium4 |
|
|
|
4.71-1 |
4.0.1-2 |
1) |
-g -O3 -ffast-math -mtune=pentium4 |
|
|
|
4.71-1 |
4.0.1-2 |
1) |
-g -O2 -funroll-loops |
570 |
1049 |
1619 |
4.71-1 |
4.0.1-2 |
|
-g -O3 -funroll-loops |
835 |
1265 |
2100 |
4.71-1 |
4.0.1-2 |
|
-g -O3 -march=pentium4 -ftracer |
866 |
1321 |
2187 |
4.71-1 |
4.0.1-2 |
|
-g -O3 -march=i686 -msse2 |
812 |
1278 |
2090 |
4.71-1 |
4.0.1-2 |
|
- 1) configure: error: C compiler cannot create executables
Pentium M 1.4 GHz (FrankThomas)
Processor Inventory: 1 GenuineIntel Intel(R) Pentium(R) M processor 1400!["MHz"] Processor(s)
- Memory Inventory: Memory total - 487.34 MB, Swap total - 517.71 MB
CFLAGS / CXXFLAGS |
Whetstone |
Dhrystone |
Total |
BOINC |
GCC |
Comments |
-g -O2 |
790 |
1488 |
2278 |
4.71-1 |
4.0.1-2 |
|
-g -O3 |
1034 |
2035 |
3069 |
4.71-1 |
4.0.1-2 |
|
Pentium M 1133 MHz (Steffen Moeller)
- Processor Inventory: Intel(R) Pentium(R) III Mobile CPU 1133 !["MHz"]
- Memory Inventory: Memory total - 512 MB, Swap total - 188 !MB
CFLAGS / CXXFLAGS |
Whetstone |
Dhrystone |
Total |
BOINC |
GCC |
Comments |
-g -O2 |
549 |
982 |
1531 |
4.71-1 |
4.0.1-2 |
Frank's public binary from Alioth |
|| -g -O3 || 839 || 1445 || 2284 || 4.71-1 || 4.0.1-2 || CXXFLAGS=".." ./configure ||
-g -O3 -march=pentium3 |
886 |
1472 |
2358 |
4.71-1 |
4.0.1-2 |
CXXFLAGS=".." ./configure |
-O6 -march=pentium3 |
883 |
1479 |
2362 |
4.71-1 |
4.0.1-2 |
CXXFLAGS=".." ./configure |
-g -O3 -march=pentium-m |
884 |
1476 |
2360 |
4.71-1 |
4.0.1-2 |
CXXFLAGS=".." ./configure |
-g -O3 -fprofile-use -march=pentium3 |
900 |
1512 |
2412 |
4.71-1 |
4.0.1-2 |
CXXFLAGS=".." ./configure |
-g -O3 -fprofile-use -march=pentium3 -mfpmath=sse -msse2 |
illegal instruction |
4.71-1 |
4.0.1-2 |
CXXFLAGS=".." ./configure |
||
-g -O3 -fprofile-use -march=pentium3 -mfpmath=sse |
900 |
1515 |
2415 |
4.71-1 |
4.0.1-2 |
CXXFLAGS=".." ./configure |
-- FrankThomas and Steffen Moeller