Differences between revisions 24 and 25
Revision 24 as of 2005-07-27 13:28:49
Size: 7899
Editor: anonymous
Comment:
Revision 25 as of 2005-07-27 13:55:31
Size: 8034
Editor: anonymous
Comment:
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.

  1. The server that the data flow to which, after registration to the project(s) is no longer of interst.
  2. The boinc client that is commonly wrapped by the BOINC Manager (boincmgr) and the only program actually that is started by the user.
  3. 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.

  1. Prepare source directory
    1. mkdir -p ~/src/boinc
    2. cd !$
    3. apt-src install boinc
  2. Inspect source and apply patches
  3. Build and install binaries
    1. apt-src build boinc
    2. 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