code development

December 22, 2009

As announced some time ago we have been working on a new core (Protomol core B4), and it has been looking good in QA so we have started to release Promol core WUs more broadly. We have a preliminary Protomol FAQ for those who are curious to get more information.

This new core implements the NML (Normal Mode Langevin) method which
accelerates the long-time dynamics of the proteins by a factor that can
reach speeds up to a hundred times faster than those of molecular
dynamics. This method searches for low frequency directives by using normal mode analysis
and projects the motion of the molecule along them while resolving the
nearly instantaneous motion. If you want to learn more about this
method, you should read this pre-publication: Multiscale Dynamics of Macromolecules Using Normal Mode Langevin.

Based on Protomol 3.1, this core and its associated projects have the following goals:

To validate NML by simulating the folding and dynamics of the Fip35 WW domain.

To understand the role of mutations on folding.

To understand the activation of src Kinase, an enzyme that is involved in the onset of some kinds of cancer.

We will be posting more information as time goes on. I'm very excited about the new capabilities here, since NML allows us to algorithmically get an amazing speed up, i.e. without any additional CPU power. That algorithmic speed up multiplied by the vast power of FAH could mean very significant advances shortly, making 2010 an exciting year for FAH (in many ways)!

December 01, 2009

We are excited to announce progress in our testing of new SMP2 cores.
These cores use threads-based parallelization instead of MPI and, we
hope, should be much more robust than our first-generation SMP cores.

The SMP2 cores are currently in testing; watch for future
announcements regarding their release. The first SMP2 core to be
released will be a Gromacs-based core with core number A3. In
conjunction with this release, we are implementing some updates to our
points benchmarking system. In particular, we will use
early-completion bonuses, which we have been testing with the bigadv
work unit program, more extensively for SMP2 cores.

September 25, 2009

We have been pretty busy with new cores for FAH and I wanted to give donors an update.

1) SMP2: Gromacs and Desmond. Much effort has gone into our "SMP2" project, the codename for the second generation SMP client. The main goal here was to make it MUCH easier to use. In order to do that, it meant getting rid of our use of MPI. We have had two approaches to this. Both ditch MPI by using threads instead. One was to switch to a new piece of software for the core. This has led to the "Desmond" core, based on software from DE Shaw Research. The second approach was to communicate the MPI issues with the Gromacs developer team and work with them to push for a threads-based Gromacs implementation. Both of these are coming along well and we are testing cores in house. You should hopefully see these cores "in the wild" (i.e. running on FAH) in a month or two, assuming that tests go well.

2) Normal Mode Langevin (NML) Dynamics in the Protomol core. We have been working on another approach to speeding dynamics greatly, based on a new technique called Normal Mode Langevin (NML) dynamics. This method uses the same style models as normal MD (same force fields, etc) and thus should have the same accuracy, but with a pretty significant speedup due to algorithmic advances. NML is complementary to our other methods, so we're hoping to add it to everything else (in particular to the GPU core). To start, we will be testing it in a new core, based on the Protomol software. Protomol is designed to allow for rapid prototyping of molecular simulations, which is perfect for NML.

3) GPU3: Next generation GPU core, based on OpenMM. We have been making major advances in GPU simulation, with the key advances going into OpenMM, our open library for molecular simulation. OpenMM started with our GPU2 code as a base, but has really flourished since then. Thus, we have rewritten our GPU core to use OpenMM and we have been testing that recently as well. It is designed to be completely backward compatible, but should make simulations much more stable on the GPU as well as add new science features. A key next step for OpenMM is OpenCL support, which should allow much more efficient use of new ATI GPUs and beyond.

I'm very excited about these new advances. It really should fundamentally improve the key science software behind FAH as well as making the donor experience much more smooth on our more experimental clients (i.e. on GPU and SMP).

July 04, 2009

For those running the windows SMP client, I just wanted to remind donors that the previous client expires today and that an update has been available for a few days. Please see the "Drop-in binary for current Windows SMP console client (6.24) Expires July 4, 2010" on our High Performance Client page (at the bottom of the page):

January 28, 2009

We've made a code change in the two main assignment servers (assign.stanford.edu & assign2.stanford.edu -- but no the PS3 or GPU AS's) to handle a potential problem people have been having with getting through firewalls.

For those who are very experienced with running FAH (eg are familiar with the logs and how to interpret them): If you have had problems in the past with your firewall, could you now try again and see if you can get a server assignment? You likely won't be able to get to the server itself (we've just updated the AS code), but just knowing that this fix helped will let me know what we should update all of the work servers ASAP.

If everything was working fine, but now it isn't, please make a post in the forum: http://foldingforum.org

December 16, 2008

We have made several bug fixes and speed improvements wrapped into a new ATI GPU client (version 6.23). We strongly suggest that everyone upgrade. While current (and new cores, especially ATI GPU core version 1.22) should work with other clients, we are seeing some possible issues which the new client fixes.

As always, we suggest that one backup their machine before upgrading software, especially in case you would like to go back to the previous version. You can download the new client at

and as always, please post comments in the forum (http://foldingforum.org).

PS For those with NVIDIA GPUs, you could also consider upgrading to client version 6.23 (from http://folding.stanford.edu/English/DownloadWinOther ) as it also fixes some issues. However, this is less of a critical at the moment for NVIDIA than ATI.

November 07, 2008

Engineers at NVIDIA (notably Scott LeGrand) have come up with a theory for the EUE's seen in core 1.15 (and a few others in the 1.15 to 1.18 range) on certain hardware. They found that this core had code optimizations that drove the GPU so hard that it would draw a lot more electricity (one sign of this was running hotter). In some boxes, this was too much electricity and this lead to numerical instabilities. When the same machine was given a beefier power supply, the problem went away.

We've been told that 8800's require 600W power supplies, but we're finding that even a little bigger (eg at least 650W) is important to leave some room for error. We are working to see if there is some way to detect this issue in software, but for now, if you're getting EUE's on the NV GPU client, this is something to consider.

By the way, this will be very important for us to consider future code optimizations. NV core v1.19 removed some optimizations to solve this problem, but there are many cards which would run fine w/this more optimized code. If we can find a way to detect whether the card can draw enough power, we may be able to choose different code paths to allow for greater optimization for cards which can handle it.

We're still looking into this. For now, if you're seeing issues with your card, please consider trying out a bigger power supply. We will continue to look to see if this is indeed the problem and what we can do to help the situation such that the code runs stably on all machines.

September 22, 2008

We've been looking into the issues some people have been finding with the viewer. On the ATI/AMD side, the catalyst 8.9 drivers seem to have resolved a number of issues with the viewer.

On the NVIDIA side, we have also now released on our download page a special version of the viewer designed for NVIDIA GPU's; this viewer has modifications that makes the viewer run much more smoothly and in general and behave better on a broader range of NVIDIA GPU's. If you're curious to run the viewer, please check it out (on our high performance client download page).

September 18, 2008

In partnership with Sony, we've rolled out a new update to the Folding@home client for the PS3, now built into their "Life With Playstation" (LWP) application. They've done a great job of building a beautiful piece of software. Folding@home is running underneath in the background. Noam Rimon, the lead developer on the Sony side put it well in an earlier blog post as well as a more recent post on the PS3 blog

We’re going to offer this as a free service that will be easily accessible directly from the XMB. Life with PlayStation will feed live content to your PS3 with updates on news and weather on a visually stunning and interactive global map. Imagine being able to wake up to your PS3 to see if you need to pack an umbrella for the day. Or just relax as you listen to your favorite tunes while reading up on top news from around the world.

We've also updated the science code to do the same functionality of what the GPU2 code can do today. However, people will notice that the ns/day will go significantly down. We want to stress that the points per day remains the same. This means that one gets more points/ns since the calculation is more complex, so don't worry too much if your ns/day is lower. LWP takes up a little extra compute time from the science, but not much. Most of the decrease in ns/day is due to the fact that it's doing a much more complex calculation (which is good for the science side of this).

There's also a nice Video demo done by Noam Rimon showing the functionality of LWP:

We'll give further updates about this as time goes on, but we're excited to have the new science functionality in and to have a client which hopefully can even further broaden the participation of PS3 owners in Folding@home.

PS Some people have noticed that LWP seems slower. In particular, the ns/day count is down, but that's not what it might seem. We're doing more complex science which runs slower on the PS3, so that's responsible for most of the slow down you're seeing.

For those who are interested, it's slower because we're running a more complex version of the GB implicit solvent, which is much more computationally demanding; the upside is that this would be much more accurate. This is also the main solvent model we're running on GPU2 right now. In fact, earlier PS3 results pointed us to the significance and importance of moving to this new model, so this (and GPU2) reflects what we've learned so far.
However, there is a small performance hit due to all the other life with Playstation (LWP) eye candy. However, it's not very big in the end (the Cell and RSX GPU are very powerful), with most of the slow down in terms of ns/day coming from the new science code. The upshot of the LWP platform will hopefully be getting a lot more PS3 donors (but I guess time will tell there).

So far, the response will be strong and I expect that this could in time double the FLOP count from PS3 donors in Folding@home, which itself will be pretty impressive. More importantly, with the advanced science now rolled out on both the PS3 and GPU2 platforms, we're well-poised to tackle some much more complex and interesting calculations.

August 04, 2008

With the 6.20 (classic & GPU) and 6.22 (SMP) clients out, we can start looking forward to the next steps in client development. We still have some last bits of work to completely unify the clients, but the hard part is already completed there for the most part.

The 6.2x series introduces several new features for donors, but in time, the clients have been getting gradually more and more complex to use. The Win/SMP and multi-gpu setups are examples of very challenging setups. Our primary plans for the future are to make setup much easier, especially for the very challenging clients (Win/SMP, multi-gpu). Our dream client install would be a single installer that would install either the classic, SMP, or GPU client based on donor choices during the install process, and the installer would take care of complex install situations (such as multi-gpu).

It may take a while to get to a client installer like that. In the mean time, we are looking to improve our installation instructions to make the process easier with existing clients.

We have spent a lot of effort developing these new clients and putting all of our effort into getting them to run well (the GPU2 client/core has gotten a great deal of effort, which has paid off in the transition from GPU1 to GPU2). It's now time to concentrate on usability and ease of installation.

Our hope is that with this completed, we will have a very advanced set of clients, but with very easy installation. That's easier said than done, but that's where we're headed.