Installing BOINC on a server

Most online manuals focus on the installation of the BOINC client on a consumer computer (Windows or macOS) or mobile device (Android). In our case, we’re running BOINC and World Community Grid on dozens of servers and we face issues like a demand for low maintenance, high output and scalability.

This is a document that can evolve over time, depending on changes and new insights we gather from our work on our computing cluster.

Operating System of choice

In our case, we’ve opted for the Linux OS. The reason not to choose for Windows Server is mainly based around the need for scheduled maintenance (updates, reboots, downtime etc.) while on Linux these updates often don’t require a server reboot. For an enterprise like ours, licensing isn’t an issue, but for smaller companies or enthousiasts, licensing fees might be a hurdle to Windows Server as well.

Canonical Ubuntu

The largest part of our cluster is running Ubuntu Server 18.04 LTS. We chose for the long-term support version as this version will receive security patches until 2023, lowering our time investment in the maintenance of the server OS.

Preparation

First off all, the Ubuntu Server image file needs to be downloaded. At the thank you page you can find the SHA256 hash to validate the downloaded .iso file. This is needed to make sure that no corruption has occured during the download process. The command stated there can be run in the Terminal on Linux (or you can use sha256sum), while on Windows you need a separate command (CertUtil) or use the CRC check functionality built in a tool like 7-zip.

Then the .iso image file needs to be transported to the intended server. Depending on the server model and its technical capabilities, you can use one of these options:

  • Burn the .iso file to a CD-R or DVD-R.
    Note: burn the disc as an ‘Image’ and don’t just drop the file on the CD/DVD or else it won’t boot the server once the burn process is finished.
  • Create a bootable USB thumb drive. You can use Rufus on Windows or Unetbootin on Windows, macOS or Linux.
    Alternatively you can use the ‘dd‘ command on both Linux and macOS to write the image file to the USB thumb drive.
  • Use the onboard capabilities of the server to send the .iso image file via the network. Check if your server supports this feature, f.e. remote console, iLO, IPMI or iAMT.

Installing Ubuntu Server

Once the server boots into the Ubuntu Server installation medium, you’ll see this image appear. If this image doesn’t appear or you see a different operating system booting (the one currently on the harddisk) then go into the BIOS of the server and alter the boot sequence. Make sure your installation medium is listed before the harddisk.
After a while you’ll notice that the seeding process starts. Often this completes within 15 minutes.
Select your language.
Select a keyboard layout.
Choose ‘Install Ubuntu’.
Under normal conditions an IP-address will be assigned to the server via DHCP. If that’s not the case, than either there’s no DHCP server available on the current network segment, or you are facing Subiquity bug #1824483.
Depending on your network configuration, you can enter a proxy server for internet connectivity.
You could enter an Ubuntu mirror server close to your physical location (for faster download speeds), or you can opt for the default mirror.
By default we choose for ‘Use An Entire Disk’ when provisioning a new server.
Choose the correct physical disk.
An overview of the file systems is given before they are written to disk.
Confirm that all data on the current disk will be overwritten by new data.
Enter account details like server name (will be the server hostname on the network), username and password.
In our case we skip this step.
Here you can see how the system is being built during the installation of Ubuntu Server.
When everything is done, the system needs a reboot. Don’t forget the extra <enter> key you’ll have to press on the terminal that follows this screen, to indicate that the installation medium has been ejected or unmounted.

Once the reboot is complete, the server will boot up. After some residual installation tasks, a flashing user login will appear. If that is not the case, the <enter> key can be pressed to clear the terminal output.

Updating Ubuntu Server

When the server has rebooted and you’re logged in, it’s time to apply the most recent system- and security patches to the operating system. You can do so as follows.

sudo apt-get update

You’ll need to enter your password once again to validate the use of the super user account for the duration of the current session.

Once the update command has pulled in all the required data, it’s time to actually download and apply the updates.

sudo apt-get upgrade

I personally always give the server a reboot after the patching is done, to make sure that all patches are activated correctly and no old code remains in memory.

Installing BOINC

When installing BOINC there’s two options you can choose from.

  • Choose the BOINC stable version
  • Choose the BOINC bleeding edge development version

Choose the BOINC stable version

Anyone who has tried to install BOINC on Ubuntu Server might have noticed that the package seems missing. This has to do with the fact that the universe repository is not included by default. Luckily, this can be changed pretty easily.

sudo nano /etc/apt/sources.list

A simple text editor will appear.

Simply add the word universe after the first and third line. Follow this by pressing Ctrl+O, when the above screen appears, and press <enter> to write the file to disk.

Alternatively, you could use the following command which will have the same effect.

sudo add-apt-repository universe

A rerun of the update command is needed to pull in all the new package data from the universe repository.

sudo apt-get update

After this, you can simply install BOINC as follows.

sudo apt-get install boinc-client

Note that boinc-manager is not present in the command. Remember that we’re using Ubuntu Server which has no graphical user interface or desktop environment. Thus boinc-client is sufficient to make BOINC run on this server.

Choose the BOINC bleeding edge development version

Should you be interested in the bleeding edge development branch of BOINC (and you’re willing to face the occasional bug), then here’s what to do.

The development version of BOINC isn’t present in the universe repository we discussed in the previous section. To get a hold of that version, we need to add an additional repository in the form of a PPA (Personal Package Archive).

sudo add-apt-repository ppa:costamagnagianfranco/boinc

A rerun of the update command is needed to pull in all the new package data from the ppa repository.

sudo apt-get update

After this, you can simply install the BOINC development version as follows.

sudo apt-get install boinc-client

Attach World Community Grid to BOINC

BOINC is now running on your server, but it’s not yet linked to any project or user. To achieve this, you can simply log into the World Community Grid website and look for your Account Key on your My Profile page.

Using this Account Key, you can enter the following command to link the boinc-client on this server to your World Community Grid account.

sudo -u boinc boinccmd --project_attach http://www.worldcommunitygrid.org 2ad0aa3a2dcc8608675ec10dfb8455d5

When you enter the htop command, you’ll see boinc-client starting to asses the available server processor(s) via a CPU benchmark. And after a while, you’ll see the first actual work-units arrive at your server.

It’s time for a beer, you’ve successfully installed BOINC on a server!

Our servers run at full load 24/7, as you can see at the CPU load bars all being at 100%. The actual CPU load can be altered when you log into you World Community Grid account at the Device Profiles page. This can be useful in case you face issues with cooling or noise near your server(s).

Creating awareness and gaining new users

In this article I’ll give some examples about the way we communicated our initiative and how we tried to convert people into new active members for World Community Grid.

We hope this article will help organisations that might struggle with the issue of awareness and user engagement in relation to distributed computing and World Community Grid.

Our colleague Sjoerd Klomp created the visuals in this article, using our corporate style guide for inspiration on colours, fonts and drawings.

1. Explain

Most people have no idea what distributed computing is and even less of a notion about its usage in the field of humanitarian research. The fact is that even most technical people don’t know about it. This is something we noticed when we started with our project at de Volksbank.

We were able to explain the concept and technology to our fellow technical colleagues, but if we wanted to include other colleagues (or even external employees, visitors, customers etc) we needed a different approach.

To spread the word about World Community Grid, the team members presented the concept to different groups of people within the organisation, including the board. In our case, we were met with a positive response and an apparent willingness to help. Old hardware was directed our way, which we were able to enter into service, entirely dedicated to World Community Grid.

But physical presentations only get you so far. So it was decided to create large informational banners that are placed in the vicinity of our demo cabinets (mentioned in my first article).

Large canvas banners, placed in the vicinity of a working World Community Grid computer/server. Size: 2 meters tall, 1 meter wide.

The banner includes information about the project, stats, our position in the national and global ranks and a centrally positioned call to action. It also links this initiative to our company manifesto. At the bottom, an internal link is included for colleagues to find more information about the project.

2. Motivate

A pair of banners is one thing, but to really capture peoples interest, the message needs to be present at more locations during the day. If people are confronted with the project more often, in different ways, it will enter their (subconscious) mind sooner or later. This awareness makes people somewhat knowledgeable about the possibilities of computer simulations and distributed computing in general. 

Elevator
An informational poster placed in our company elevators. It includes an internal link for more information about the World Community Grid project. A detailed installation guide for Android smartphones is also available at that website.

Visual that shows on our narrowcasting displays throughout the office. These displays combine office notifications, internal news and external news items. Because of this, the World Community Grid sheet is displayed numerous times a day.
Narrowcasting

After using all these opportunities to reach people, we can safely say that there is a reasonable chance that people have seen these messages at least once. And that takes us to the final step.

3. Activate

Giving people information doesn’t automatically make them active members of World Community Grid. We decided that a personal approach would be suited to make people take the last hurdle and install the BOINC client on their device(s).

For three consecutive days, between 07:00 and 09:00 in the morning, two members of our team were stationed at the entrance of our office, handing out little info cards, explaining the initiative and even helping people to install and run the BOINC app on their mobile device.

Flyer handout
Frans Bovens & Kevin Wagemakers handing out flyer cards to colleagues entering our office.
Flyer
Your phone saves lives
‘Your phone saves lives.’

Because of the personal attention and the info cards, we gained a few dozen new users. We plan to repeat all of the steps above at our other office location(s), hoping to see more people enter our World Community Grid team, especially non-technical colleagues. 

We hope this article will help organisations that might struggle with the issue of awareness and user engagement in relation to distributed computing and World Community Grid.

Rick van de Westelaken.

Starting with distributed computing in corporate environments

My last post was centered around the topic of distributed computing for humanitarian research via World Community Grid. During this project I’ve seen and learned a lot of things. Some of these experiences could be useful for other (medium or large) corporations when they intend to venture into the uncharted waters of distributed computing.

TL; DR: It’s safe to use, don’t use hardware older than ~5 years and start with a small scale deployment.

Wilco Steehouwer, Martijn Vermue, Kevin Wagemakers & Frank Diepstraten, core members of team ‘de Volksbank’, managing our distributed computing servers in our data center.

Why should you participate in World Community Grid?

Everyone could have their own personal motivation for joining World Community Grid, although the participation in a global search for better medical cures could be a big factor. The current research (into cancer, aids, ebola, zika and tuberculosis) spans diseases that we are often familiar with. This makes it a worthwhile effort for many participants.

In World Community Grid we’ve found a clear and noble goal to direct our technical knowledge towards solving these global humanitarian issues.

In our case, we’re a financial institution with a very clear manifesto stating the need to do business ‘with a human touch’ while adding value to the common good. As the IT department within this bank we struggled with a search for practical initiatives to commit to these guiding principles. In World Community Grid we’ve found a clear and noble goal to direct our technical knowledge towards solving these global humanitarian issues.

Side note: the three principles mandatory for each project within World Community Grid were very important to us: 

  1. Humanitarian: Focused on solving problems to benefit humanity.
  2. Not for profit: Conducted by public or nonprofit organizations.
  3. Contributed to the public domain: all data generated by World Community Grid volunteers must be made freely available to the scientific community.

Is it safe to run World Community Grid?

According to IBM, the question they hear the most is about the (cyber)security of the BOINC client and World Community Grid. A valid question, as you’re granting BOINC/World Community Grid the ability to run executables on your machines*. I’ve been using World Community Grid since 2004 and I’ve not seen a significant incident in those years, so I do have some confidence in the IBM/World Community Grid security team. 

To reduce the (residual) risk even further, you can create a special VLAN within your network, or use a separated network, and connect all your World Community Grid machines to that network (segment). That way, even a rogue work unit can’t do much harm.

Side note: World Community Grid is also a great tool for load testing of new hardware or during Proof-of-Concept projects. Load testing is important, so why not do something useful in the process?

Power usage and sustainability

Running World Community Grid requires power, and the larger your ‘farm’ gets, the more power you will use. For private participants, this often comes down to a simple cost benefit analysis, but for corporates, this might differ.

Depending on your locality, corporates pay peanuts for their electric bill. I’m not saying that such a bill can’t be huge, but looking at the ‘price per unit’ numbers, this will be way lower than your residential contract. This is due to multiple causes; contracts running into the multiple Gigawatt-hours per year can be negotiated with the power carrier, taxes above a certain power usage tier may become void etc. All these factors make running World Community Grid at a corporate location much more cost effective than at satellite locations or at home. 

Side note: this also makes it much easier to offset the power usage with ‘green’ energy, solar panels or ‘guarantees of origin’, so the environmental impact of the power usage is further reduced.

Economically obsolete does not equal technical obsolescence.

Now the topic of sustainability. We tackled this one by only using hardware we already own. Every large corporation has some sort of warehouse, attic or basement where old, discarded hardware ends up, often just gaining dust. In our case, below those layers of dust, we found multicore servers with massive amounts of RAM. If you think of it, it’s crazy to look at those devices stacked up on a ‘discarded hardware’ pile. The heart of every true engineer would ache at such a sight, so why not put them to use for World Community Grid? Economically obsolete does not equal technical obsolescence. 

Side note: really old machines, like Pentium II, III, IV etc. use too much electric power for the computational power they output. Those machines might look awesome in a museum, but don’t actually power them on.

One misconception I often hear is that to be sustainable, we have to lower our power consumption. This, in my opinion, is not the whole story; we have to reduce energy losses. So it’s ok to switch off the lights when nobody is present, or to turn off the heating at night, but when actual useful (business) results are being made – and not wasted – power consumption in and of itself is not an issue.

Management and the board

Contrary to what you might think, distributed computing for humanitarian causes is actually a pretty easy sell to management and the board, especially when it comes down to medical research. Almost everyone has experienced losses due to terminal illnesses in their own family, social circle or at the workplace. We’re no different in that respect, and it makes people think when such sad events occur. 

Using distributed computing to speed up the research to find viable cures is a cause that resonates well among management and the board, especially at my workplace. Other firms might see this as a great way to address ‘Corporate Social Responsibility’ or just as a plain PR stunt. As long as numbers are crushed, results (with a benefit to us all) will be made. And that’s what counts.

Just start

Every engineer might dream about a large computing farm, number crushing for great causes, but how do you start? How do you get approval from management, the board or even your colleagues? These hurdles might seem so big that any initiative might die in silence. 

The World Community Grid team at de Volksbank

But the solution is really simple: just start! Our team started with just a couple of Android devices and approval to use our company name as our World Community Grid group ID. This resulted in (internal) exposure, colleagues joining and departments donating old hardware.

Many people have never heard of distributed computing, let alone it’s usage in humanitarian/medicine research. In my organization the response has been solely positive, although the current setup procedure, the focus on scoring points versus a focus on the value created and the UX of the BOINC client are somewhat challenging for people with no familiarity in IT. Hopefully this will change in the future**. 

Again I would like to thank de Volksbank for all the support our team has received, both in old hardware, as well as in commitment. Also many thanks to IBM Corporate Responsibility and especially the World Community Grid team for all the work they’ve done to make this all a reality.

Rick van de Westelaken.

*) this is the main reason why BOINC doesn’t run on Apple iOS devices.
**) I’ve seen the ‘Science United’ initiative that might focus on these aspects.

Distributed Computing at de Volksbank

When I got involved in distributed computing back in 2004 – using the United Devices client on my Pentium IV Windows XP desktop – I couldn’t have imagined where that journey would take me. All these years I used my desktops, laptops and Android devices to add computing power to different projects, all at small scale. First stand-alone clients, later BOINC based projects.

These surplus computing resources are currently directed towards research on aids, cancer, ebola, tuberculosis and the zika virus, hoping it will result in cures, available decades earlier than without (super)computing power.

Earlier this year I told my colleague Kevin Wagemakers about World Community Grid, how it works and how it contributes to medicine research and other humanitarian causes. He became interested, formed a small team and took the opportunity to work out a strategy. It started with the creation of our team ‘de Volksbank’ and some quadcore Android smartphones. Later on we got an old decommissioned server (a hexadeca-core) which we set on display in the central hallway of our office. This setup was used to present the idea to management.

Kevin Wagemakers & Rick van de Westelaken standing in front of the public display cabinet containing a fully working HPE server and display driver. 

More colleagues became involved in the project and we accumulated more and more computing power. Old laptops, desktops, old servers and even cloud instances were added. Even this massive 10U Blade server started running dedicated World Community Grid.

HPE Blade enclosure with Gen7 and Gen8 Blade servers running World Community Grid 24/7.

Fast forward to today: we are now the no.1 World Community Grid team in The Netherlands and globally we are at position 27. The impact we can make with limited quantities of hardware is amazing. These surplus computing resources are currently directed towards research on aids, cancer, ebola, tuberculosis and the zika virus, hoping it will result in cures, available decades earlier than without (super)computing power.

HPE servers with two octa-core Xeon cpu’s each, running World Community Grid 24/7.

I’d like to thank my organization, de Volksbank, for all the support we’ve been given so far. And many thanks to the IBM World Community Grid team for enabling us to participate in this meaningful research.

Banner present in the public section of our office, stating information about the World Community Grid initiative and a call to action for colleagues to join our team