How to Run Rosetta@Home on Arm-Powered Devices
This week, after an amazing Arm community effort, the Rosetta@Home project released support for sending work units to 64-bit Arm devices, such as the Raspberry Pi 4, Nvidia Jetson Nano, Rockchip RK3399-based single board computers, and other SBC’s that have 2gb of memory or more.
Sahaj Sarup from Linaro, the Neocortix team, Arm, and the Baker Lab at the University of Washington all played in role helping us port the Rosetta software to aarch64, get it tested in their Ralph (Rosetta ALPHa) staging environment, validate the scientific results, and eventually push it to Rosetta@Home.
Now, anyone with spare compute capacity on their Arm-powered SBC’s running a 64-bit OS can help contribute to the project by running BOINC, and crunch data and perform protein folding calculations that help doctors target the COVID-19 spike proteins (among other medicine and scientific workloads).
Here is a quick tutorial on how to get started, using a native operating system for your devices. This methodology is not the only way to run Rosetta@Home, but, is intended for the technical users who want to run their own OS and manage the system themselves.
Raspberry Pi 4
To fight Covid-19 using a Raspberry Pi 4, you need a Raspberry Pi 4 with 2gb or 4gb of RAM. The Rosetta work units are large scientific calculations, and they require 1.9gb of memory to run. You will need to use a 64-bit OS for this, so Raspbian will not work, as it is a 32-bit OS. Instead, you will need to download and flash Ubuntu Server from their official sources, located here: https://ubuntu.com/download/raspberry-pi. Once the SD Card is written, and your Pi 4 has booted up, connect an ethernet cable, and be sure to run ‘sudo apt-get update && sudo apt-get upgrade’ to make sure the system is up to date. At this point a reboot may be necessary, and once the system comes back up, we can start to install BOINC and Rosetta. Run ‘sudo apt-get install boinc-client boinctui’ to bring in the BOINC packages. If you are using a 2gb RAM version of the Pi 4, we need to override one setting to cross that 1.9gb threshold mentioned earlier. If you have a 4gb RAM version of the Pi 4, you can skip this next item. But, 2gb users, you will need to type ‘sudo nano /var/lib/boinc-client/global_prefs_override.xml’ and enter the following to increase the default memory available to Rosetta to the maximum amount of memory on the board:
Press “Control-o” on the keyboard to save the file, and then press Enter to keep the file name the same. Next, press “Control-x” to quit nano.
Next, using your desktop or laptop PC, head to http://boinc.bakerlab.org and create an account, and while there, be sure to join the “crunch-on-arm” team!
Back on the Raspberry Pi, we can now run ‘boinctui’ from the command prompt, and a terminal GUI will load. Press F9 on the keyboard, to bring down the menu choices. Navigate to the right, to Projects. Make sure Add Project is highlighted, and press Enter. You will see the list of available projects to choose from, choose Rosetta, select “Existing User” and enter the credentials you created on the website a moment ago.
It will take a moment, but, Rosetta will begin downloading the necessary files and then download some work units, and begin crunching data on your Raspberry Pi 4!
You can press ‘Q’ to quit boinctui and it will continue crunching in the background.
If you have an Nvidia Jetson Nano, you can actually follow the same directions outlined above directly on the Nvidia-provided version of Ubuntu. To recap, these are the steps:
- Open a Terminal, and run ‘sudo apt-get update && sudo apt-get upgrade’. After that is complete, reboot.
- Using your desktop or laptop PC, head to http://boinc.bakerlab.org and create an account, and join the “crunch-on-arm” team
- Back on the Jetson Nano, run ‘sudo apt-get install boinc-client boinctui’
- Run ‘boinctui’, press F9, navigate to Projects, Add Project, and choose Rosetta@Home. Choose an Existing Account, enter your credentials, and wait for some work units to arrive!
If you have other single board computers that are 64-bit, and have 2gb of RAM, that run Armbian, the process is the same for those devices as well! Examples of boards that could work include Rockchip RK3399 boards like the NanoPi M4 or T4, OrangePi 4, or RockPro64, Allwinner H5 boards like the Libre Computer Tritium H5 or NanoPi K1 Plus, or AmLogic boards like the Odroid C2, Odroid N2, or Libre Computer Le Potato. Additionally, 96Boards offers high performance boards such as the HiKey960 and HiKey970, Qualcomm RB3, or Rock960 that all have excellent 64-bit Debian-based operating systems available.
For any of those, simply install the ‘boinc-client’ and ‘boinctui’ packages, and add the Rosetta project!
Of course, if you just so happen to have a spare Ampere eMAG, Marvell ThunderX or ThunderX2 laying around, those would work quite nicely as well.