He said the elapsed time was N days, using my example let's say 4 days if you run 4 instances of the single-thread application, that would be the common thing to do without SMP.Jesse_V wrote:bruce wrote:In the early days of SMP, a quad processor could reduce the elapsed time from N days to ~0.23*N]I'm pretty sure Bruce said 0.23 for a reason. At first I too was a bit confused, but I thought about it a bit more and realized that it might have something to do with overhead and the architecture. In fact, I'll bet that if you ran 4 uniprocessors you wouldn't be exactly 4x as productive. The 0.23 is reasonable considering all the data transfers and core synchonizations that Bruce discussed, and that can slow down production. In that sense, its difficult to get the strong scaling needed to get to 0.25*N. With a quad-core and considering Bruce's discussion, I'm not sure how you could get over 0.25.
In the unlikely instance that SMP gives no extra overhead, meaning nothing to syncronize between threads and so on, a quad will use 1/4 as long time, meaning 1 day. If you've got some extra SMP-overhead, you'll use more than 1 day, meanin 4 days * 0.3 (using my example) = 1.2 days.
A number like 0.23 on the other hand indicates the SMP-client uses only 0.92 days, and I find it unlikely that with SMP you'll manage to finish 4 wu's in 3.68 days if the quad-core uses 4 days to run the same 4 wu's with a single-threaded application...
FAH according to TaskManager drops down to 75% yes. But, if you looks on the FAH-log, you'll see that the "5 minutes between 1%" suddenly has increased to "20 minutes between 1%" or even worse. Losing a core should mean the 5 minutes increases to 6.67 minutes, while losing 2 cores should mean 10 minutes. An increase from 5 minutes to 20 minutes on a quad-core means you're effectively only using a single core for crunching, but you're using electricity for all of them.Hmm. Well each DC projects has to balance the development and support of an SMP client against its benefits. In F@h's case where there's serial calculations involved, getting things done quickly is an advantage. As Bruce mentioned, things like SETI@home don't need this, and 4 uniprocessors is probably fine. And by "performance hit" I'm assuming you mean the DC project, which is true. I don't know about you, but when I browse the web I used like 5% of my quad-core's power, which means that I can watch FahCore_a4.exe drop down to 95% usage. Even when I run some CPU-intensive program, F@h drops down to only 75%. The point of these run-in-the-background clients is that people don't use that much CPU all the time, and even when they do there's usually plenty left over.
Example of this below, not from a quad but i7-920 meaning quad+HT. Now, don't remember exactly that I did, but it's likely something a little more demanding than web-browsing...
Code: Select all
22:29:41:Unit 01:Project: 7905 (Run 13, Clone 47, Gen 0)
22:29:41:Unit 01:
22:29:41:Unit 01:Entering M.D.
22:29:47:Unit 01:Using Gromacs checkpoints
22:29:47:Unit 01:Mapping NT from 8 to 8
22:29:48:Unit 01:Resuming from checkpoint
22:29:48:Unit 01:Verified 01/wudata_01.log
22:29:48:Unit 01:Verified 01/wudata_01.trr
22:29:48:Unit 01:Verified 01/wudata_01.edr
22:29:48:Unit 01:Completed 133400 out of 500000 steps (26%)
22:31:22:Unit 01:Completed 135000 out of 500000 steps (27%)
22:36:11:Unit 01:Completed 140000 out of 500000 steps (28%)
22:41:00:Unit 01:Completed 145000 out of 500000 steps (29%)
22:46:41:Unit 01:Completed 150000 out of 500000 steps (30%)
22:52:23:Unit 01:Completed 155000 out of 500000 steps (31%)
23:11:22:Unit 01:Completed 160000 out of 500000 steps (32%)
23:28:53:Unit 01:Completed 165000 out of 500000 steps (33%)
23:35:14:Unit 01:Completed 170000 out of 500000 steps (34%)
23:41:39:Unit 01:Completed 175000 out of 500000 steps (35%)
23:46:30:Unit 01:Completed 180000 out of 500000 steps (36%)