Wouldn’t you know it! As soon as we get admin rights in Azure in the form of Startup Tasks and VM Role, the fine folks at Stanford have released a new SMP client that doesn’t require administrative rights. This is great news, but let me provide a little background on the problem and why this is good for our @home project.
In the @home project, we leverage Stanford’s console client in the worker roles that run their Folding@home application. The application, however, is single threaded. During our @home webcasts where we’ve built these clients, we’ve walked through how to select the appropriate VM size – for example, a single core (small) instance, all the way up to an 8 core (XL) instance.
For our purposes, using a small, single core instance is best. Because the costs are linear (2 single core costs the same as a single dual-core), we might as well just launch 1 small VM for each worker role we need. The extra processors wouldn’t be utilized and it didn’t matter if we had 1 quad core running 4 instances, or 4 small VMs each with their own instance.
The downside to this approach is that the work units assigned to our single core VMs were relatively small, and consequently the points received were very small. In addition, bonus points are offered based on how fast work is done, which means that for single core machines, we won’t be earning bonus points. Indeed, if you look at the number of Work Units our team has done, it’s a pretty impressive number compared to our peers, but our score isn’t all that great:
As you can see, we’ve processed some 180,000 WU’s – that would take one of our small VMs, working alone, some 450 years to complete! Points-wise, though, is somewhat ho-hum.
Stanford has begun putting together some High Performance Clients that make use of multiple cores, however, until now, were difficult to install in Windows Azure. With VM Role and admin startup tasks just announced at PDC we could now accomplish these tasks inside of Azure, but it turns out Stanford (a few months back, actually) put together a drop-in replacement that is multicore capable. Read their install guide here. This is referred to as the SMP (symmetric multiprocessing) client.
The end result is that instead of having (for example) 8 single-core clients running the folding app, we can instead of 1 8-core machine. While it will crunch fewer Work Units, the power and point value is far superior. To test this, I set up a new account with a username of bhitney-test. After a couple of days, this is result (everyone else is using the non-SMP client):
36 Work Units processed for 97k points is averaging about 2,716 points per WU. That’s significantly higher than the single core which pulls in about 100 points per WU. The 2,716 average is quite a bit lower than what it is doing right now, because bonus points don’t kick in for about the first dozen items.
Had we been able to use the SMP client from the beginning, we’d be sitting pretty at a much higher rating – but that’s ok, it’s not about the points.