Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

MULTI CORE CPUs to run many programs ?

  1. Aug 27, 2008 #1
    the wife does printing grafixs and wants to have several programs open at the same time
    like photo shop, illustrator, paint and others
    will a 4 core CPU be better or a faster 2 core CPU be better

    I have heard that most programs do NOT use more then one core at a time
    but will each open program use a core or will they all try to run thru one core

    so where should the cash be spent a faster CPU or a 4 core unit

    I am think of a core 2 dual with a fast bus speed and 800 ram at max levels
    with a sata 2 HD
  2. jcsd
  3. Aug 27, 2008 #2


    User Avatar

    Staff: Mentor

    I suppose it depends on the version, but the newest versions of graphic programs that tend to be heavy on the processor (like Photoshop) are most likely using more than one core (to some extent it is just a matter of recompiling them). And if you are doing some printing in the background, several cores will be helpfull.

    In my personal epxrience two cores are definitely faster and easier to work with then one core. At least that's what I observe when developing my programs. The logic behind seems to be that one core updates API while the other does the background job, this way you get immediate response from the API and program doesn't look sluggish. It also means that one program can easily use several cores, even if compiled with a decade old compiler. My understanding is that that's because of the way event driven OS/API works.
  4. Aug 27, 2008 #3


    User Avatar

    Staff: Mentor

    Programs only use processor when they are doing something. So if you can have 4 cores half the speed of two cores (for equal total processing power), go with two cores.
  5. Aug 27, 2008 #4
    I would like this clarified - does the *OS* have something to do with how many cores are used?
    eg. Linux has a Normal kernel, and it has a SMP kernel, which will make it run across 2 CPUs - how does it do this? The programs instructions are independent of the kernel, how does Linux know which chip to send it to, if it is indeed, possible!
  6. Aug 27, 2008 #5


    User Avatar

    Staff: Mentor

    These are not individual instructions executed by separate cores, but whole threads. To some extent number of cores doesn't matter - OS switches between threads, assigning them processor time. Whether threads are assigned time slices on the same processor or different ones doesn't matter for the program, although it may change overall efficiency.
  7. Aug 27, 2008 #6


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    This is false. A multi-threaded program may have its threads spread across multiple CPUs. These days, virtually all programs are multi-threaded. That doesn't mean that all the threads have equal computational demands, though -- Photoshop might have one very computationally intensive thread performing an image manipulation, and another relatively light thread displaying the user interface.

    In general, you will see a larger improvement with more cores than with faster individual processors.

    - Warren
  8. Aug 28, 2008 #7
    This is true only if the application has been threaded to take advantage of multiple cores. There's a vast difference between simple multithreading in code (so as to ensure, say, that a GUI remains responsive while the program does some intensive computations in a different thread) and ensuring that the multithreading translates to threads being passed and evaluated efficiently on several cores.

    Generally, unless you've designed your code from the ground up to do mutexing and race conditioning in a smart manner, you'll see better performance from fewer, faster cores than with more cores. A good example is the current line of Core2 Duos versus the Core2 Quads; in almost all cases -- and certainly in real-world applications with typical desktop software -- the two-core processors are a better bet than the four-core processors.
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Have something to add?

Similar Discussions: MULTI CORE CPUs to run many programs ?