Distributed Computing

I can support research efforts that are computationally intensive to contribute to sustainably-minded projects.  This page is not about the nearly 50 projects supported by BOINC in particular but how I contribute to them and/or the dozen or so projects with their own client.  In particular, how I signed up for the Free Tier of Amazon Web Services and launched free computer instances for additional support.

A Little About Two Projects

Please join the ‘denhac’ team when contributing to either of these projects.

  • The World Community Grid’s Clean Energy Project hopes “to find new materials for the next generation of solar cells and later, energy storage devices. By harnessing the immense power of World Community Grid, researchers can calculate the electronic properties of tens of thousands of organic materials – many more than could ever be tested in a lab – and determine which candidates are most promising for developing affordable solar energy technology.”
  • The goal of FreeRainbowTables.com is to prove the insecurity of using simple hash routines to protect valuable passwords, and force developers to use more secure methods.  By making open source the largest set of dictionaries of how your passwords are encrypted (so it will be very likely your encrypted password can be looked-up) your online privacy will be ensured in that those in charge of storing your online credentials will have to make sure this method cannot be used!

Running Locally

To participate, I registered with these projects on their respective websites and installed the BOINC client on my Ubuntu and Windows laptops.  I found it anti-climactic, the set up is well documented and took maybe 15 minutes and then I just started getting points.  After a few weeks though I caught the bug, my world position was steadily dropping and I was installing a BOINC app even on my android phone.

Whether you are just starting out and installing on a local machine or are going to install on virtual machines, you need to install BOINC on each.  When I started running on multiple machines, I found the account manager BAM! (which you use via their web site) to help a lot.  The only hiccup was it connects to projects using the same username and password you register with BAM!  Now I can check my stats on any given computer and adjust the priority of different projects (for each computer if I like but do not require that level of management).

Running Remotely

Amazon Web Services Elastic Compute Cloud (AWS EC2 Service) has a Free Tier in which you can use 1500 CPU-hours per month (the equivalent of 2 more full time computers!).  The free instances only have about 600 MB of RAM so some projects won’t run but freerainbowtables.com runs fine.

You have to give credit card information in case there is overage, but this is a very simple project so there is no chance of this. We are not trying out servers as AWS intends, just running a program.  In the set-up described below there is an opportunity to set an alert so you get an email if ever a payment is required.  I set this up in October 2013 and after a couple months have noticed each instance generated about 1,000 BOINC credits (one task) every 3 days.

Setting up Amazon Machine Instances should take less than 20 minutes.  First check out the details about Qualifying for the Free Tier.  You must have a AWS account that is less than a year old, one Amazon Machine Instance has to be Linux (3 distros available) and the other Microsoft Windows Server 2012.  As this is for the computing power of a single program, the configuration is the simplest possible, a single t1.micro instance running continuously. However it is good to keep an eye on it via alerts.

I signed-up with 3 different e-mail addresses and when the year was up, one of the Windows machines had disappeared. Of the five machines left (all same CPU spec), the Linux instances tended to generate more credit than the Windows ones with a large distribution (lowest total credit 46,710, highest total credit 63,990.

You can sign-up with AWS for as many e-mail addressed you maintain. After registering, “Launch the AWS Management Console.” When you log into AWS in the future the Management Console is where the action takes place.  Navigate to EC2, “Launch” a t1.micro instance (one Windows and one Linux) – check they have the little “Free Tier Eligible” tag on the icon.  64-bit OS will get the most out of the CPU (I chose Ubuntu Server 12.04.3 LTS and Microsoft Windows Server 2012 Base).  To launch you need to create a key pair, just after you click “Launch” it will ask you if you want to create, give the keys a name, download the .pem file. NOTE: When I came back here to launch the second AMI I used the same key pair.

It takes a few minutes for the system to create a new virtual computer.  While you wait click the blue  “Create Billing Alert” and from there navigate to “Billing Preferences” near the bottom of the left column (I signed up for both the “PDF Invoice by email” as well as the “Monthly Report” simply by the one-click of those buttons) – Complete – Thank You AWS. Click “View Instances.” to get back to the console.

Connect

To view your instances from now on, google “AWS Management Console” (my instance did not show up when I logged in using Firefox, I set it up using Chrome so will stick with that.)  Note your machines are “running.” Connecting is different for each OS as well as from which OS you are using.  Take a deep breath, once I got through it the anti-climax happened again.

a) Connect to the Windows Instance

AWS Docs: Launching And Using Windows Instances

Select the Windows instance and click “Connect” then, under “Get Password” upload your key pairs file, click Decrypt, and copy that string to your clipboard. THEN “Download Remote Desktop File”.

When using Windows, I typed mstsc via Command Prompt.  When using Linux to connect, I had to find an RDP client (I eventually was successful on Ubuntu using  “Remote Desktop Viewer”).

b) Connect to the Linux Instance

No need to click the “Conect button, just need a console.

Using Windows and PuTTY

Using Linux via SSH (not the optional first one)

Requires you can call ssh from a terminal. I used “ssh -i myKey.pem ubuntu@myPublicDNS.” Once you are connected: sudo aptitude update

Install BOINC

a) Ubuntu

There is no need to install the “Manager,” which is a GUI that interfaces to the client. Rather just install the client which can be controlled but the command line via ssh (just type what I did below): http://boinc.berkeley.edu/wiki/Installing_BOINC_on_EC2

sudo aptitude install boinc-client

When this completes I was prompted to reboot, so I exited the ssh session and used the reboot Action from AWS console. BOINC starts on boot, so after you log back in go to the boinc-client directory and attach to the project:

$ cd /usr/lib/boinc-client
$ boinccmd –project_attach  http://boinc.freerainbowtables.com/distrrtgen [your Weak  ID]

If you want to anonymously contribute as to the generic ‘denhac’ user: 31246_dbcbdc75fe27c5b9378d600385328df1

$ boinccmd –get_state (note your total credit is logged indicating it is connected to the project)

When logging in in the future this will give you the status:

$ cd /usr/lib/boinc-client; boinccmd –get_simple_gui_info

Here is the full documentation of the the boinccmd interface (how to join/update projects and start the client without the GUI BOINC Manager).

b) Windows

I pasted this link into the basic file browser to install BOINC: http://boinc.berkeley.edu/dl/boinc_7.0.64_windows_x86_64.exe

I had to “Add” the site to the trusted list because this is windows Server.  The reboot of course shut down my Remote Desktop Viewer, but when I logged back in, the BOINC manager started automatically

I tried running the World Community Grid’s FightAids@Home Project at the same time as distrRTgen  on the Linux AMI and found it slowed the overall work to between 50% and 65%.  Perhaps because there is no swap space so was writing disk a lot.

Paying For More

“On Demand” instances are too expensive.  I need an instance that has 1 GB memory to run the Clean Energy Project.  The cheapest Rackspace instance is a basic “Linux” OS and costs $0.06 / hour or $43 / month.  This is the same price as AWS m1.small on Debian.  The m1.medium is twice as much for 2 CPUs and twice the RAM.  The computation configuration instance. c1.medium, has 5 CPUs and costs $104 per month.

On the other hand, “Spot” instances are 1/5 the cost and should run half the time, a c1.medium is 0.018/hour so less than $13 per month.  My understanding is with Spot Pricing the full instance is terminated intermittently and I have seen this to reset the Clean Energy Project by several hours for a given task so don’t expect it would work, maybe the distrRTgen tasks are more robust to this constant rebooting.

There is a Folding At Home AMI ready to go which forces you to choose m1.small, m1. medium, or c1.medium

Further Reading

http://gianforte.org/blog/boinc-on-amazon-ec2/

http://aws.amazon.com/ec2/pricing/#spot

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: