HP ARIES technology enables a binary compatibility migration solution to facilitate migration of HP 9000 HP-UX applications to HP-UX 11i for HP Integrity servers with the goals of correctness, reliability, performance delivery and
quickest time to solution.
Key features of HP ARIES are:
Dynamic and Transparent
Absolutely no user intervention required to invoke ARIES
No re-compilation for HP 9000 applications required
Complete, correct and reliable
Support for all user mode HP 9000 applications, both 32-bit and 64-bit
Simplicity of ARIES design has yielded high reliability
Emulation of all (non-privileged) PA-RISC instructions
Same debugging tools can be used as on HP 9000 servers
Exact HP 9000 HP-UX - like interface
Bundled with the HP-UX OE, kernel support for transparency
Run applications on HP Integrity servers in same way as on HP 9000 servers
No CHROOT Jail - emulated applications have access to full file system without any special setup.
Good performance for wide range of HP 9000 applications
Quick time to market or deployment
ARIES can buy you time to pursue native port to HP-UX 11i on HP Integrity servers
Most applications work out of the box
OS and language runtime dependencies handled automatically
Ideal for HP 9000 applications
Using legacy libraries that may not be ported to Integrity HP-UX servers e.g. libcma.
Using legacy versions that may not be ported to Integrity HP-UX servers
Lost source code
ISV no longer supports or is out of business
Why HP ARIES and when
In general, HP ARIES is an excellent alternative for user space application migration from old HP 9000 servers where solution stack comprises of application versions that are not available natively on HP-UX 11i on HP Integrity servers.
HP ARIES is a proven solution that has successfully helped in a number of high profile migration projects. Using HP ARIES several customers have benefited from consolidation of old legacy PA-RISC applications on more efficient HP
Integrity servers and realized the potential of converged infrastructure.
When ARIES is a recommended solution
Porting the application is an enormous effort and time to solution is critical
No access to source code
The application is reasonably well-behaved, i.e. it does not use undocumented or unsupported HP-UX features
Maximum performance is not a concern
The third party dependencies have not yet been migrated to HP-UX for HP Integrity servers
In-house developed customer applications
When ARIES is the ONLY solution
Legacy applications where application sources are not available
Application depends on legacy libraries which may not be ported to HP-UX 11i for HP Integrity servers. For example, libcma (CMA threads) on HP 9000 servers
Application uses legacy versions of software which may not be ported to HP-UX 11i for HP Integrity servers by the respective ISVs
Third party application vendors do not have plans to migrate their solutions to HP-UX 11i for HP Integrity servers
Porting the application cannot be completed with satisfactory quality with in a reasonable time
When ARIES is not the recommended solution
You want to harness full power of HP Integrity server by native optimizations and HP-UX 11i APIs
You have concerns around emulated application behavior and performance
Independent Software Vendor (ISV) refuses to offer application support under ARIES
Known performance concerns:
Floating point operations intensive applications
Short running Java based applications
Application is constrained on process resident memory footprint size
Application is constrained on process startup time
Applications like shells, parsers, interpreters which do not have good locality of execution
The HP ARIES migration solution stack comprises of following products, features
HP ARIES dynamic binary translator
Transparent execution of HP 9000 HP-UX applications on HP-UX 11i for HP Integrity servers. HP Integrity HP-UX 11i operating system support for PA-RISC executable invocation
Automatic launching of ARIES upon PA-RISC executable invocation
Support for all flavors of HP 9000 HP-UX executables e.g. EXEC_MAGIC,
SHARE_MAGIC, SHMEM_MAGIC, q3p, q4p and ELF64.
HP 9000 HP-UX system shared libraries support on HP-UX 11i for HP Integrity servers>
Provides required runtime for HP 9000 applications under ARIES. All system shared libraries required by HP 9000 applications are delivered on HP-UX 11i for HP Integrity servers.
HP 9000 HP-UX GDB on HP-UX 11i for HP Integrity servers
HP Integrity WDB/GDB package includes HP 9000 HP-UX GDB
On HP-UX 11i for HP Integrity servers, HP 9000 HP-UX GDB can be used to debug HP 9000 applications, core file analysis, attaching to emulated processes and memory leak detection.
High level technology overview
HP ARIES documentation
Following resources attempt to provide a high level overview of ARIES, supportability features, and limitations. The information on this page includes:
The ARIES fast interpreter emulates a complete set of non-privileged PA-RISC instructions with no user intervention. During interpretation, it monitors the applications execution pattern and translates only the frequently executed code into native Itanium® code at runtime. ARIES implements two phase dynamic translation, a technique in which translated code in first phase collects runtime profile information which is used during second phase translation to further optimize the translated code. ARIES stores the dynamically translated code in memory buffer called code cache. Further references to translated basic blocks execute directly in the code cache and do not require additional interpretation or translation. The targets of translated code blocks are backpatched to ensure execution takes place in code cache most of the time. At the end of the emulation, ARIES discards all the translated code without modifying the original application. Therefore, ARIES dynamic translation provides fast emulation and preserves the integrity of the emulated HP 9000 application. The ARIES emulation engine also implements Environment Emulation which emulates an HP 9000 application's system calls, signal delivery, exception management, threads management, emulation of gdb for debugging, and core file creation for the application.
ARIES supports creation of HP 9000 HP-UX compatible core files on Integrity servers in same cases as when the application would have generated core when running on an HP 9000 server. The size of the core file is limited by ulimit() and/or setrlimit(RLIMIT_CORE, ...) values.
ARIES writes the core file for HP 9000 application in core.<application_name>.
The file format of the core dump is same as that produced on HP 9000 servers i.e. SOM for 32-bit executables and ELF64 for 64-bit executables.
The core file produced by ARIES may be used for failure analysis on a HP 9000 server or on an Integrity HP-UX server using the HP 9000 GDB (running under ARIES).
To debug the ARIES generated HP 9000 application core file on a different server, refer to GDB help on packcore command.
ARIES follows all standard HP–UX conventions for generation of HP 9000 application core file.
After ARIES has successfully written a core file for the HP 9000 application, it will print the following message on stderr:
[HP ARIES32/64]: Core file for 32/64-bit PA-RISC application [HP ARIES32/64]: %s saved to path/core.PA_application_name
If the resulting core file is named as core or core.pid, it will be an ARIES core file, not useful for application debugging.
The ARIES-generated HP 9000 HP-UX compatible core file is recognized by the file command on HP 9000 and Integrity HP-UX servers.
gdb a.out core.aout
HP-UX 11i v3 ARIES NOTES:
As per the default core file format on HP-UX 11i v3, ARIES generates HP 9000 application core file in new format (v2) using large utsname structure. See uname(2) for more details on the large utsname structure. You need to use latest version of tools like GDB to work with new format (v2) core file.
Use the ARIES option -core_format to generate HP 9000 application core files in the old format (v1).
If the core file pattern and settings have been modified by the coreadm(2) system call or by coreadm(1M) command, then ARIES will follow the same naming pattern instead of writing the application core file to core.<application_name>. Refer to coreadm(2) and coreadm(1M) for details.
Only one level of parent/child processes can be traced i.e. if child process calls fork() – the child’s child process cannot be traced under current implementation of emulated process tracing under ARIES.
ARIES supports debugging of HP 9000 HP-UX applications on HP-UX 11i Integrity servers using the HP 9000 HP-UX GDB.
Both the GDB and the application run under ARIES.
No change in GDB user interface (including WDB GUI).
Negligible loss of performance in interactive mode.
The HP 9000 GDB is included by default as part of the Integrity HP-UX WDB/GDB package.
All GDB commands work just like they would on an HP 9000 server.
Use the following steps to debug HP 9000 HP-UX applications on HP-UX 11i Integrity servers using GDB:
Set the environment variable PA_DEBUG to 1.
Set the environment variable SHELL to point to an HP 9000 shell, copied from an HP 9000 HP-UX system from /usr/bin path.
Add /usr/ccs/bin to the PATH environment variable.
Invoke GDB as:
After the debugging is finished, perform the following steps:
Unset the environment variable PA_DEBUG.
Restore the original value of the SHELL environment variable.
The rest of the debugging operations are the same as that on the HP 9000 HP-UX platform.
NOTE: Make sure that the user has write permission on /tmp directory and that there is enough space to create a temporary file of one page size as obtained by sysconf(_SC_PAGE_SIZE) system call.
Limitations of GDB Support under ARIES:
No support for debuggers other than HP 9000 HP-UX GDB for debugging HP 9000 applications under ARIES on HP-UX 11i Integrity servers.
No support for old GDB versions (of HP-UX 10.20 and earlier). However, debugging of HP-UX 10.20 applications using a HP-UX 11.0 (and newer) HP 9000 GDB is supported.
HP 9000 GDB behaves differently for child processes created using fork() and vfork() system calls. ARIES emulates fork() and vfork() system calls identically. The exact behavior shown by HP 9000 GDB under ARIES may differ from that on a HP 9000 HP-UX server.
If the debugged process is blocking in a system call, any attempt to get to the GDB command prompt by pressing ctrl-C does not work. The process needs to be killed from a different shell.
ARIES does not provide true emulation of MxN threads, and thus does not support debugging of HP 9000 applications that are linked with pthreads library and create threads in MxN model.
NOTE: The HP 9000 applications linked with MxN pthreads library are emulated under ARIES as traditional 1x1 threads, and thus can only be debugged under ARIES as any other non-MxN multi-threaded application. Refer to the EMULATION OF MxN THREADS UNDER ARIES section in aries(5) man page for more information.
ARIES supports debugging of 32-bit and 64-bit HP 9000 HP-UX applications using 32-bit HP 9000 HP-UX GDB. 64-bit HP 9000 HP-UX gdb is not supported under ARIES.
Attaching GDB to an already running emulated process
You can attach GDB to an already running HP 9000 application process on HP-UX 11i for HP Integrity servers to debug the application. After a successful attach, all of the GDB commands work in exactly the same manner as they do on an HP 9000 HP-UX server.
Use the steps below to attach GDB to HP 9000 application process under ARIES on HP-UX 11i Integrity servers:
Perform the same preparatory steps as required for debugging an HP 9000 HP-UX application using GDB under ARIES on HP-UX 11i Integrity server.
Invoke GDB as below:
gdb PA-RISC_executable PA-RISC_process_ID
After the debugging, the process can continue or abort, as specified by the user. This feature is especially useful when triaging problems in an environment with a large number of processes and a mix of Integrity native and HP 9000 processes.
All user mode HP 9000 applications work fine under ARIES with following limitations/ exceptions:
Currently ARIES does not support HP 9000 applications that call Integrity native shared libraries. ARIES is meant only for pure HP 9000 HP-UX applications, that are either statically or dynamically linked with HP 9000 libraries only. *
ARIES supports HP 9000 HP-UX applications that run correctly on the same HP-UX 11i release version on HP 9000 servers, whether the application was built on that version of HP-UX or a prior version and supported by virtue of the HP-UX binary compatibility statement.
ARIES does not support privileged PA-RISC instructions. Hence, device drivers and loadable kernel modules (DLKMs) are not supported. Such applications are the ones that use one or more of the following system calls:
Applications that are sensitive to timing of code execution paths may experience correctness issues under ARIES emulation mode. Such applications are theoretically non-synchronized applications, and hence, need to be corrected with proper synchronization techniques using mutex locks and/or semaphores.
ARIES does not support applications that use ptrace() or profil() system calls. However, ARIES supports debugging of emulated applications using HP 9000 GDB. Refer to HP 9000 HP-UX GDB DEBUGGING SUPPORT for more information in latest aries(5) man page.
ARIES consumes a small amount of memory from the emulated application's virtual memory address space. Therefore ARIES does not support applications that are nearly or completely maxed out on their virtual address space usage in the data segment.
ARIES does not support applications that rely on differences between fork() and vfork(). However, most applications that use the vfork() system call do use it with a purpose which is well known to the programmer. It is an extremely rare condition that a standard application would have any such reliance on the differences between fork() and vfork() system calls. See vfork(2) and fork(2) for details.
ARIES returns information pertinent to a PA-RISC 2.0 processor, for emulation of sysconf() and uname() system calls. For instance, a call made to sysconf(2), with _SC_CPU_VERSION, will return CPU_PA_RISC2_0. If the application requires that it be able to determine that it is running on an Itanium(R)-based server, then it should use system(3S) call and the Itanium(R)-based native command getconf(1) to get the required fields. Alternatively, applications may check for the unique files/directories, to know the underlying server architecture. See system(3S), getconf(1), and sysconf(2) for more information.
* Using MITR it will be possible for Integrity native binaries to call (and be called by) HP 9000 shared libraries.
HP ARIES is an excellent HP 9000 migration alternative to ISV application porting:
Strong and growing momentum
ARIES is a proven solution that has successfully helped in a number of high-profile migrations.
Used worldwide in every region and industry vertical
What customers and ISVs are saying:
British Telecom to IDEAS International Inc. for a white paper (page 8/ para 4)
"The Aries translator, which dynamically translates HP-UX on PA-RISC to HP-UX on Integrity binaries in real time, was used for many of the custom programs BT had written over the years. Initially, internal BT customers were reluctant to have their applications run in emulation until they discovered how much more performance they would be receiving on Integrity."
Adobe Systems Inc.
"The ARIES technology made it possible for us to support the HP-UX Integrity platform for SAP customers in a cost effective and timely manner."
Systems administrator at a Fortune 100 Pharmaceutical company
"I took the Oracle database and the application running on HP-UX 11i v1 and moved it to an HP Integrity server. It just ran."
BSP Inc. Japan
"Quite impressed. The A-AUTO v4 application worked like a charm under ARIES. No problems."
Major diversified research company in Asia-Pacific-Japan region
"We met some troubles with ARIES. But we were able to provide applications to our customers under ARIES as promised. It's owing to HP's great support."
Major Telecom company in Asia-Pacific-Japan region
"I've never heard about ARIES related trouble after the cut over. Performance better than expected."
In this section, you can find case studies for customer migrations to HP-UX 11i for HP Integrity servers involving applications deployment in ARIES binary compatibility mode.
Lyon Highways Monitoring Center (CORALY) France
Applications - CORALY (Coordination et Régulation du traffic del’Agglomération Lyonnaise)
Migration of Lyon highways monitoring center from Tru64/Alpha to HP-UX 11i on HP Integrity servers.
CORALY is a traffic-management system run by operators of roads in the Lyon region, which bear the heaviest traffic in France. An operator, Direction Départementale del’Équipement du Rhône, worked with systems integrator AMEC SPIE to develop this collaborative, real-time infrastructure, which dissolves bottlenecks in minutes and improves road safety. AMEC SPIE recently moved CORALY from HP Tru64 UNIX®-based HP AlphaServer systems to an HP-UX 11i v2 environment comprising HP Integrity servers, boosting performance by 40 percent and providing the capacity for continued innovation and expansion.
ARIES was used to run the application layer that remotely interfaces with the new CORALY environment.
HP ARIES dynamic binary translator and necessary runtime libraries as required by emulated PA-RISC applications are part of Base OE for HP-UX 11i for HP Integrity servers. HP ARIES core product and man page are bundled separately.
Enhancements, fixes and product updates to ARIES are released through periodic cummulative patches. ARIES product patches can be searched and accessed from HP Support Center.
HP ARIES is provided free of charge with the HP-UX 11i operating environments for HP Integrity servers. It is planned to continue to be offered for HP-UX 11i v3 and subsequent HP-UX release for which we’re evaluating product content. HP-UX 11i v3 operating system will be supported on Intel Itanium “Poulson” and “Kittson” based HP Integrity servers.
Similarly, ARIES is supported as part of and for the same lifecycle as the HP-UX 11i operating environments in which it is included. Thus, ARIES provided with HP-UX 11i v3 operating system will be supported through the support lifecycle for HP-UX 11i v3 operating system which currently extends to December 31, 2022. Your HP sales representative can provide additional details about the HP-UX operating system and HP Integrity server roadmaps if needed. Please note that all plans are subject to change.
HP ARIES dynamic translator is the underlying execution layer for HP 9000 Containers solution.
Make sure to go through the following resources for ARIES related issues:
Contact the HP support organization at their web site, the HP Support Center. Contact the site nearest you, either "Americas/Asia-Pacific" or "Europe". The ITRC gives you access to:
A technical knowledge base with self-solve tools. The database is available to customers who have support contracts.
Patches for software.
Peer support forums.
For support questions on the phone
For HP-UX users, response center support for HP ARIES is included in the support contract for HP-UX operating system. If you have a support contract, call the HP Response Center at 800-633-3600 (North America) or contact your Country Response Center. You will need the software system identifier (system handle) associated with your support contract.
To report defects
If you have an HP support contract and you have a problem for which a defect needs to be reported, provide a test case demonstrating the problem. The Response Center Engineer will then file a defect report.
PA-RISC to IA-64: Transparent Execution, no Recompilation (PDF, 144 KB) IEEE Computer, March 2000, (Vol 33, no. 3) pp 47-52. Cindy Zheng, Carol Thompson. Hewlett-Packard Company