Menu
For free
Registration
home  /  Health/ How to quickly launch voluntary distributed computing on hundreds of machines. Distributed computing: setting up the BOINC client and selecting a project Selecting projects based on available resources

How to quickly launch voluntary distributed computing on hundreds of machines. Distributed computing: setting up the BOINC client and selecting a project Selecting projects based on available resources


Author: Peter Enseleit
Date: March 31, 2008
Translation: Alexander Tarasov aka oioki
Transfer date: April 3, 2008

Any of us can help humanity solve global problems, such as disease tracking and weather forecasting, by simply using their computers to solve complex computational problems. A concept known as volunteer computing is helping universities and research institutes, creating projects with often humanitarian goals, such as predicting and controlling the spread of malaria in Africa.

To take part in this good deed, you need to download and install client software that will periodically load new computing jobs for your computer, which no doubt sometimes sits idle. After completing the task, the computer sends the result to the central computers of the project, where it becomes a particle of the solution to one large computational problem. By using computers around the world, such projects gain enormous computing power that would not otherwise be available. This way, solutions will be found faster and the project will achieve its goals faster. This form of distributed computing became popular thanks to the SETI@home and Folding@home projects, on this moment A huge number of projects are open for participation. Their tasks range from finding cures for diseases to rendering 3D animation. Let's see how you can get involved in these voluntary projects if you have Linux installed.

BOIN

If you have Ubuntu, then the freshly installed BOINC manager can be launched from the menu Applications -> Accessories -> BOINC Manager. Unlike the Windows and Mac versions of the BOINC client, the Linux version does not come with a screen saver. All work is done silently and unobtrusively, in the background, regardless of your screen saver.

You can join the project directly from the BOINC manager. Select menu item Advanced View -> Advanced -> Attach to Project. Enter the URL of the project you want to join, your email address and password. If there are no problems, you will join the project. The first task from the project will be downloaded, and your BOINC client will begin processing it.

Configure how much of your computer's computing resources BOINC will use. This is done in the BOINC manager in the Preferences dialog. You can limit the number of hours the client can work, set what percentage of processor time is spent on calculations, and limit the use of disk space, RAM, and network traffic.

To use the resources of your computer in several projects at once, you need to use an account manager. At the moment there are two of them: BOINC Account Manager and GridRepublic. The Account Manager is a website that allows you to set up your BOINC client, choose which projects to participate in, and view statistics on the work your clients have completed. You can also configure it so that one account is used on several computers, and each will have its own settings to limit the number of resources used and operating time.

After installing the account manager, you need to configure the local BOINC manager to connect to it. After the connection is established, the BOINC client on your computer will take the settings specified in the account manager and will work according to them. This scheme is convenient when you have installed BOINC clients on both your work and home computers - after all, in this way you get a kind of resource management center.

I configured my BOINC client to start working after three minutes of inactivity, so it won't interfere with my computer work at all. Even after it starts working, I can still comfortably use OpenOffice.org Writer and GIMP, surf the Internet, and listen to music. When CPU load and memory consumption reach a certain limit, the BOINC client goes into sleep mode until the three-minute pause is encountered again.

Folding@home

The first time you launch the client, you will be prompted to change the configuration. Here you will need to enter your email, which will associate you with the project, determine the operating mode when using batteries (if you have a laptop), fill out a list of applications that should block the client’s work, set the priority of the computing process, select the number of processors involved and the network load.

According to my performance monitor, the distributed.net client is using up all of my CPU resources. It loads both cores of my processor and does not go to sleep when launching applications. But surprisingly, although the system monitor shows 95-100% processor load, there is no noticeable performance degradation - I can easily use normal applications. However, let's be objective - under such a load, Baobab (disk space analyzer) spends more time scanning my file system than usual.

Security questions

In fact, voluntary computing gives external applications access to your computer's resources, so it makes sense to think about security. The organizers of the Folding@home project assure their users that they are making every effort to ensure safety. Among them is a 2,048-bit digital signature for all data that comes to and from your computer. On the other hand, the organizers of distributed.net openly state that their clients were at one time used by attackers to distribute Trojan programs. The BOINC security page mentions the dangers that await the computer of a willing participant in computing. The company fights against each of them, using public key encryption to combat viruses. In any case, the organizers of the BOINC project state that "participants should understand that by participating in BOINC projects they are putting their computers at risk." Obviously, it makes sense to look for information yourself about the project in which you want to participate, as well as about the relevant clients.

Conclusion

You can find more information on volunteer computing on the GridCafe website. There are also discussions about other forms of distributed computing, including commercial ones.

All clients described in the article allow you to participate in voluntary computing, having a machine with Linux installed. The Folding@Home client uses your computer for a noble cause, namely developing a cure for protein-related diseases. Of all the clients described here, it is the least configurable, but on my computer it does the job fairly and has the least impact. mine work. The distributed.net client focuses on solving math problems. I pointed out to him that both cores needed to be used, and both were used, and at full capacity. However, this did not stop me from working with regular desktop applications. In terms of ease of installation and use, the BOINC client is the clear winner. Its availability in many package repositories means that you can install it with minimal time and effort. The BOINC platform provides a simple user interface with flexible settings regarding the use of computing resources. Finally, anyone can choose from a huge number of projects based on this platform and thus begin to contribute to solving the world's scientific problems.

This is a short version of setting up the BOINC client for those who don’t like to read a lot and are immediately “raring to go.” Despite the abundance of options and capabilities of BOINC, in most cases you can leave all the default values; in my opinion, there are only 3 really important options that everyone needs to configure, which we will now configure in just 4 steps. The screenshots are from the English version of the client 6.12.26, the names of the options are given in English and duplicated in parentheses with the Russian translation in its current version (the translation may differ slightly from version to version).

1. By default, BOINC Manager operates in “simplified” mode, in which many necessary functions are not available. Therefore, if you have not done this before, then switch to the “advanced” mode (Advanced View) by pressing the corresponding button:


2. Open the BOINC Manager settings:
In program versions starting from 6.12.xx they are located in the menu item Tools --> Computing preferences (Tools --> Client Settings)
In older versions, in particular 6.10.xx, in the Advanced --> Preferences item (Advanced --> Settings)

3. On the “processor usage” tab, set the following options:


"While processor usage is less than XX percent" = 0
This option completely stops calculations when the processor load by user programs (by which we mean any programs other than BOINC itself, including those running in the background) exceeds XX%. 0% means ignore CPU usage by other programs. It is recommended to set exactly 0, because calculations are carried out with the lowest priority and in normal conditions the work of other programs is not interfered with (since computing resources are dynamically redistributed in their favor by the OS). Or you can set your own value, for example 80-90% (i.e. pause calculation only under heavy load). The default value (25%) is no good - calculations will stop at the slightest user activity, as well as, for example, starting a background antivirus scan or parallel use of Folding@Home.

If you want to use only part of the processors/cores available on the computer for BOINC calculations, set this in the following option: “On miltiprocessor systems, use at most XX % of the processors” (In multiprocessor systems, use XX % of the total number of processors) . The value is specified in %, i.e. to use only 3 cores on a 4-core processor, set it to 75%, 1 core on a 2-core processor - 50%, etc.
On multi-core/multi-threaded processors, this method is preferable to use for regulating/reducing the load (for example, in case of overheating) compared to “use at most XX % CPU time” (Use no more than XX % of the time of each processor), because it gives a more “even” load on the processor and additionally saves RAM (by reducing the number of parallel running processes/calculation modules).
If you intend to use all cores, then simply leave the default value, i.e. 100%.

4. On the “network usage” tab, in the “Additional work buffer XX days” column, set the job cache size:


A large supply of tasks will allow you to avoid downtime in the event of prolonged problems with the Internet or failures on the project servers. Recommended values ​​from 2 to 8 days. At the same time, the more regularly the computer works, the larger the job cache size can be set. Regularity refers to the operating mode of the computer; ideal regularity is working 24/7 (24 hours a day, 7 days a week) or every day, for example, exactly 10 hours. Office computers (approximately 9/5 mode) can also be considered quite regular. But if the computer turns on sporadically - not every day and the duration of work is different every day, then it is not advisable to set a large cache of tasks, because the client will make big mistakes in calculating the required number of tasks (in pieces) to ensure the supply you specified (in days) and as a result, they may download more tasks than you are able to complete on time. I do not recommend using the “Load tasks for XX days” item to set the cache size, because in addition to the cache size, it also sets the frequency of connections to the project servers (in the original this item is called “Connect about every XX days”) and, by putting there great importance, we get a situation where the client will wait for several days before sending the counted tasks to the server and receiving a portion of fresh ones.

If you are interested in more detailed settings or a description of some options, then read the full BOINC settings option located here: (there will be a link here when this full version is ready)

The BOINC client is used to calculate tasks for voluntary distributed computing projects on your computer. You can read more about this in our previous article. The standard client comes with a GUI interface, but, unfortunately, its configuration options are limited. For example, it is not possible to use only certain graphics cards (GPUs) in your computer.
To solve this problem, you can configure the BOINC client by writing a configuration file cc_config.xml and placing it in the main application folder (which contains the boinc and boincmgr binary files). For example, after installing BOINC from the installation file from the site, it will be ~/BOINC .
Create a file and open it for editing (of course, you can also use a graphical editor):

touch ~/BOINC/cc_config.xml


nano ~/BOINC/cc_config.xml

File structure
The general appearance of the cc_config.xml file is as follows:



...
...
...


...
...
...


The log_flags directive is used to configure the detail of information output in the BOINC client log. Usually there is enough information already output by default, so I won't go into detail about this directive.
But the options directive should include general settings.

Basic parameters specified in the options directive

1


Interrupt the calculation of tasks and update projects (to confirm the receipt of data) upon exit. This option is useful when the system is running LiveCD/LiveUSB and the data is not saved when turned off. In a normal system, this parameter does not need to be used.

1


Allows you to run several BOINC clients simultaneously on one computer (if there are different directories with BOINC). Usually this is not necessary because it is more convenient to count everything in one BOINC client.

1


Allows you to manage the BOINC client remotely.

Platform_name


Set the platform name manually. Usually not required.

path


Use a different directory for BOINC data. Can be useful for transferring data to another physical disk. This is especially true when working with LiveUSB, where there is not enough space on the main disk.

filename


BOINC will pause when this application is running. This is necessary if, due to BOINC, resource-intensive applications begin to slow down. Several applications can be specified.

filename


Same as the previous one, but only GPU jobs will be suspended.

1


Exit when all tasks are completed.

1


Receive only one task per device. Useful if you don't want to load your computer on a regular basis.

N


Do not use the specified ATI GPU. Very helpful. If you have several cards, then you can not count on the main one, but count on all additional ones. You can select more than one card. Numbering from scratch.

N


Do not use the specified nVidia GPU. Very helpful. If there are several cards, then you can not count on the main one, but count on all additional ones. You can select more than one card. Numbering from scratch.

N

Set an arbitrary number of CPU threads. You can limit the number of cores used. It is also useful for receiving many tasks at once, for calculating them offline (smashing). After receiving tasks, you need to remove this parameter, otherwise too many tasks will be counted at the same time.

1


Do not use video cards for calculations.

1


Update the project immediately after submitting completed tasks. Allows you to reduce the number of tasks in the status of waiting for confirmation of data receipt.

nseconds


The delay in seconds before jobs start executing after the client starts.

1


Use all available GPUs. Helps if BOINC does not want to “see” some old video cards.

Example file





0
2


Do not perform calculations on the first video card. Use only two CPU cores (or threads on Intel HT).

Applying changes
If you change the log_flags directive, just run Advanced -> Reload special settings file in BOINC Manager. Most changes to Options require a restart of BOINC.

Hardware Configurations

As an experimental and debugging station, you can use any computer as a BOINC server. Before deploying your application more widely, make sure your server has sufficient performance and security.

Some factors:

  • · Your server must have a static IP address.
  • · The Internet connection must be of sufficient speed and reliability.
  • · Your server must have a 64-bit processor, at least 8 GB of RAM, and at least 40 GB of free hard disk space.
  • · It is necessary to improve reliability due to the possibilities (power connection to UPS, RAID disk configuration, the ability to hot-swap spare parts, etc.).
  • · Protect with a firewall; allow access to port 80 (HTTP) and, if necessary, port 443 (HTTPS).
  • · Ensure safety; turn off all unnecessary network services, especially those that use open password transfer (such as FTP or Telnet).

There is another option that will solve both problems, technical and software, and that is to deploy a server in the cloud.

Software

There are several ways to deploy BOINC server software:

  • · The easiest way to install a BOINC server is to use the “BOINC server VM”, which already has the necessary software preinstalled. You can run a "virtual machine" using ?VirtualBox on any Intel based computer (Windows, Linux or Mac OS X).
  • · The built-in repositories of Debian and Ubuntu offer a package "boinc-server-maker" for creating a BOINC project in an easier way on a local or remote computer.
  • · You can use any Unix system as a BOINC server, except SELinux, it is recommended to use the latest versions of the system.

Virtualization

Virtualization is a software technology that allows a device to run different operating systems in a separate “virtual machine.” For example, it allows you to run Linux on a computer with a pre-installed Windows operating system, without having to install the Linux system separately on your hard drive, or reboot to change the system. Virtual images of the system are called VM apps.

Virtualization and BOINC

BOINC uses virtualization to allow scientists to develop applications on the operating system they want (usually Linux) and then run them on volunteers' Windows and Mac computers.

BOINC virtualization uses a system called VirtualBox, which is open source and supplied by Oracle.

In order to run VM apps, VirtualBox must be installed on your computer. Starting from version 7.2.28, the recommended BOINC installer for Windows already includes VirtualBox. You can also install VirtualBox separately.

Benefits of Virtualization

Using virtualization in BOINC provides several benefits:

  • · Makes it easier for scientists to develop BOINC applications by no longer having to build and maintain Windows and Mac versions of their programs.
  • · Increased safety for volunteers. Virtual machines provide a strong protective barrier; a program running on a virtual machine does not have access to files on the parent operating system.
  • · VM apps automatically resume. The virtual machine container image is written to disk every few minutes, so if your computer is turned off for a while, the application can be restored from where it was last saved before shutting down.

Installing BOINC Server on Unix

Groups and access rights

BOINC server programs run as two different users:

· The scheduler, file upload handler, and networking software are run with the rights of the web server account (in Fedora this is the user "apache"; in Debian this is "www-data").

The rest of the programs are launched under regular user accounts, called “project owners”.

The owner of the project can be an existing account, or one specially created using useradd. In what follows, we will assume that the project owner is boincadm, with the primary group boincadm.

Don't use root as project owner

By default, directories created by the apache user are not accessible on the network. This causes problems, for example, the handler creates a directory in the boot hierarchy, it belongs to (Apache, Apache), and the file destructor (which works like boincadm) will not be able to delete the files.

Both boincadm and apache must have umasks which allows the group to read and modify files. Where you need to add this option depends on your operating system. Typically you can use umasks 0002 or 0007.

When you create a BOINC project using make_project, all important directories will be owned by boincadm and have the Set-GID bit set; this means that any directory or file created by the apache user, in these directories will have the rights of the boincadm group (not the apache group). BOINC software creates all directory groups with read/write capabilities. This way, both Apache and boincadm will have read/write access to all directories and files, but other users will not have access.

To fix permissions on an existing project, do the following:

chmod 02770 upload

chmod 02770 html/cache

chmod 02770 html/inc

chmod 02770 html/languages

chmod 02770 html/languages/compiled

chmod 02770 html/user_profile

You may also need to change the owner of these directories and all their subdirectories in boincadm/boinc. If you run multiple projects on the same server and want to isolate them from each other, you can create a different user and group for each project, and add Apache rights to all groups.

When executing your project files from Apache, note that all directories up to the HTML directory must have executable permissions. For example, if you use make_project to create a project template in your home directory, the directory should have permissions 711, whereas the default is 700. If done incorrectly, it will produce an error 403 Forbidden, at the moment of connection from the browser to the project page.

Some MySQL fixes

After installing MySQL, create a MySQL account for the project owner. The name will be used as an example boincadm, the same as for the Unix account. All MySQL accounts must be password protected; The password used as an example is “foobar” (use something else).

mysql - u root - p

CREATE USER "boincadm"@"localhost" IDENTIFIED BY "foobar";

This gives boincadm access to all MySQL databases located on the host; if you use MySQL for other purposes on the host, set the permissions to be more restrictive.

Other notes:

  • · Add MySQL programs to boincadm PATH environment variable. (usually they are located in /usr/local/mysql and /usr/local/mysql/bin).
  • · You want to periodically back up your database. Typically this requires stopping the project by making a copy or snapshot, then restarting.
  • · BOINC takes the MySQL compiler and flag linker from a program called mysql_config that comes with the MySQL distribution. Sometimes a program may ask for libraries that are not part of your system's preinstalled base, for example - lnsl or - lnss_files. You may need to install additional packages (most often you can use something called "mysql-dev" or "mysql-devel") or tinker with the Makefile.
  • · MySQL can become a bottleneck in the BOINC server.

MySQLclient notes

  • · Configure mysql with the option - enable-thread-safe-client switch.
  • · Set your LD_LIBRARY_PATH to refer to the correct library.

Apache notes

In httpd.conf, set the default MIME type as follows (otherwise you will get an error loading the signature verification file):

DefaultType application/octet-stream

To reduce the frequency of denial of service, we recommend turning off directory indexing by adding - Indexes to the Options directive.

Ensure that file extensions used by your application or data files are not processed in an undesirable manner by Apache. For example, if some of your files have a ".map" extension, remove the line

AddHandler imap-file map

Apache has a default request size limit of 1 MB. If your project is likely to exceed this size (large output files, large query scheduler messages), increase it to 128 MB for example:

LimitXMLRequestBody 134217728

LimitRequestBody 134217728

PHP Settings

You may need to add GD and XML libraries to your PHP; You can do this with the following command:

yum install php-gd php-xml

then restart Apache.

By default, BOINC uses PHP to send emails to members. Using sendmail. If that doesn't work, you can use ?PHPMailer, which is a very flexible mail distribution system, instead of the previous one. You need to do the following:

  • · Download PHPMailer and put the package in the PROJECT/html/inc/phpmailer directory (i.e. the files class.smtp.php and class.phpmailer.php should be in this directory).
  • · Change html/project/project.inc by adding functions

make_php_mailer() (

$mail = new PHPMailer();

$mail->IsSMTP();

$mail->SMTPAuth = true;

$mail->SMTPSecure = "tls";

$mail->Host = "smtp.gmail.com";

$mail->Port = 587;

$mail->Username = " This e-mail address is being protected from spambots. To see it, you must have JavaScript enabled";

$mail->Password = "xxx";

$mail->SetFrom (" This e-mail address is being protected from spambots. To view it, you must have JavaScript enabled ", "somebody");

$mail->AddReplyTo("This e-mail address is being protected from spambots. To view it, you must have JavaScript enabled", "somebody");

(substitute the values ​​appropriate for your SMTP server).

Possible problems

After adding a new user, you should check if the home directory has been created. You may have to manually create it.

$ mkdir /home/(username)

$ chown (username): (username) /home/(username)

The /usr/bin/gcc link, which indicates the compiler currently in use, may be missing. This may cause errors when running the make command. Especially when trying to build the graphics part of the API you need a link to /usr/bin/g++ (make gives a warning that it cannot find GL/GLU/GLUT even though it is installed). So you should create symbolic links, depending on your GCC and G++ versions, first:

$ ln - s /usr/bin/gcc-4.11 /usr/bin/gcc

$ ln - s /usr/bin/g++-4.11 /usr/bin/g++

On newer Linux distributions, you cannot log in as superuser. Instead, there is a user notroot that you can log in to, but you won't have root privileges. If the application or script needs to have superuser rights, you are forced to enter the password you entered during installation. In the console window, you can gain root privileges using either su (Debian) or sudo (Ubuntu, Fedora). Note the single quotes around the command when using su - c!

$su - c ("command")

$sudo (command)

If you have problems running sudo commands, you will need to add the user to the /etc/sudoers file. To edit this file, simply use this command:

In this file, you need to add one more line after the line for notroot. You can use this:

(username) ALL=(ALL) ALL

Instructions for installing additional packages for the Debian 6.0 server.

The following instructions include lists of packages presented as examples, due to the possibility of updating packages, which may lead to changes both in the instructions and in working with packages in general.

Required software for installation

Common packages for building BOINC (based on (Unix/Linux) requirements):

Packages required for the BOINC server:

libapache2-mod-php5

mysql-server-5.1

libmysqlclient-dev

python-mysqldb (or MySQL-python)

libcurl4-openssl-dev

Packages required for BOINC libraries (including graphic ones):

Packages required for BOINC client and manager (In addition to libraries):

libcurl4-openssl-dev

libxcb-atom1-dev

additional packages for the graphical desktop manager:

This list contains all the required packages for the BOINC server and client components. When first enabled, these packages must be installed with the ability. The graphical desktop manager is an optional part, but makes server configuration a little easier. The list does not contain security packages to protect your server.

Creating a new BOINC user account

The best way to create a boinc user account is during installation when you are asked for a username and password. Enter "boincadm", or any name you like, as the username. The default name will be "boincadm".

Once the installation is complete, please log in as the user you created during installation. If you have installed a graphical desktop manager, open a text console (Konsole or xterm).

The next step is to add the user "www-data" (Apache server) to the group of the newly created user:

$ usermod - G - a boincadm www-data

MySQL server configuration

Create a new MySQL database for the user.

$ mysql - h localhost - u root - p

> GRANT ALL ON *.* TO "boincadm"@"localhost";

> SET PASSWORD FOR "boincadm"@"localhost"="";

The permissions can be limited to project database only, later; Defining an empty password simplifies the installation, can be changed later.

Encapsulation of the project database is only possible later; Defining the password blank will simplify installation and the password can be changed later.

You can also install this using the phpmyadmin interface accessible via http:// (server-IP)/phpmyadmin

2. Server installation

Downloading BOINC Source Code

The latest version of the development can be downloaded using:

$ git clone git://boinc.berkeley.edu/boinc-v2.git boinc-src

To update the source code you just need to go to the main directory and enter:

$ cd ~/boinc-src

The latest version of the client can be obtained from the BOINC website. Typically, you do not need to assemble the client application yourself, since the site provides an automatic installer.

Tip, check for the latest updates.

Compiling the BOINC project source code

Enter the following commands in the console window:

$ cd ~/boinc-src

$./configure - disable-client - disable-manager

The configure script means that only the server part and additional libraries will be compiled - if the installation is successful, the last line printed by the script will tell you this:

Build Components: (libraries server) -

Pay attention to the messages that are issued while the configure script is running, there may be warnings like this:

checking if CFLAG "-include fcgi_stdio.h" works… no

configure: WARNING: fcgi-stdio.h not found.

Disabling FCGI. Will not build components that require FCGI

If this does not result in script errors, you can either ignore the warnings, which may lead to possible problems in the future, or install the missing components and use the script again to gain additional functionality and avoid possible problems.

Also, if, for example, the Apache libraries are not found, then the server will not be able to compile.

After successful execution of the script, you need to run the command:

boincadm@boincserver:~/server_stable> sudo make install

Compiling the server components will take some time.

Virtual machine BOINC server

This is a virtual machine to be used as a BOINC server. It has all BOINC server prerequisites installed, BOINC software installed and compiled, and user accounts and access rights configured. He's ready to work

This virtual machine is created as a BOINC server. All the necessary libraries are preinstalled on it, BOINC software packages are already assembled and installed, user accounts and access groups are also already configured. Everything is ready to run ~/boinc-master/tools/ make_project.

  • · Passwords are stored in the README-vbox-image file, which is located in the archive with the virtual machine image. Root (or su) password "rootpw". The user "boincadm" with the password "boincadmpw" is also installed. These passwords should be replaced with stronger ones. Create software under this user.
  • · The software on the BOINC virtual machine needs to be updated, as it is possible that the image has outdated packages, use:
  • · $ ~/update_master.sh
  • · $ ~/configure_server.sh
  • · $ ~/make_server.sh
  • · The Linux/PHP/MySQL/Apache software on the image also needs to be updated using "apt-get update" or "apt-get upgrade".
  • · The “sudo” commands are available to the “boincadm” user; OpenSSH is also pre-installed and running on the server.

Network access.

VirtualBox provides two VM network access paths: Bridged Ethernet and NAT (Network Address Translation). One of the methods can be selected in the VirtualMachine settings. Before changing this option, disable VirtualMachine. It is recommended to use Bridged Ethernet.

If you somehow change the MAC address of the virtual machine (for example, by cloning the virtual machine), change the /etc/udev/rules.d/70-persistent-net.rules file after starting the virtual machine. The file should look something like this:

$ cat /etc/udev/rules.d/70-persistent-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules

# program, run by the persistent-net-generator.rules rules file.

# You can modify it, as long as you keep each rule on a single

# line, and change only the value of the NAME= key.

SUBSYSTEM== "net", ACTION== "add", DRIVERS=="?*", ATTR(address)== "08:00:27:bc:85:01", ATTR (dev_id)== "0x0 ", ATTR(type)== "1", KERNEL== "eth*", NAME= "eth0"

# PCI device 0x8086:0x100e (e1000)

SUBSYSTEM== "net", ACTION== "add", DRIVERS=="?*", ATTR(address)== "08:00:27:bc:85:02", ATTR (dev_id)== "0x0 ", ATTR(type)== "1", KERNEL== "eth*", NAME= "eth1"

Remove the line containing NAME= "eth0" and rename eth1 to eth0. Use the command:

$ sudo nano /etc/udev/rules.d/70-persistent-net.rules

After this, reboot the virtual machine.

More information on the Debian system can be found on the developer's website.

Bridged Ethernet

In this case, the virtual machine behaves like a separate link in the network. A network scan will show two separate machines, your main system and a virtual machine. Outgoing and incoming connections are possible.

# The primary network interface

iface eth0 inet static

address 121.132.134.0

netmask 255.255.255.0

gateway 121.132.134.1

dns-search yoursimpledomain.edu

dns-nameservers a.b.c.d

Where a.b.c.d is the IP address of your DNS server (there may be several of them at the same time).

Change /etc/resolv.conf to add

nameserver a.b.c.d

Where a.b.c.d is the IP address of your DNS server.

You must also add the IP address and hostname of the virtual machine to the hosts file. To do this, edit C:Windowssystem32driversetchosts (if using Windows as the host) or /etc/hosts (as root; if using Unix as the host) using a text editor adding for example:

121.132.134.0 debian6.localdomain

With this you can connect a client from your machine to a virtual machine. If you are using a proxy server to access the Internet, you must add "debian6.localdomain" to your exception list in your browser. You won't need a proxy to resolve a local address.

Alternatively, you can obtain an IP address using DHCP. It is not recommended to do this because clients will be confused if the IP address changes. To do this, edit /etc/network/interfaces, adding:

iface eth0 inet dhcp

This will work if your network has a DHCP server configured to add the IP address of new hosts.

For the changes to take effect, you must restart the virtual machine:

In this mode, the virtual machine distributes IP addresses to the host machine in order to create outgoing connections (access to the Internet through the virtual machine). In this case, the network scan will show only one machine. Incoming connection to the virtual machine is not possible in this case, so this mode is not recommended.

However, this limitation can be overcome by using port forwarding. To do this, use VirtualBox Manager (Edit > Network), change Attached to: to NAT, click Advanced then Port Forwarding.

The installer, then double-click the installer icon.

Install options

You can set install options by clicking the "Advanced" button on the configuration screen. The options are:

  • Program directory- where BOINC's program files will be stored.
  • Data directory- where BOINC "s data files will be stored. This will be a hidden directory; its location is shown in the BOINC start up messages.
  • Use BOINC screensaver- Use the BOINC screensaver for the current user.
  • Service install- Run project applications under an unprivileged account. This provides increased protection against faulty applications, but it prevents BOINC from using your GPU, and it may cause graphics to not work with older applications.
  • Allow all users on this computer to control BOINC- If selected ( public mode), all users can control BOINC (attach/detach projects, etc.). If not selected ( private mode), the only users who can control BOINC are: the installing user, members of the Administrator group, and members of the "boinc_users" group. When other users run the BOINC Manager, they"ll be shown a dialog saying to contact the administrator to add them to the "boinc_users" group.

Running BOINC invisibly

To run BOINC invisibly, choose the "Service install" option, then delete the BOINC shortcut from the Start/Programs/BOINC and Start/Programs/Startup menus (locate BOINC in each menu, right-click, select Delete). You can still run the BOINC Manager by going to C:\Program Files\BOINC and double-clicking on boincmgr.exe

Error recovery

If you get an error error 1714 - the old installation can't be removed when installing a new version of BOINC:

  • Reinstall the previous version.
  • Uninstall the previous version.
  • Install the new version again.

Mac OS X

  • the installer.
  • If your browser has not already done so, expand the zip archive by double-clicking on it in the Finder.
  • Double-click on the BOIN Installer application to run the installer, then follow the prompts.
  • Close the installer when it is finished. This will automatically launch the BOINC Manager.
  • If you want BOINC to be your screen saver, open System Preferences from the Apple menu. Select Desktop & Screen Saver and select BOINCSaver.
  • The default location for data directory of BOINC is /Library/Application Support/BOINC Data . You may want to exclude this folder from Time Machine backup system to prevent increase of backup data size.

It can the be built with the following commands

Unzip master.zip cd boinc-master ./_autosetup ./configure \ --disable-silent-rules \ --enable-dynamic-client-linkage \ --disable-server \ --disable-fcgi \ --enable-unicode \ --with-wx-config=/usr/bin/wx-config-3.0 \ --with-ssl \ --with-x \ STRIP=: \ DOCBOOK2X_MAN=/usr/bin/db2x_docbook2man \ "CXXFLAGS=$( pkg-config gtk+-x11-3.0 --cflags --libs) -DNDEBUG" make make install

Alternatively a specific version (gitbranch and gittag) can be downloaded with the following command:

Running BOINC using Docker

You can run this image using Docker on any 64-bit Intel computer (Linux, FreeBSD, Mac, or Windows).

The image contains only the client. You can control it using a BOINC GUI running locally or remotely.

Using a bootable image

You can download a bootable image containing Linux and the BOINC client, write it to a USB stick, and boot from it. Currently one such image is available: PADOLF@home is based on Debian. It includes the 7.8.3 BOINC client and GUI, and has recent video drivers for AMD and Nvidia GPU support. Note: this is provided by volunteers, not by BOINC.

The Berkeley Installer

The Berkeley installer is available. It is a self-extracting archive. This type of installation requires that you be familiar with the UNIX command-line interface. The download files have names like boinc_7.2.23_i686-pc-linux-gnu.sh .

Here is an example. The archive is downloaded to the desktop. It is then moved to the home directory (~). Finally BOINC is unpacked and installed. All of this can be done within a regular user account; root privileges are not needed.

$ mv ~/Desktop/boinc_7.2.23_i686-pc-linux-gnu.sh ~ $ cd ~ $ sh boinc_7.2.23_i686-pc-linux-gnu.sh

This creates a directory called BOINC/ under the home directory containing the following files:

Boinc The BOINC core client. boincmgr The BOINC Manager. boinccmd A command line tool for controlling a running core client. run_client A script that cd"s into the BOINC directory and runs the core client. run_manager A script that cd"s into the BOINC directory and runs the manager.

To start the client manually enter the following terminal commands:

$ cd ~/BOINC $ ./run_client --daemon $ ./run_manager

The BOINC working directory can be moved elsewhere as you like, and can even be renamed. One common choice is ~/.boinc , since files and directories with names that begin with "dot" do not show up by default in Unix directory listings. Whatever the name, everything related to the BOINC client is contained within that directory, and you should always run the client and the manager from that working directory.

Build BOINC from source

You can build the BOINC client from source. Keep in mind that BOINC consists of both client and server software. To run BOINC on your computer you only need to build the client software

Instructions for building BOINC from source are in a separate developer's wiki. Start with these pages:

There is additional documentation on other web sites:

  • Installing and Running the BOINC client on Unix (from Spy Hill) - how to install and configure the client once you have built it

64 Bit Considerations

If you are running 64 bit Linux, you might have a problem with projects that issue 32 bit applications rather than 64 bit applications. To allow 32 bit applications to run on 64 bit Linux you must install 32 bit versions of certain shared libraries. The names of the packages containing the 32 bit libraries are different for each distro.

N.B. The commands given below are executed in a terminal window. To open, hit the key combination Ctrl+Alt+T. The sudo commands could ask for a password to temporarily give admin installation rights for the needed libraries. , closing the terminal or leave the terminal idle for 15 minutes will revoke these rights again.

Fedora

Three packages are required for 64 bit compatibility.

Name Description
compat-libstdc++-296.i686 Compatibility 2.96-RH standard C++ libraries
compat-libstdc++-33.i686
compat-libstdc++-33.x86_64 Compatibility standard C++ libraries

Install all 3 packages at once, by opening a terminal and typing:

Su -c "yum install compat-libstdc++-296.i686 compat-libstdc++-33.i686 compat-libstdc++-33.x86_64"

Ubuntu

Four packages are required for 64 bit compatibility (Read whole section before applying).

Name Description
ia32-libs description is unavailable
libstdc++6 description is unavailable
libstdc++5 description is unavailable
freeglut3 description is unavailable

Install all 4 packages at once with the following steps:

  1. Open a terminal.
  2. Enter (with a space between every library name, or copy the line as-is, and right-click in terminal to paste)
sudo apt-get install ia32-libs libstdc++6 libstdc++5 freeglut3

If the above fails to get 32 ​​bit work on e.g. World Community Grid or to at all install, these sets work on newer Linuxes

Sudo apt-get install gcc-4.7-multilib libstdc++6 libstdc++5 freeglut3 lib32z1 lib32ncurses5 lib32bz2-1.0

or alternate for Test4Theory:

Sudo apt-get install gcc-4.7-multilib freeglut3 libwxgtk2.8-dev libcurl4-openssl-dev libxss-dev

The changes will not take effect until the client/daemon has been restarted. This too can be done in terminal, e.g. on Ubuntu with

Sudo service boinc-client restart

FreeBSD

  1. go to /usr/ports/net/boinc-client/, open the Makefile in a text editor
  2. change the CONFIGURE_ARGS=--disable-server as follows:
    1. on 32 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=i686-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
    2. on 64 bit FreeBSD change it to
      CONFIGURE_ARGS=--disable-server --with-boinc-platform=x86_64-pc-freebsd --with-boinc-alt-platform=i686-pc-linux-gnu
  3. do make install clean
  4. if you receive an error like "ELF 0 ....", make sure you have installed
    1. /usr/ports/emulators/linux_base-fc4 or higher
    2. sysctl kern.elf32.fallback_brand=3

There is additional information on installing, configuring and running BOINC on FreeBSD.