Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

What things are multi-core processors needed for? I mean what type of things benefit from using multi-core ? Also are there anythings that suffer in performance for using multi-core... ie. they perform better using a single core processor?

share|improve this question

migrated from stackoverflow.com Mar 15 '10 at 6:51

This question came from our site for professional and enthusiast programmers.

closed as not a real question by techie007, Linker3000, Majenko, Sathya Apr 28 '11 at 14:56

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

    
parallel operations benefits alot. for example non-real-time renders. –  Yossarian Mar 13 '10 at 22:56
4  
............yes. –  Ed S. Mar 13 '10 at 22:58
add comment

7 Answers

Anything where you want to do more than one independent thing at once benefits from having multiple processors, or cores. The traditional example is Operating Systems, running your word processor, browser, etc. simultaneously. A single core computer can become less responsive for all applications when one application is doing something computationally expensive, whereas a multi-core machine may isolate the busy application on one core, leaving free resources to still serve the user's requests.

Another benefactor is highly parallelisable computation, such as happens in scientific computing. The work can be spread across multiple processors or cores. Processor manufacturing is hitting the limits of how fast a single processor can run and not melt. The answer they have found is to have more processors running more slowly.

share|improve this answer
1  
+1 for mentioning that multiple processes on a desktop machine alone can be a quiet compelling reason already. Most people seemingly cling too hard to the multithreading scenario :-) –  Јοеу Mar 13 '10 at 23:04
    
+1 for @Brabster and +1 for @Johannes -- but I'm out of votes today, sorry. :) –  Alexander Burke Mar 15 '10 at 6:52
add comment

Multi-threaded applications benefit from multi-core processors, because you can assign threads to run on different processors. You get true parallelization instead of time slicing that way.

Java Swing has a separate thread just for processing UI events. I would say it's a definite benefit, even for single processor machines.

The trick is that it doesn't happen by magic. The application has to be written in such a way that it's aware of multiple processors using algorithms that explicitly take advantage of them.

share|improve this answer
add comment

Since clock signals are limited it's the only way for scaling, count your currently opened windows don't forget system tray. If you still doubt open the task manager or do ps -ef it you're running linux.

share|improve this answer
add comment

Calculations that are CPU intensive benefit the most from multi-core processors. For example, one hobby of mine is computer rendering and ray tracing. There is a linear speedup with the number of CPU's available.

Note that high intensity calculations are now being shifted to the GPU (Graphical Processing Unit, i.e. Graphic Card) using such technologies as CUDA, OpenCL and Direct Compute.

Calculation intensive software will perform best using a blend of multi-core and GPU-based computation.

Microsoft .NET 4.0 has significant advances in parallel programming that make it much easier to write multi-threaded programs. As a result, they will be even more common in the near future.

share|improve this answer
1  
CPU intensive isn't the key factor, the key factor is how well the CPU intensive part can be parallelized. Ray tracing is a good example of something that scales nicely when parallelizing. –  Sander Rijken Mar 13 '10 at 23:09
    
@Sander: True in that if the parallel threads would compete for the same resources and frequently found that resource locked by another thread then there's not much benefit (or potentially even a loss) by multi-threading. Can you think of other categories of CPU intensive problems that would not benefit? –  Eric J. Mar 15 '10 at 17:04
    
I can't think of a category of programs/issues/algorithms that would have problems. It just that programs not designed with multi-threading in mind are more likely to have some static state requiring exclusive access. Language like F#, and language elements like lamba expressions make it easier to write code that parallelizes better. –  Sander Rijken Mar 27 '10 at 12:14
    
@SanderRijken: Pick any NP-hard problem, and it will have problems parallelizing. As for non-NP-hard problems, depth-first search comes to mind. –  Mehrdad Jan 15 '13 at 5:26
add comment

Yes they are necessary for faster speeds with current CPU design. There are pitfalls with this approach however, mainly that the program in question must be capable of running parallelized.

share|improve this answer
add comment

Multi core processors have been around for some time now and it's really up to developers to make use of them, by writing multi threaded applications.

share|improve this answer
add comment

Absolutely! Even on my old P4 3.2Ghz switching over to a mere Dual Core 2Ghz made a massive difference... Give me 6 cores hint *hint*

Multiple CPU's also allows for more code execution because a CPU can only process one chunk of code at a time. So the more CPU's the faster and more responsive a program can be.

share|improve this answer
add comment