473,883 Members | 1,591 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Application performance degrades on Multi processor machine

Hi

I am developing a Dot net application (involving image processing) on
a uni processor. It works well on my machine. I then take all my code
on a multi processor, build and run the application there. There is
performance degradation.

The usual performance of the application on MP machine is better than
that of uni processor machine. But the performance of MP degrades when
it comes to the multi-threaded part of the application. I am using a
third party application for image processing and communicating with
this application using TCP IP. I send some messages to that
application which results in generation of up to 6 threads (in that
application) and very high computation. After the computation is over,
it gives a callback to my application and I render the output (for
which I again need to send some more messages to the third party
application). The operations are happening in interactive mode which
means that my application keeps on sending messages and getting
callbacks from the third party application.

On uniprocessor, when I start the operation, the CPU usage goes above
95%. But typically 40% CPU is alloted to my application and 60% to the
third party application. As a result my application gets enough time
to render the new image and response looks real time.

On MP (its a dual processor), the third party application is alloted
entire CPU resource. As a result my application does not refresh the
output.

Can anybody guess what could be the reason?

The MP config is Intel Xeon 3.2 GHz - 3 GB RAM. The OS installed on
the MP is Windows XP 2002 Pro SP1. It is supposed to be used as a
workstation.

The config on my uniprocessor machine is : Intel Pentium 4 2.4 GHz, 1
GB RAM, Windows XP 2002 Pro SP1.

Does anyone have any clue? I have some hints though.

1> Is the OS on the MP machine Ok? Does Win XP Pro support MP?
Does Microsoft have any other version for MP machines?

2> Do we need special compiler settings to build applications
which are supposed to run on MP machines.

Best regards
Amit Dedhia
Jul 21 '05 #1
3 3157
are those threads initiated by you or the 3rd party app ?

i think the 3rd party threads are running at higher priority.You might want
to check on thread priorities.

Also there's Windows XP Pro + whatever SP but thats it you dont have
anything call XP 2002

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"Amit Dedhia" <am********@yah oo.com> wrote in message
news:89******** *************** ***@posting.goo gle.com...
Hi

I am developing a Dot net application (involving image processing) on
a uni processor. It works well on my machine. I then take all my code
on a multi processor, build and run the application there. There is
performance degradation.

The usual performance of the application on MP machine is better than
that of uni processor machine. But the performance of MP degrades when
it comes to the multi-threaded part of the application. I am using a
third party application for image processing and communicating with
this application using TCP IP. I send some messages to that
application which results in generation of up to 6 threads (in that
application) and very high computation. After the computation is over,
it gives a callback to my application and I render the output (for
which I again need to send some more messages to the third party
application). The operations are happening in interactive mode which
means that my application keeps on sending messages and getting
callbacks from the third party application.

On uniprocessor, when I start the operation, the CPU usage goes above
95%. But typically 40% CPU is alloted to my application and 60% to the
third party application. As a result my application gets enough time
to render the new image and response looks real time.

On MP (its a dual processor), the third party application is alloted
entire CPU resource. As a result my application does not refresh the
output.

Can anybody guess what could be the reason?

The MP config is Intel Xeon 3.2 GHz - 3 GB RAM. The OS installed on
the MP is Windows XP 2002 Pro SP1. It is supposed to be used as a
workstation.

The config on my uniprocessor machine is : Intel Pentium 4 2.4 GHz, 1
GB RAM, Windows XP 2002 Pro SP1.

Does anyone have any clue? I have some hints though.

1> Is the OS on the MP machine Ok? Does Win XP Pro support MP?
Does Microsoft have any other version for MP machines?

2> Do we need special compiler settings to build applications
which are supposed to run on MP machines.

Best regards
Amit Dedhia

Jul 21 '05 #2
Yes - the threads are running in the 3rd part App.. but why is thread
scheduling behaviour differnt on uniprocessor and dual processor? On
uniprocessor, the CPU resource allocation is 60-40 between the 3rd
party and my application. On MP, there are two CPUs. Ideally I would
expect that one CPU is allocated to my app and the other one to 3rd
party. Instead entire CPU time is eaten by the 3rd party app.

One more thing I observed is that the CPU usage of both processors on
MP is following a quite similar pattern. The peaks, lows and
transitions are observed at the same time in both the CPUs. This is
quite surprising to me.

Regarding 2002, it is the version no (as mention on the Control panel
--> System)

Amit

"Hermit Dave" <he************ @CAPS.AND.DOTS. hotmail.com> wrote in message news:<e8******* *******@TK2MSFT NGP09.phx.gbl>. ..
are those threads initiated by you or the 3rd party app ?

i think the 3rd party threads are running at higher priority.You might want
to check on thread priorities.

Also there's Windows XP Pro + whatever SP but thats it you dont have
anything call XP 2002

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"Amit Dedhia" <am********@yah oo.com> wrote in message
news:89******** *************** ***@posting.goo gle.com...
Hi

I am developing a Dot net application (involving image processing) on
a uni processor. It works well on my machine. I then take all my code
on a multi processor, build and run the application there. There is
performance degradation.

The usual performance of the application on MP machine is better than
that of uni processor machine. But the performance of MP degrades when
it comes to the multi-threaded part of the application. I am using a
third party application for image processing and communicating with
this application using TCP IP. I send some messages to that
application which results in generation of up to 6 threads (in that
application) and very high computation. After the computation is over,
it gives a callback to my application and I render the output (for
which I again need to send some more messages to the third party
application). The operations are happening in interactive mode which
means that my application keeps on sending messages and getting
callbacks from the third party application.

On uniprocessor, when I start the operation, the CPU usage goes above
95%. But typically 40% CPU is alloted to my application and 60% to the
third party application. As a result my application gets enough time
to render the new image and response looks real time.

On MP (its a dual processor), the third party application is alloted
entire CPU resource. As a result my application does not refresh the
output.

Can anybody guess what could be the reason?

The MP config is Intel Xeon 3.2 GHz - 3 GB RAM. The OS installed on
the MP is Windows XP 2002 Pro SP1. It is supposed to be used as a
workstation.

The config on my uniprocessor machine is : Intel Pentium 4 2.4 GHz, 1
GB RAM, Windows XP 2002 Pro SP1.

Does anyone have any clue? I have some hints though.

1> Is the OS on the MP machine Ok? Does Win XP Pro support MP?
Does Microsoft have any other version for MP machines?

2> Do we need special compiler settings to build applications
which are supposed to run on MP machines.

Best regards
Amit Dedhia

Jul 21 '05 #3
okay how about this
A Multi-threaded application creates multiple thread for pseudo simultaneous
operation by the threads thereby improving the performance.

On Uni-Processor time slicing and thread priorities determine how the
applications behave and execute.
On Multi Process systems however the different threads are executed by
different processors there by maximising the performance.

I presume you application doesnt not make use to too many threads rather
delegates work to 3rd party app that in turn creates the threads.
If that is true, your application's Main Thread will have a processor
affinity based on OS's allocation of timeslice.

You mentioned that you have allocated one of the two procs to 3rd party app.
How about allocating the other proc to your application.
If that doesnt help you might want to try increasing the thread priority but
only if its absolute must and then see if you application behaves any
better.

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"Amit Dedhia" <am********@yah oo.com> wrote in message
news:89******** *************** ***@posting.goo gle.com...
Yes - the threads are running in the 3rd part App.. but why is thread
scheduling behaviour differnt on uniprocessor and dual processor? On
uniprocessor, the CPU resource allocation is 60-40 between the 3rd
party and my application. On MP, there are two CPUs. Ideally I would
expect that one CPU is allocated to my app and the other one to 3rd
party. Instead entire CPU time is eaten by the 3rd party app.

One more thing I observed is that the CPU usage of both processors on
MP is following a quite similar pattern. The peaks, lows and
transitions are observed at the same time in both the CPUs. This is
quite surprising to me.

Regarding 2002, it is the version no (as mention on the Control panel
--> System)

Amit

"Hermit Dave" <he************ @CAPS.AND.DOTS. hotmail.com> wrote in message

news:<e8******* *******@TK2MSFT NGP09.phx.gbl>. ..
are those threads initiated by you or the 3rd party app ?

i think the 3rd party threads are running at higher priority.You might want to check on thread priorities.

Also there's Windows XP Pro + whatever SP but thats it you dont have
anything call XP 2002

--

Regards,

Hermit Dave
(http://hdave.blogspot.com)
"Amit Dedhia" <am********@yah oo.com> wrote in message
news:89******** *************** ***@posting.goo gle.com...
Hi

I am developing a Dot net application (involving image processing) on
a uni processor. It works well on my machine. I then take all my code
on a multi processor, build and run the application there. There is
performance degradation.

The usual performance of the application on MP machine is better than
that of uni processor machine. But the performance of MP degrades when
it comes to the multi-threaded part of the application. I am using a
third party application for image processing and communicating with
this application using TCP IP. I send some messages to that
application which results in generation of up to 6 threads (in that
application) and very high computation. After the computation is over,
it gives a callback to my application and I render the output (for
which I again need to send some more messages to the third party
application). The operations are happening in interactive mode which
means that my application keeps on sending messages and getting
callbacks from the third party application.

On uniprocessor, when I start the operation, the CPU usage goes above
95%. But typically 40% CPU is alloted to my application and 60% to the
third party application. As a result my application gets enough time
to render the new image and response looks real time.

On MP (its a dual processor), the third party application is alloted
entire CPU resource. As a result my application does not refresh the
output.

Can anybody guess what could be the reason?

The MP config is Intel Xeon 3.2 GHz - 3 GB RAM. The OS installed on
the MP is Windows XP 2002 Pro SP1. It is supposed to be used as a
workstation.

The config on my uniprocessor machine is : Intel Pentium 4 2.4 GHz, 1
GB RAM, Windows XP 2002 Pro SP1.

Does anyone have any clue? I have some hints though.

1> Is the OS on the MP machine Ok? Does Win XP Pro support MP?
Does Microsoft have any other version for MP machines?

2> Do we need special compiler settings to build applications
which are supposed to run on MP machines.

Best regards
Amit Dedhia

Jul 21 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

33
15906
by: aa | last post by:
I am migrating to PHP from ASP where there are the Application Scope variables which are accessible from any page on a website and which are used, in particular, for hit counters. Is there a similar mechanism in PHP?
6
7460
by: Thomas Womack | last post by:
If I have a dual-processor hyperthreaded machine (so with four CPU contexts), will a python program distribute threads over all four logical processors? I ask because I'm fairly sure that this *does* happen using the threading extensions in MFC, and fairly sure that it *doesn't* when using Java, so I don't see that the result is obvious for python. Tom
133
8631
by: Gaurav | last post by:
http://www.sys-con.com/story/print.cfm?storyid=45250 Any comments? Thanks Gaurav
9
8001
by: nan.li.g | last post by:
Hello, all, I have an interesting problem about stl map and pthread on Linux and g++. The source code is as follows. //mt_map_test.cpp #include <string> #include <map> #include <unistd.h> #include <sys/types.h>
8
2692
by: nickdu | last post by:
I'm trying to isolate "applications" into their own application domain within a single process. I've quoted applications because it's a logical representation of an application. Basically it consists of a bunch of components supplied by some application group. I got this to work, somewhat. The problem is that the application performs roughly (and this has not been measured, but a guess based on the rendering of the application GUI) 10x...
3
390
by: Amit Dedhia | last post by:
Hi I am developing a Dot net application (involving image processing) on a uni processor. It works well on my machine. I then take all my code on a multi processor, build and run the application there. There is performance degradation. The usual performance of the application on MP machine is better than that of uni processor machine. But the performance of MP degrades when it comes to the multi-threaded part of the application. I am...
22
3255
by: roadrunner | last post by:
Hi, Our website has recently been experiencing some problems under load. We have pinpointed a particular function which slows dramatically when we have these problems. Normally it should execute in under a second but it rises to about one minute under duress. The code is fairly straight forward with no calls to databases or any other servers. The only dubious thing I can see is that it retrieves several arrays from the Application...
2
2787
by: jphelan | last post by:
Ever since I successfully applied some techniques for increasing the speed of my 17 meg. Application; it has only made me hunger for more. First, let me list what I have done so far: 1. Split the application and database into front and back-ends, 2. Increased the load-time of my application by "pre-loading my heaviest forms when the database is initially opened, 3. When forms do open, under, "Filter Lookup" I use, "Never", 4. I set...
10
3069
by: Jamunt | last post by:
Hi, I want to create an application in which around 1000 users will be served at one time. All of the users will be sending around 1 mb of data. I will be parsing that data and would insert some of the data into the database. Is web service right choice for this kind of web applications. What kind of performance problems i might encounter. Will ASP.net is the
0
9943
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
9793
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
11151
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10750
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
0
9577
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing, and deployment—without human intervention. Imagine an AI that can take a project description, break it down, write the code, debug it, and then launch it, all on its own.... Now, this would greatly impact the work of software developers. The idea...
1
7974
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
7134
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5996
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
2
4225
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.