473,379 Members | 1,216 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,379 software developers and data experts.

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 3083
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********@yahoo.com> wrote in message
news:89**************************@posting.google.c om...
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**************@TK2MSFTNGP09.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********@yahoo.com> wrote in message
news:89**************************@posting.google.c om...
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********@yahoo.com> wrote in message
news:89**************************@posting.google.c om...
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**************@TK2MSFTNGP09.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********@yahoo.com> wrote in message
news:89**************************@posting.google.c om...
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
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...
6
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...
133
by: Gaurav | last post by:
http://www.sys-con.com/story/print.cfm?storyid=45250 Any comments? Thanks Gaurav
9
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>...
8
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...
3
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...
22
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...
2
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...
10
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...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
by: ryjfgjl | last post by:
In our work, we often need to import Excel data into databases (such as MySQL, SQL Server, Oracle) for data analysis and processing. Usually, we use database tools like Navicat or the Excel import...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?

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.