Solved

do all programs take advantage of all processor cores?

Posted on 2010-08-27
17
601 Views
Last Modified: 2012-05-10
I'm using a windows 2008 SBS server and a colleague has told me that not all programs take advantage of all the cores within the computer.  We have 8 cores in 2 seperate processors. Can anyone confirm this ?
0
Comment
Question by:resolver1
  • 6
  • 5
  • 3
  • +2
17 Comments
 
LVL 2

Accepted Solution

by:
Nol888 earned 189 total points
ID: 33546543
Only programs that are coded for and optimized to run multiple threads can fully take advantage of a multi-core processor. Most desktop applications do not use multiple threads, but most server programs (IIS, Apache, etc) are written to take advantage of the extra processing power.
0
 

Author Comment

by:resolver1
ID: 33546638
what determines whether a program uses multiple threads? is it the compiler?
0
 
LVL 2

Assisted Solution

by:Nol888
Nol888 earned 189 total points
ID: 33546836
No, it's the program itself. If the program is written to use multiple threads, then it will. Otherwise it is just single-threaded.
0
 
LVL 3

Assisted Solution

by:SantiagoA
SantiagoA earned 63 total points
ID: 33547002
There's a difference between multiple processes distributed in multiple cores (one process in one core) and "parallel procesing" in wich a single process in split between multiple cores or CPUs.
Only VERY specialized software runs using parallel processing, like rendering Pixar movies, or reservoir simulation for the oil industry. Some of this application can use even 1,000 CPUs (called clusters) at the same time. They are designed to split one computation in multiple blocks and assigng each to one CPU, then put all the results together and come out with the unified result.
Multi core CPUs are used to distribute all the big list of processes running in a regular PC, but each process is onlo located in one particular core. This helps to reduce the load that implies one core to do all the job.
0
 
LVL 2

Assisted Solution

by:Nol888
Nol888 earned 189 total points
ID: 33547089
I wouldn't say VERY specialized software uses your so-called parallel processing; video encoders as well as even some video decoders run using multiple threads, in which one process can split its workload across multiple CPUs.

Getting back to the original question though, multiple cores = more threads executing tasks simultaneously. Even if one program cannot split its load between the cores, you can then execute multiple processes simultaneously.
0
 
LVL 1

Assisted Solution

by:kenmerry
kenmerry earned 186 total points
ID: 33548624
As I understand it the multi-core  or CPUs are mainly for games programs
0
 

Author Comment

by:resolver1
ID: 33548662
OK. so if a program has been written to make uses of multiple threads, it will use all the processors availible to the operating system?
0
 
LVL 1

Assisted Solution

by:kenmerry
kenmerry earned 186 total points
ID: 33549124
Not necessarily, as I understand multi-thread/processors. It will depend on how the program has been written. Unless you have access to the code/programmer I'm not sure hpw you can find out. Most prograams are written for single processor. If you write a progrm and throw enough threads the OS will take care of how many processors to use. I'm not sure where you are trying to go? If I watch one of my SBS 2003 servers with 8 CPU Cores in twin Xeons the majority of the processing is done in one or two cores. If I look at BOINC (climate prediction software) on my PC it uses all four cores to the same level.
0
Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

 

Author Comment

by:resolver1
ID: 33549665
i'm trying to understand why i would want and also why manafacturers are all making pc's with multiple cores if developers are not using them all.  i'm also trying to understand why developers dont make use of the cores if it will make their app faster.  if anyone can help me understand it would be appreciated.
0
 
LVL 1

Assisted Solution

by:kenmerry
kenmerry earned 186 total points
ID: 33549963
Hi. It takes a lot more effort for the programmer to use threads/multi CPUs and I guess the buck is king. So if you are paying a programmer £100,000 p.a. and you have a team of 40 and it takes 2 years to write the program. Extending that time frame will cost more and probably not recoup the costs for making it multi core/threading?
0
 
LVL 32

Assisted Solution

by:_
_ earned 62 total points
ID: 33551612
>> ...why i would want and also why manafacturers are all making pc's with multiple cores...

The biggest reason is for heavy multi-tasking.
Let's say you are converting a video file from .AVI to .VOB, so you can burn it to DVD, That's fairly cpu intensive.
With a single core, your system is pretty much useless until it is done. But with a multi-core, you can still do email, browse the web, play music, crunch a database, etc., without hardly noticing the difference. It still has to share memory, so there is some impact. Which is why everyone is going to gobs of memory, also.
0
 

Author Comment

by:resolver1
ID: 33566020
Thanks for your Answers guys.  I understand what you are saying but it doesnt make sence to me.  It seams that the hardware isnt being utilised to its full potential.  Alot of PC's are not being supplied with 2 cores, sometimes 4 cores now but a lot (or even most) of programs are not taking advantage of this fact.
0
 
LVL 32

Expert Comment

by:_
ID: 33572838
Thank you much.    : )

>> ...but a lot (or even most) of programs are not taking advantage of this fact.

This is currently true, but the software and OSs are coming around.
But some kind of "killer app" needs to show up to give them a good push (maybe something like using the computer as a 'distribution box' to run everything your house. think Media Center on a larger scale)
0
 

Author Comment

by:resolver1
ID: 33574849
Yeah agreed.  I'm still interested in how developers take advantage of multiple cpus. iguess thats a question for the developers rather than hardware and opoerating systems
0
 
LVL 1

Expert Comment

by:kenmerry
ID: 33583964
I have a son involved in writing programs and he says it does his head in to write a multi-thread program so they all leave it alone. The reason manufacturers are making multi-core chips is that they have hit a brick wall with speed and are now trying to improve performance by more cores and more cache on the CPU chip. This also makes it look good when you advertise how many cores you have etc. But as most people don't understand what makes a PC go faster they just buy what they are told. For instance manufactureres of NBs are still installing 4200 rpm and 5400 rpm drives to make the battery last longer rather than put a 7200 rpm drive in which gives a good third increase in speed. Or you go solid state drives for speed. An E8600 Intel CPU does very nicely in the office environment and will beat most rival in the i range. Check it out with the Intel site.
0
 

Author Comment

by:resolver1
ID: 33584402
interesting.  why that model of processor over other models?
0
 
LVL 1

Expert Comment

by:kenmerry
ID: 33584668
Because it's twin CPU Core, has a fair amount of cache and runs at 3.33 GHz, about as fast as I have seen at a reasonable price. I have 10 PCs installed with this in an office environment and linked to a standard 2003 server and they do the job very well. They are Dell Optiplex 780 PCs but if you build your own with a suitable Intel motherboard they go just as well.
0

Featured Post

How to improve team productivity

Quip adds documents, spreadsheets, and tasklists to your Slack experience
- Elevate ideas to Quip docs
- Share Quip docs in Slack
- Get notified of changes to your docs
- Available on iOS/Android/Desktop/Web
- Online/Offline

Join & Write a Comment

I have purchased two new systems and both are now Universal Extensible Firmware Interface (UEFI) based. UEFI is replacing BIOS for the desktop PC. It is a Linux based firmware with enough robustness it can communicate with a website without loading …
A quick step-by-step overview of installing and configuring Carbonite Server Backup.
It is a freely distributed piece of software for such tasks as photo retouching, image composition and image authoring. It works on many operating systems, in many languages.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

707 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

20 Experts available now in Live!

Get 1:1 Help Now