• Welcome to Overclockers Forums! Join us to reply in threads, receive reduced ads, and to customize your site experience!

FAH client SMP support?

Overclockers is supported by our readers. When you click a link to make a purchase, we may earn a commission. Learn More.

soundfx4

Member
Joined
Feb 2, 2001
Location
Roanoke, VA
Does the FAH client support SMP? I am actually running it on a couple of dual CPU workstations, but it doesn't seam to be using SMP. Is there a way to enable it? Thanks.
 
no it doesn't, but you could run the dual instance Wedo one click, one instance per core, and set the affinities using Task Manager (assuming your using windows, so both cores are utilized
 
If you have a SMP system that has Intel CPUs that use HT, you can run 4 instances of FAH; One instance for each logical CPU. If you have a dual core SMP, with each CPU having 2 cores (i.e. dual core Opterons), then you can run 4 instances of FAH; One for each physical core.
 
One cpu, with one core - 1 console runs

One cpu, with two cores - 2 consoles can run (That's me)

Two cpu's, with one core - 2 consoles can run.

Two cpu's, with two cores - 4 consoles can run.

There isn't much to recommend making the folding program SMP. Yes, they could do that, and it would run each work unit faster, however, it would be about 10% SLOWER than just running two folding programs, non-smp.

When a program runs SMP, there is always an efficiency drop.

If you're interested in SMP, the first and most famous SMP chess program's author, frequently posts at http://www.talkchess.com, (the computer chess forum, NOT the "Thinkers", forum), and occassionally at rec.games.chess.computer.

His name is Robert Hyatt, he's a prof at the University of Alabama, and co-author of the former World Computer Chess Champion, CrayBlitz.

Crafty is frequently used as one of the benchmarks for SMP boxes.

Adak
 
there was/is some deverlopment of SMP/DC for F@H and might be available when(ever) the new v.6 client release. for now, you just run 1 instance PER PHYSICAL CORE/CPU is the best way for folding science. :cool:
 
I agree, 1 FAH instance per physical core is best for science. It is true though that 1 instance per logical CPU generates more points.

Not advocating either position. Just the facts as I understand them.
 
ok, but what about CPU utilization? If I set it to 100% and only ran one instance, wouldn't windows distribute the load to about 50% on each CPU. That is how SMP works to my knowledge, unless of course a program supports SMP, in which case it can utilize both CPU's simultaneously at 100%. Is that correct?


If so, then if I set one instance to 20% utilization, then only 10% of each CPU would be used. So If I ran two instances with 20% utilization, then that would make

Instance number 1: CPU 1: 10% CPU 2: 10%
Instance number 2: CPU 1: 10% CPU 2: 10%

Is that right? I can't actually run it at 100% on the two dual core workstations, because they are actually servers, and they need extra CPU time to do other stuff.


Thanks!
 
yes, you are right about SMP load distribution.

if you don't want to make your server running 100% load by F@H, you might just want to run 1 instance overall and could set that instance to 25% or let it consume 50% of the cpu cycle at default then.

btw, FYI, F@H will step back when there's other program needs the cpu cycle, only it will not release the memory that it has already consumed.
 
on mac os x i run two fah terminal windows on a dual processor power mac G5 and use the activity monitor to verify that each instance of fah is running on a separate cpu. it was pretty easy and seems to be working alright.
 
soundfx4 said:
ok, but what about CPU utilization? If I set it to 100% and only ran one instance, wouldn't windows distribute the load to about 50% on each CPU. That is how SMP works to my knowledge, unless of course a program supports SMP, in which case it can utilize both CPU's simultaneously at 100%. Is that correct?


If so, then if I set one instance to 20% utilization, then only 10% of each CPU would be used. So If I ran two instances with 20% utilization, then that would make

Instance number 1: CPU 1: 10% CPU 2: 10%
Instance number 2: CPU 1: 10% CPU 2: 10%

Is that right? I can't actually run it at 100% on the two dual core workstations, because they are actually servers, and they need extra CPU time to do other stuff.


Thanks!

No. Windows will NOT distribute a folding program load across two cpu's or cores. It will run whatever percentage you have it allowed to run at, on just one core/cpu per instance.

Yes, that is theoretically how SMP programs work (not in real life, certainly), but the folding program is not SMP.

Again, if you set one folding instance to 20% it will run 20% off just ONE cpu or core, and NOTHING off the other.

Yes, you CAN let the folding programs run at 100% BECAUSE THEY HAVE IDLE PRIORITY, and will almost instantly give up CPU cycles. This has been well tested and documented.

The only problem would be if you had a very memory intensive work unit (like the old QMD's), then the problem becomes the memory the folding program will use AND KEEP, NO MATTER WHAT. It WILL give up the CPU cycles, immediately, BUT IT KEEPS IT'S MEMORY. So memory usage is what you have to watch.

Adak
 
Adak said:
No. Windows will NOT distribute a folding program load across two cpu's or cores. It will run whatever percentage you have it allowed to run at, on just one core/cpu per instance.

Yes, that is theoretically how SMP programs work (not in real life, certainly), but the folding program is not SMP.

Again, if you set one folding instance to 20% it will run 20% off just ONE cpu or core, and NOTHING off the other.

Yes, you CAN let the folding programs run at 100% BECAUSE THEY HAVE IDLE PRIORITY, and will almost instantly give up CPU cycles. This has been well tested and documented.

The only problem would be if you had a very memory intensive work unit (like the old QMD's), then the problem becomes the memory the folding program will use AND KEEP, NO MATTER WHAT. It WILL give up the CPU cycles, immediately, BUT IT KEEPS IT'S MEMORY. So memory usage is what you have to watch.

Adak


now that you say that, I know for a fact that what you are saying is not true. I wasn't sure at first, but I remember now having a long heated debate on what you are saying, and finally I understood how it works. Windows does and WILL distribute load across all CPU's evenly. That's just how it works. Ask...ummm...well I forgot his name lol, but he is the one that told me NO, NO! That is wrong! And I was all like, but that doesn't make any since! And finally after we were on the same page, I understood what he was saying, and I realized that windows does indeed evenly distribute the load across all cores/cpus.



If it is going to eat up memory and not release it, then I better not mess with it, because I believe these servers both need their memory.
 
TollhouseFrank said:
only 1 of the cores is quasi-smp compatible, but even then, it only gives about a 5% boost in power... and that is the QMD Core.


well that seams kind of pointless then. hah :p
 
Well, it looks like I'll just open up two instances then. After all, two instances sounds like it would be better then one SMP instance anyway.


Thanks for all the help everyone!
 
soundfx4 said:
now that you say that, I know for a fact that what you are saying is not true. I wasn't sure at first, but I remember now having a long heated debate on what you are saying, and finally I understood how it works. Windows does and WILL distribute load across all CPU's evenly. That's just how it works. Ask...ummm...well I forgot his name lol, but he is the one that told me NO, NO! That is wrong! And I was all like, but that doesn't make any since! And finally after we were on the same page, I understood what he was saying, and I realized that windows does indeed evenly distribute the load across all cores/cpus.

Unfortunately, you're quite wrong. Prove it to yourself. Take a dual core box, and the folding program, and load just one instance. Set it for 100%, and let it start folding. Close down all other programs or active services.

Now open Task Manager and check your CPU utilization. It will read "50%". I've done this with my dual core, and so have lots of other folders.


Adak
 
it may show 50% load, but that is still 100% load for that Core. Windows XP 'splits' all cores (physical and virtual) up amongst 100%. Though each core may be working at 100% capacity, it will only show as say, 50% or 25% in task manager.... just a strange way that MS decided to do things.
 
yes. running single instance on a dual core/HT'ed machine will only shows 50% usage in task manager 'cos windows see it as 2 core thus 50%+50%=100%. however, it doesn't mean one core is working 100% while the other core is sitting idle when running 1 instance on a dual core rig tho!!

p.s. it will be true (1 core sitting idle while the other one is running hard) in the case of Win98's old day as it can't see more than 1 cpu.
 
LandShark said:
yes. running single instance on a dual core/HT'ed machine will only shows 50% usage in task manager 'cos windows see it as 2 core thus 50%+50%=100%. however, it doesn't mean one core is working 100% while the other core is sitting idle when running 1 instance on a dual core rig tho!!

p.s. it will be true (1 core sitting idle while the other one is running hard) in the case of Win98's old day as it can't see more than 1 cpu.

I'm not saying anything about HT, because I've never had an HT cpu.

however, it doesn't mean one core is working 100% while the other core is sitting idle when running 1 instance on a dual core rig tho!!

Yes, that is what it means. :D

Even though there are two cores, a non-SMP program will only use one of those cores. The program simply isn't SMP, so it can't use more than one core. That is determined by the application program, NOT by the OS.

If that program should launch another program thread, THAT new program may very well be used by the second core.

Windows WILL assign different programs (and different instances of the same program), to each core, as it judges best, but it will NOT make a non-SMP program into an SMP performer.

Adak
 
Last edited:
Adak said:
Even though there are two cores, a non-SMP program will only use one of those cores. The program simply isn't SMP, so it can't use more than one core. That is determined by the application program, NOT by the OS.

If that program should launch another program thread, THAT new program may very well be used by the second core.

Windows WILL assign different programs (and different instances of the same program), to each core, as it judges best, but it will NOT make a non-SMP program into an SMP performer.

Adak
yes, windows won't/can't make a non-SMP aware programe into a multi-thread program. however, windows WILL split the load (in whatever % it seems approperiate) on even just one single thread through out 2 core. it will not letting one core doing all the work (1 thread) while the other is sitting idle. e.g. it will be like 20% on core1, 30% load on core2 for the single thread instruction.
 
LandShark said:
yes, windows won't/can't make a non-SMP aware programe into a multi-thread program. however, windows WILL split the load (in whatever % it seems approperiate) on even just one single thread through out 2 core. it will not letting one core doing all the work (1 thread) while the other is sitting idle. e.g. it will be like 20% on core1, 30% load on core2 for the single thread instruction.

If the program initiates a service, or another program, Windows will "balance" that load. The first program, itself, can NOT be "balanced" by Windows. It will run totally on the core/cpu it is first assigned.

Adak
 
Back