Why Twitter is bigger than 140 characters
Are you a Photoshop expert? We need volunteers
Gaming Keyboard Roundup: Logitech, OCZ, and Razer

3500 points per day on a Quad Core CPU? Icrontic shows you how!

by Jordan Van Der Meijden published Sep 6, 2007

Filed under: Icrontic, folding

This guide is aimed at those lucky (or crazy) enough to have a Quad Core processor dedicated for folding, that will be running 24/7. If this is not the case- (perhaps you have a Quad but you use it in your main computer), this guide will not help you, not because it is more CPU intensive, but memory intensive. Both Virtual Machines will allocate between 500 to 800 megabytes of RAM each!

These are the minimum requirements for 2 SMP (symmetric multiprocessing) clients on a quad core processor:

  1. An Intel Quad core processor (Either an Intel Core2 Quad or Core2 Quad Extreme), AMD X4 (when available) or a dual socket, dual core rig.
  2. 2 gigabytes of RAM or more
  3. Very good cooling if overclocking.

The Folding@Home SMP client, although much more efficient than running multiple uniprocessor clients, still isn't the most efficient way to fully utilize the processing power of a Quad processor.

The solution? Run two SMP clients!

The SMP client was designed with four processors in mind, so that each time the client is launched, 4 instances of FAHCore are created and run on each logical CPU core. The problem is (at least with Intelīs CPU) that since a Quad only consists of two glued dual core CPUs, the communication between each dualcore unit is done through the front side bus and northbridge chipset—things that cause overhead.

So, the idea is to isolate each SMP client to a physical core (consisting of 2 logical cores) so that they don't have to communicate with the other physical core. In conclusion, there will be 2 SMP clients and each will generate 4 instances, which will run on each physical core.

The problem lies in that we can not configure the client to tell it what cores we want them to use, since it will always create 4 instances, and on a quad processor, 4 cores will be detected and the instances loaded on all of them.

With VMware, however, we can create two individual Virtual Machines (guests) and assigned each of two logical cores to each Virtual Machine (VM). If it sounds complicated, it really isn't.

Once we start up one VM, we then set the affinity (in the Host) for cores 1 and 2, and the second VM to cores 3 and 4. This way, each SMP client will detect only two cores (set previously in the Virtual Machine configuration) and also will utilize the same physical core (just as if we had a Core2 Duo instead). For a dual socket, dual core machine, it's exactly the same thing. For a dual socket, dual Quad core machine, there is the possibility of creating four VMs with two cores assigned to each. Of course, it's doubtful that someone with that kind of massive configuration will have it dedicated to Folding. If that someone is out there, however - please consider folding for Team 93!

Now, on to my VMWare configuration:

I use Windows 2003 Server 32bit for the Host. I haven't tried using the 64 bit version since the Virtual Machines can run in 64bit mode even over a 32bit host. I did not install Linux as a Host mostly because of hardware compatibility, but the idea would be the same. I am using VMWare Workstation 6.0.

For the Guest, I use SUSE 10.1 x64 but any other 64bit Distro would do. Here it's mandatory that the Guest be 64bit Linux as the SMP Linux folding client requires it. I also chose Linux because in most cases, the WUs fold faster (leading to more points per day!)

So, we have a Windows 32bit Host and we will create 2 Linux 64bit Guests. Each will run an instance of the SMP client and will be running on 2 Cores.

Once VMWare is installed, you need to create a new Virtual Machine. You will be asked how much disk space, memory, and how many CPU cores (two, in this case) will be allocated.

My setup is as follows:

  1. Disk space = 4Gb (both root / and swap partitions will be installed in this 4Gb image)
  2. CPU cores = 2
  3. Memory space = 768mb
  4. Network type = Use NAT (this option will make each VM have its own IP but will use the Host IP to communicate with the internet and the rest of the LAN computers).

Once created, you can boot from your optical storage and install Linux normally. Once it's installed and configured, do not install the SMP client yet, stop the Virtual Machine and CLONE it from within the VMware menu. You will have to reconfigure the Computer Name and the NIC configuration for this cloned Linux OS as the new VM will generate a new MAC address.

Now that both Virtual Machines are ready, you can install the SMP client on both (which will generate new User IDs) and once the first one starts folding, in Windows, set the affinity of the VMWare process (should appear with 50% CPU usage) to cores 1 and 2. Start the second VM, and launch the SMP client. Again, set the affinity for the new VMWare process to cores 3 and 4, and let it fold!!!

With this amazing setup, you will be pushing over 3000 points per day on a single machine. We'll be tracking the progress of my dedicated Quad Core folder as well as other members' in our forums.

Any questions are welcomed!

About the author

Jordan Van Der Meijden

Jordan Van Der Meijden is Dutch, living in Argentina. He works as a systems administrator for IBM and beside being a dedicated Folding@Home participant for Icrontic's Team 93, he likes travel and diving (He just so happens to be an S.S.I. certified rescue diver).