Why does app use only 25% of dual cpu

Hi

I am new to multiple cpu's and win3k.

I have an application which performs a batch task. On a 64bit 2400 athlon running 32bit Win3k it uses 100% and performs the task quickly.

On a dual xeon 2.4ghz it only uses 25% cpu usage and takes 4 times as long as the single machine to do the job.

Can somebody please explain why an application that uses 100% cpu on a single cpu machine, only uses 25% of a dual xeon machine?

Thanks
zattzAsked:
Who is Participating?
 
Lee W, MVPConnect With a Mentor Technology and Business Process AdvisorCommented:
A dual Xeon presents 4 processors to the OS - each physical CPU is hyperthreaded (HT) and each HT CPU is seen as two.  So 2 physical CPUs times 2 for HT gives you 4 processors (according to Windows).

An Athlon64 doesn't offer HyperThreading (HT is an Intel only feature - AMD does offer HyperTransport, but that's not the same thing).  So unless you have two cores in the athlon or a second CPU, the athlon is only seen as 1 CPU.

So you're thinking, "fine, by why still only 25%?"

Because the application only has ONE Thread.  In order to take advantage of multiple processors, you need the application to utilize MORE than one thread.  Think of it like having a kitchen and each person in the house is capable of washing dishes, but there's only one sink.  You can't have more than one person washing the dishes at the same time (drying doesn't count).  So even if you brought friends over, you couldn't wash the dishes any faster unless you had more sinks (threads).
0
 
zattzAuthor Commented:
Leew,

That's what I was thinking, hmm

I forgot to mention the application queries a MS Sql server.

If the application does a single query, would the query run as one thread on MS SQL and use one cpu, or would it be spread over multiple?

Thanks
0
 
Lee W, MVPTechnology and Business Process AdvisorCommented:
I'm not sure - SQL is multithreaded, but I'm not sure how it's multithreaded.  A single, SIMPLE query almost certainly executes in one thread.  A query that uses subqueries and/or joins may use more than one thread.  But that's just a guess.
0
Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

 
zattzAuthor Commented:
Makes sense to me...

Although if I go to task mngr, the cpu graphs show equal activity across all cpu's... and yes it is a very single query, no joins... Maybe windows is lying?

0
 
Lee W, MVPTechnology and Business Process AdvisorCommented:
It's possible task manager isn't being entirely accurate... when looking at the processes tabs I've seen that claim lots of idle time then look at the graph and it's pegged...
0
 
zattzAuthor Commented:
Okay. Thanks a lot for your help:)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.