SMP VM in VMplayer 3.0 Guide

Kendrak

[H]ard|DCer of the Year 2009
Joined
Aug 29, 2001
Messages
21,141
This guide needed and update. We have had quite a few people in the last few weeks follow the old guide only to find out that they are using an outdated guide. This new version is HEAVILY borrowed from the previous version, so credit where it is due.

The nice part is that it is now even easier to set up.


Hardware:

This guide will work for 2-8 or more threads/cores.

4GB of RAM in the minimum unless it is a folding only box. Then you can get by with 2. The VM will take up 1GB or more of memory.

Quoted from Tigerbiten on 11/20/09. (keep in mind WU change so this may go up int he future)
With regular work-units, your looking at ~220Mb per thread, so you need just over 900Mb for 4 threads if your not going to page the VM.
Hence the 1,000Mb min size.
My regular VM's are running at ~930Mb.
Double it for -SMP 8.

For -bigadv work-units, your looking at double the standard work-unit size per thread.
Min size is probably ~5Gb for an 8 thread VM.
My -bigadv VM with 8 threads running is using ~4,530Mb.
Double that again if your running 16 threads.

Software:

VMware Player 3.0 You will need to register, it is free.

Notfred's pre-packaged VM


Edit "folding.vmx" using WordPad. Do NOT use notepad as you may lose formatting making the file unusable by VMWare Player.


You will need to make three changes.
First:
Code:
numvcpus = "4"
This needs to indicate the number of cores/threads that you want the VM to use. Player 3.0 will go up to 32.

Second:
Code:
priority.grabbed = "idle"

priority.ungrabbed = "idle"
These lines need to be added to the bottom to the file. This sets the priority to the lowest setting and will allow you to run your system as if the VM was not even there.

Third:
Code:
memsize = "1024"
This will give the VM room to breathe and will stop the VM from throwing an error because it is out of memory. (this may need to be upped with future WUs as they get larger)

My .vmx file looks like this:
Code:
#!/usr/bin/vmplayer
.encoding = "windows-1252"

# This is a Workstation 5 or 5.5 config file
# It can be used with Player
config.version = "8"
virtualHW.version = "4"

# Number of virtual CPUs. Your virtual machine will not
# work if this number is higher than the number of your physical CPUs
numvcpus = "4"

# Memory
memsize = "1024"

# Selected operating system for your virtual machine
guestOS = "other-64"

# displayName is your own name for the virtual machine
displayName = "Folding@Home"

# These fields are free text description fields
annotation = "Diskless Folding@Home"
guestinfo.vmware.product.long = "Diskless Folding by Nick Reilly"
guestinfo.vmware.product.url = "http://reilly.homeip.net"
guestinfo.vmware.product.class = "virtual machine"

# First serial port, physical COM1 is not available
serial0.present = "FALSE"

# Optional second serial port, physical COM2 is not available
serial1.present = "FALSE"

# First parallel port, physical LPT1 is not available
parallel0.present = "FALSE"

# Settings for physical floppy drive
floppy0.present = "FALSE"

# Logging
logging = "FALSE"

# These settings decides interaction between your
# computer and the virtual machine
isolation.tools.hgfs.disable = "FALSE"
isolation.tools.dnd.disable = "FALSE"
isolation.tools.copy.enable = "FALSE"
isolation.tools.paste.enabled = "FALSE"

# First network interface card
ethernet0.present = "TRUE"
ethernet0.virtualDev = "e1000"
ethernet0.connectionType = "bridged"
ethernet0.addressType = "generated"
ethernet0.generatedAddressOffset = "0"

ide0:0.present = "TRUE"
ide0:0.fileName = "folding.vmdk"

ide0:0.redo = ""

extendedConfigFile = "folding.vmxf"

virtualHW.productCompatibility = "hosted"
tools.upgrade.policy = "manual"

ethernet0.generatedAddress = "00:0c:29:06:e6:ee"
uuid.location = "56 4d ee 72 7e 31 4b 6a-15 91 0e ad d8 06 e6 ee"
uuid.bios = "56 4d ee 72 7e 31 4b 6a-15 91 0e ad d8 06 e6 ee"
debugStub.linuxOffsets = "0x0,0xffffffff,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0"
vmotion.checkpointFBSize = "16777216"

checkpoint.vmState = ""
replay.supported = "FALSE"
replay.filename = ""
cleanShutdown = "FALSE"

priority.grabbed = "idle"

priority.ungrabbed = "idle"


Wireless Configuration: If you are using Wireless, you will need to change ethernet0.connectionType to "nat". This is a quirk that I have discovered with notfred's as it is configured for e0000 which is usually your Wired Connection. If someone has been able to figure out a way to get "bridged" to work with wireless, I'd appreciate your comments and can update this guide accordingly. I am currently wired, but can test any wireless solutions that are provided.

Remember to save the file.

Install VMWare Player

I install with default values. There is not anything special you will need to do to get it up and running. This will run on WinXP (x86 or x64), Vista (x86 or x64), or Win7 (x86 or x64). I have not confirmed Win7 personally, but I have not read any reports otherwise.

** Win7 compatability confirmed by Vaulter98c.

Starting the VM up

After a system reboot you should be able to double click on the folding.vmx file (or make shortcut)

This will open up a VMWare WIndow.



Take note of the following:

IP Address that is assigned to the VM

Host Name



Open up an instance of your internet browser (IE or FF or whatever).

In the address bar, type in the IP Address assigned to the VM

The main screen gives you the basic information regarding this instance of notfred's. You will notice that the user is notfred and his team number is the default value. We are going to change that.


Click on hyperlink to Reconfigure this host and any USB Drive

The next screen is where you will change information regarding this instance.

Change Username to your folding Username

Change Team to 33 (yes, we hold for [H]!!)

Change "SMP instance per:" to 2, 4, or 8 depending on how many cores/threads you have.

Optional:
You can leave Windows Networking Workgroup as DISKLESS. I normally change it to my home networking group


Proxy Hostname | Proxy Port | Proxy Username | Proxy Password : Populate only if you have a proxy server


Interface: honestly am not sure what values are valid here. I will ping notfred's for valid values for this field


Static IP | Subnet Mask | Default Gateway | DNS Server IP: leave blank if your router will assign an IP address. I use a Static IP address as I normally create an IE Favorite Entry for the VM Instance. It is possible the IP address can change as you add items to your network. If it does change, then you will have to go to the box that is running the VM and take a look at the new IP Address that it has been assigned to via the VMWare Player Console. I currently run several VMs on headless boxen so it isn't easy for me to get to it. A Static IP address prevents this issue from happening.



TFTP Server IP: leave blank unless you have a TFTP Server running. If you do, then the VM Instance can backup the files to this server and can also restore from this server. It should be noted that since this is a persistent VM, all data is also saved within itself. NO data is lost if the VM is shut down.



Click on Reconfigure. Click on here hyperlink or wait for the screen to refresh.

From Main Screen, Click on Remote Reboot Enabled Hyperlink. Confirm Reboot. Reboot should take a minute or two depending on your machine.



It should go back to the main screen after the reboot is complete. IF you changed to Static IP Address, change the IP Address in the address box to the Static IP Address you assigned to this VM Instance. You should see the new values for those entries that you have changed.

All done! Enjoy your SMP goodness!
 
Last edited:
Please tell me where I have messed up or I need to add something.

We just needed a refresh bad.
 
Thanks for the update Kendrak. It sure is nice that we have official support for more than 2 cores now and don't have to hack anything.



 
You really should add something about setting affinities in the WinAFC, or even the Task Manager. Running a VM with normal priority makes the computer feel quite slow and laggy, and it's especially useful if you're folding with GPUs as well.

4GB of RAM in the minimum unless it is a folding only box. Then you can get buy with 2. The VM will take up 1GB or more of memory.
Should be "get by".

This will give the VM room to breath and will stop the VM from throwing an error because it is out of memory. (this may need to be upped with future WU as they get larger)
"This will give the VM room to breathe". And "this may need to be upped with future WUs as they get larger".

All done! Enjoy you SMP goodness!
"Enjoy your SMP goodness"

Thanks for the update Kendrak. It sure is nice that we have official support for more than 2 cores now and don't have to hack anything.
The official VMware Player support is still for only 2 cores; it's just that unofficially, you can have up to 32.
 
You really should add something about setting affinities in the WinAFC, or even the Task Manager. Running a VM with normal priority makes the computer feel quite slow and laggy, and it's especially useful if you're folding with GPUs as well.
That's what this part is for:
Second:
Code:
priority.grabbed = "idle"

priority.ungrabbed = "idle"
These lines need to be added to the bottom to the file. This sets the priority to the lowest setting and will allow you to run your system as if the VM was not even there.
 
The official VMware Player support is still for only 2 cores; it's just that unofficially, you can have up to 32.

The free version of VMware Player 3.0 will support 1, 2 or 4 cores.
Its only if you build your own disk images for -bigadv workunits that you need to edit the vmx file to support 8 cores.

I've just built a second disk image following my old guide.
Its here
My first disk image has worked with VMware Server server since I wrote the guide.

Luck ......... :D
 
Any chance of a guide to discuss how exactly to set up a bigadv VM? Im on my phone and maybe I missed it but thats all I can think of
 
To fold -bigadv work-units from the standard SMP client you need ...........
1:- A passkey
2:- To Fold 10 work-units useing that passkey.
3:- Drop in the drop-in replacement for fah6 that allows the -bigadv work-units to run.
Its downloaded from ...........

http://www.stanford.edu/~kasson/folding/linux/fah6 <- for Linux.
MD5 sum 29d2ee580f6f79ac996ad29f22554ec0

http://www.stanford.edu/~kasson/folding/osx/fah6 <- for OSX.
MD5 sum 44eeb86e2a4f19a7266591deba504474

If you don't then you will gett a bad argument with the -bigadv parameter.

4:- Add the -bigadv flag to the start line.
For example going from "./fah6 -smp -verbosity 9" for folding standard work-units on 4 cores to "./fah6 -smp 8 -bigadv -verbosity 9" for folding bigadv work-units on 8 cores.
If you used Finstall to install the client as a service, then the default flags are kept in the FaH file.

If your running the client inside a VM, then the VM needs a minimum of 4,600 Mb for the client to run in.
Edit "folding.vmx" again if needed.
You may need to make two changes.

1:- numvcpus = "8" or bigger, if you set it at 4 earlier.

2:- memsize = "4600" or bigger

Any smaller and it will error out.
A 5,120 Mb size is better as it gives the client some headroom.

Luck .............. :D
 
Last edited:
Anyone using this on a dual nehalem setup?
I cant get my VM to start with more than 8 vCpus
 
how do you monitor your progress with fahmon/HFM.net etc ive tried mapping the network drive then pointing the software to the folder it shows the work and points however i get some outrageous number for the percentage completed

edit: it also doesnt list the ppd, im trying to gather a solid # of my ppd across all machines
 
how do you monitor your progress with fahmon/HFM.net etc ive tried mapping the network drive then pointing the software to the folder it shows the work and points however i get some outrageous number for the percentage completed

edit: it also doesnt list the ppd, im trying to gather a solid # of my ppd across all machines
Make sure you have the "Client is on a virtual machine" option checked off. And the crazy percentage thing happens occasionally in Fahmon, but I'm not sure if there's anything that can be done about it. I personally stick with HFM.NET.
 
Back
Top