Jump to content
Brian Enos's Forums... Maku mozo!

Can't Utilize 100% Processing Power


Recommended Posts

So I'm running Pentium 4 3.4 Extreme Edition. Only problem is I can't utilize the full processing power. I can use all the processing power of one core, but not the other with the same program. It would be nice to use the other core to process calculations to reduce time. The typical CFD calculation on a small model can take 2-3 hours. So it would be nice to cut that time in half.

The dual core is nice that I can still use the computer to do other things while the calculations are running. But sometimes I would prefer it to run faster.

Anybody have any ideas how I can make things run faster?

Link to comment
Share on other sites

Ahh another CFD nut.. :lol:

You didn't mention what OS you were running. I will assume Windows and not Linux. This one is not an easy problem. Were you wanting to run 2 separate instances of the code or one instance split our over 2 processors? I assume that the machine sees both processors. I also assume that you have enough memory to load two instances (or whatever your trying to run) into memory.

Flesh out some more of the details and maybe I can help.

I use a dual amd64 system running linux. However, our code is custom written and uses the MPI or MPICH calls run the code over multiple processors.

steven

Link to comment
Share on other sites

Most PC programs are used to having one processor (ie, one core) to run on, period. So, they're not written to be multi-threaded (a term which means that the program is written to be able to do more than one thing at the same time). In order to use more than one processor or core at the same time with the same application, the app has to be written to be multi-threaded.

The biggest advantage you'll have with that setup right now, vs. a single core, single processor system, is that you'll be able to supply horsepower to a different app, or to the OS while you're working in the first app.

My understanding is that Photoshop CS2 either already supports this, or it is planned in the next release. It already supports multi-proc on Windows and OS-X. There are likely some other apps that can support it, too...

Link to comment
Share on other sites

So I'm running Pentium 4 3.4 Extreme Edition.  Only problem is I can't utilize the full processing power.  I can use all the processing power of one core, but not the other with the same program.  It would be nice to use the other core to process calculations to reduce time.  The typical CFD calculation on a small model can take 2-3 hours.  So it would be nice to cut that time in half. 

The dual core is nice that I can still use the computer to do other things while the calculations are running.  But sometimes I would prefer it to run faster.

Anybody have any ideas how I can make things run faster?

Which CFD software are you using? Some are multi-threaded, some aren't. Sometimes you have to reinstall teh software, or alter configuration options to take advantage of the second CPU. Also, if windows, you have to have installed the SMP kernel when the OS is installed. If you are getting performance graphs for both CPUs, but they both peg at 50%, don't sweat it, it's a bug in the performance monitor.

Link to comment
Share on other sites

I believe you'll find your answer up above. You need an app that can take advantage of two cores. Otherwise, if most of the work being done on your machine is in that one app, you're going to see the utilization like you do.... It's expected behavior in that case...

Does Floworks support MP?? Doesn't look like it from their webpage - they mention support for PIII and Athlon - if that's as current as they mention, well....

Link to comment
Share on other sites

Even if the program is threaded, it is not easy to make a program actually take advantage of the full processing power.

Unless the task is embarassingly parallel, interprocess communication (IPC) takes overhead. And unless the computation is pretty pathologically simple yet long, memory bandwidth will end up a limiter.

(I have a MSEE in computer architecture and have worked in a CPU R&D lab since 1999, for HP and now for Intel.)

Link to comment
Share on other sites

Even if it is DUAL CORE it is still multiple processors they just reside on the same die. The program will have to have parallel execution capability to take advantage of both cores.

Zak also makes a good point about loading of the processors. Not familiar with FLOWORKS (whether it is unstructured/structured single block/multi-block etc.) but depending on the size of your grids and how well the code can parse them into two distinct pieces you may not get much speedup. You will always have the overhead associated with the inter-processor communication at each time step as well as the bandwidth to the of die memory being shared. You mention it would be nice to half the time. More likely it is going to be somewhere between a 35%-40% speedup. half would be linear speedup and that is theoretical perfection. I have seen claims of super-linear speedup but haven't seen any borne out on real world problems.

Now if you had 8 or 10 processors it might be worth it. You might be better letting it run and using the other for realtime viz or something else.

Steven

Link to comment
Share on other sites

Even if the program is threaded, it is not easy to make a program actually take advantage of the full processing power.

Also a good point. If the app isn't threaded, though (or, more correctly, the computation engine that's doing the analysis isn't threaded), it isn't ever going to touch the second core.... :)

Without appropriate apps/code, a multi-core CPU on a PC is going to give you the ability to really do two things at once (ie, the Flowcore app could run, *and* you could read email or surf benos at the same time, without having to fight Flowcore for CPU - though memory resources are something else, as Zak mentions....). On a single-core, single CPU system, you're spending a lot of time switching between apps when you try to do this sort of thing...

Link to comment
Share on other sites

Win XP Pro,  Cosmos Floworks.  The 3.4 EE is a single CPU with dual core, it's not a dual CPU computer.  The performance graph shows one core pegged at 100% and the other one pretty much at idle.

Like others have said, dual core IS dual cpu. It jsut doesn't need two sockets. You SHOULD be seeing two CPU bars. 4 if you have hyperthreading enabled. If XP didn't install in SMP mode, you aren't using both cores.

As for Cosmos Flowworks being multi-threaded, I'm afraid you will ahve to ask the manufacturer, I never used it and haven't been able to find an answer on-line.

If you want to test your setup, darktree has a demo version, and darktree is multi-threaded IIRC.

http://www.darksim.com/html/dt25_demo.html

if you want to try and manually balance some CPU load, there is SMPseesaw.

http://www.mlin.net/SMPSeesaw.shtml

XPpro should be capable of handling 2 real CPUs and two virtual CPUs.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...