Operating System - HP-UX
1748332 Members
3217 Online
108762 Solutions
New Discussion юеВ

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

 
SOLVED
Go to solution
ShivS
Frequent Advisor

Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Hi,

I have a C++ application written and compiled on PA-RISC (HP-UX B.11.11 U 9000/800) using +DA2.0W i.e. LP64. I am running this code on an ITANIUM machine (HP-UX B.11.23 U ia64 0409362437) under emulation.

This code reads xml requests on port 3000 using socket 0 and writes the processed response back to socket 1. I am shooting same xml request to both these machines at the same start and end time (for 10 minutes duration) using a small requesting sending client applicatioin from a window machine. However the number of requests read off the socket on the PA-RISC machine is much higher ( two or three times higher) than the requests that are read off the socket on the IA machine.

Is there any system parameter I need to set or check on the IA machine to improve the numbers of requests reading off the socket on this machine?

Please advice. Thanks in advance.

Regards,
Shiv.

10 REPLIES 10
Steven E. Protter
Exalted Contributor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Shalom Shiv,

The emulation is called ARIES.

It runs unmodified binaries compiled under HP-UX PA-RISC on IA-64/Itanium systems.

ARIES runs 70% slower than native IA-64 code.

Much better option is to recompile your application on an Itanium system, thereby creating native IA-64 bit code. Any changes to the application if you want to go with emulation will have to be compiled on a PA-RISC system and then tested on IA-64.

Long term, the pain of recompiling your application to native IA-64 code is a better option. HP has code porting assistance that they provide to encourage these efforts. Talk to your friendly local HP rep.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
Dennis Handly
Acclaimed Contributor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

>This code reads xml requests on port 3000 using socket 0 and writes the processed response back to socket 1.

Is this CPU intensive? Aries will have performance issues in this case.

See the following about Aries performance numbers:
http://www.hp.com/go/aries

>Is there any system parameter I need to set

If this is I/O intensive, perhaps you have a point here.
ShivS
Frequent Advisor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Hi Dennis,

The xml requests are very small in size ranging from 1 KB to 5 KB only. These are fired to the port 3000 on IA machine and are read off the socket 0.

If the instance of the server is busy processing a request and if during this time a new request comes in on port 3000, then a second instance of the server starts up and starts reading processing the new request.

I dont understand what does it mean when you say "CPU intensive".

Regards,
Shiv.

Steven E. Protter
Exalted Contributor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

If it uses a lot of CPU cycles or pegs the CPU use at 100% for long periods of time, aries will have a negative impact on performance. Perhaps more than it did on our applications which were NOT CPU intensive.

Aries is a bad choice for people that should really port their code.

SEP
Steven E Protter
Owner of ISN Corporation
http://isnamerica.com
http://hpuxconsulting.com
Sponsor: http://hpux.ws
Twitter: http://twitter.com/hpuxlinux
Founder http://newdatacloud.com
James R. Ferguson
Acclaimed Contributor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Hi SHiv:

> I dont understand what does it mean when you say "CPU intensive".

Well, if you are polling your socket to see if there is data, then this can consume CPU excessively. A better approach is to 'select()'.

Regards!

...JRF...
ShivS
Frequent Advisor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Ok. The PA-RISC machine is 8 CPU (roughly 700 MHz)and the IA machine is 2 CPU (roughly 1.4 GHz) On the PA-RISC box, the program that reads off the socket hovers around 15-20% CPU and the programs that process the xml request hovers around 85 to 95% CPU. On the IA box, the figures are < 15% and 45 to 55% CPU respectively.

This means that the program that processes the XML request on PA-RISC box is a CPU intensive while the same program running under emulation on IA box is not.

So then where is the problem?

Regards,
Shiv.

James R. Ferguson
Acclaimed Contributor
Solution

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Hi (again) Shiv:

You can use 100% of any CPU with something like this:

# while true;do :;done

For that matter, to load up your 8 CPU server, do:

# perl -e 'fork;fork;fork;do {} while 1'

These are fine examples of CPU intensive processes.

Regards!

...JRF...
ShivS
Frequent Advisor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

Hi James,

I used your CPU intensive scripts on the PA-RISC machine and then fired xml requests to my application. I found that the number of requests processed this time reduced drastically. The reason for this was that all the 8 CPU's on this machine were getting maxed out!

The same phenomenon was happening on the IA machine because it has only 2 CPU's.

Thanks and regards,
Shiv.

ShivS
Frequent Advisor

Re: Running HP-UX PA-RISC (LP64) code on IA 64 under emulation.

The low number of CPU's on the IA machine were causing all the CPU's to be maxed out!

There was a misunderstanding on my part. I was not looking at the avg CPU%. I was looking at the individual CPU%. Later after looking closely, I noticed that I should be adding all the CPU% for a given CPU since the given CPU was proceesing more than one task at the same time. After doing this addition, I found that each CPU was reaching close to 100% (i.e. getting maxed out).

Thanks everybody for the assistance. I will be assigning points.

Regards,
Shiv.