A
Amit Dedhia
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
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