Você está na página 1de 53

Optimizing HP-UX for CATIA

A White Paper On Getting The Best Performance


From Distributed CATIA On Your

HEWLETT
PACKARD

HP 9000 Workstation

Revision 2.1

Prepared By:

Alfred P. TOUSSAINT, Jr.


Technical Consulting Lab
Hewlett-Packard Company
300 Apollo Drive
Chelmsford, MA 01824 U.S.A.
(508) 436-4541 FAX (508) 436-5142
e-mail: Mr_T@APOLLO.HP.COM
Optimizing HP-UX for CATIA
A White Paper On Getting The Best Performance
From Distributed CATIA On Your HP 9000 Workstation

HP Publication No. 0000-00000


Printed in USA July 1995
Revision 2.1

Legal Notices

The information in this document is subject to change without notice. Hewlett- Packard makes no
warranty of any kind with regard to this material including but not limited to the implied warranties of
merchantability and fitness for a particular purpose. Hewlett-Packard shall not be liable for errors
contained herein or for incidental or consequential damages in connection with the furnishing,
performance or use of this
material.

Revision History:
Revision 1.0 7 March 1995
Revision 2.0 17 July 1995
Revision 2.1 19 July 1995

Copyright/Trademarks

All trademarks and registered trademarks are the property of their respective holders.

(c) Copyright 1995 Hewlett-Packard Co. All Rights Reserved.


THE HEWLETT PACKARD\CATIA
ACCOUNT TEAM

Robert Abehassera Global Partner Manager


Computer Systems Organization

Robert joined Hewlett-Packard in 1979 as a system engineer. After


seven years in the Customer Software Support organization, he held
several management positions in the marketing of the Computer Systems
organization. He was responsible for the territory covering all of northern
France for commercial computer systems. After two years, he was given
the international responsibility for building strategic alliances and
relationships for HP's European Computer Systems Organization. One of
his most recent accomplishments was to establish the agreements with
Dassault Systemes and subsequently IBM-ETS on a global basis.
Two years ago he was promoted to the position of Hewlett-Packard Global
CATIA/CADAM Manager.

Robert is always in contact with each member of the HP CATIA/CADAM


network. He can be reached anytime at 011-49-7031-14-1001 box 7511.

Guy Bertrand Senior Consultant - Systems Architecture

Guy holds a degree in Management from the College Militaire Royale de


St-Jean and a degree in Computer Sciences from the Institut d'Informatique
du Quebec. Guy has held a variety of responsibilities in his fourteen
years of experience in the computer industry.

Guy is presently a member of HP's Strategic Accounts team. He is


involved in projects that ensure transparent integration of CATIA on
Hewlett-Packard workstations in existing heterogeneous environments.

This includes network licensing, Native Language Support and


code pages, IUA/GII code migrations and system administration
issues. Guy is a member of COE's Software Quality Assurance (SQA)
committee and he is actively involved in defining quality standards
in a multi-platform environment. For the past year Guy has worked

i
at Pratt & Whitney Canada (PWC) to bring up CATIA on their production
Hewlett-Packard workstations. Guy is working closely with PWC,
Dassault Systemes and IBM Engineering Technology Solutions (ETS)
to resolve issues being identified in the initial Customer Validation
Process (CVP) for the current CATIA releases. Guy helped PWC create
a seamless heterogeneous multi-platform CATIA environment.

Guy is located in Montreal and can be reached at (514)428-2014.

Phil Brayman Mechanical Design Product Manager

Phil has a Bachelors and Masters degree in Aerospace Engineering


from the University of Michigan. Phil Has been involved in the
CAD/CAM arena for many years. He held the position of applications
engineer at McDonald Douglas for several CAD/CAM systems.
Subsequently, Phil went to work for Boeing Airplane Company as
a Structural Analyst.

Phil's present responsibilities at Hewlett-Packard include supporting


the workstation group in the resolution of CATIA issues and concerns.

Phil is located in Fort Collins, Colorado and can be reached at


(303)229-4885.

Dennis Kelly U.S. Strategic Account Manager CATIA/CADAM Solutions.

Dennis, an Industrial Engineering graduate of the University of


Lowell has over 12 years experience in the CAD/CAM arena.

Dennis has Hewlett-Packard responsibility for CATIA/CADAM


customer satisfaction solutions.

Dennisis located in Burlington, Massachusetts and can be reached at


(617) 221-5092.

Alfred P. Touissant Jr.


Senior Consultant - Technical Consulting Laboratory

Alfred did his undergraduate work in electrical engineering with a


concentration in computer sciences and economics at the Massachusetts
Institute of Technology.

ii
Alfred has been with the Hewlett-Packard Company for seven years as
a technical consultant to a number of HP's independent software vendors.
Prior to HP, Alfred was a development software engineer for
Computervision Corporation and worked on the user interface of what
is currently known as Parametric CADDS5.

During the last two years, Alfred has played the technical lead role for
the distributed CATIA port to the HP workstation line. In that capacity,
he worked with Dassault Systemes development engineers in Suresnes and
various development and support organizations at HP to insure full
functionality, well tuned and robust port of CATIA to the HP platform.
Additionally, Alfred worked closely with a number of the pilot sites world
wide in the implementation of CATIA/HP in their environments. Alfred
has delivered technical presentations on the subject of CATIA on HP to
I BM/ETS, CATIA distributors and CATIA customers in the United
States and Asia.

Alfred is located at Hewlett-Packard Co, 300 Apollo Dr,


Chelmsford, MA 01824.

Rod Wilson Solutions Marketing Manager


Mechanical Design Automation
Workstation Systems Division

Rod received a Bachelor of Science degree from Virginia Tech and a


Master of Science from Colorado State University. Since joining
Hewlett-Packard in 1985, Rod has held a variety of positions in
workstation business development and product marketing. Most
recently, he has been responsible for HP's strategic OEM program.
Prior to that responsibility, Rod worked for 2 years in Boeblingen,
Germany as the European Product Marketing Manager for workstations.

Rod's present responsibilities are focused on growing Hewlett-Packard's


leadership position in the Mechanical Design Automation market. Rod's
team is tasked with the responsibility of ensuring the success of all of the
major mechanical software packages on Hewlett-Packard's family of
computer systems. With the addition of CATIA to its portfolio, HP
is the only company to offer all of the major mechanical software
packages on its computer systems. Rod and his team are focused on
ensuring the premier engineering environment for CATIA users.

Rod is located in Fort Collins, Colorado and can be reached at


(303)229-4360.

iii
1 INTRODUCTION 1
2 REVISION 2.X SUMMARY 1
3 COMPUTER-GRAPHICS AIDED THREE-DIMENSIONAL 2
INTERACTIVE APPLICATION
3.1 Background ............................................... 2
3.2 Distributed Catia ........................................... 2
3.3 Host Catia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
3.4 Catia - Historical Sketch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.5 Catia Successes . . . . . . . . . . . . ................................ 3
3.6 The Port . . . . . . . . . . . . . . . . . . . . . . . . .......................... 3
4 TECHNICAL CHARACTERISTICS OF DISTRIBUTED 4
CATIA
4.1 Catia User Interfaces . . ...................................... 4
4.2 Distributed Catia Architecture ................................ 4
5 HP HARDWARE CONFIGURATION 5
5.1 Catia-Supported H-P Workstations . . . . ......................... 5
5.1.1 Low End Systems . . . . . . . . . . . . . . . . . . ..................... 6
5.1.2 Mid Range Systems . . . .................................. 6
5.1.3 High End Systems . . . . . . . . . . . . .......................... 6
5.1.4 A Word On Legacy Hardware . ............................ 6
5.2 Impact Of Configuration Options . . . . .......................... 6
5.3 C P U Speed . . . . . . . . . . . . . . . . . . . ............................ 7
5.4 Memory Considerations . . . . . . . . . . . .......................... 7
5.5 Disk Considerations . . . . . . . . . . . . . . .......................... 7
5.5.1 Upgrade To Fast-Wide S C S I - I I. . ........................ 8
5.5.2 Distribute The Work Load Across Multiple Disks. . . . . . . . . . . . . 8
5.5.3 Split Swap Space Across Two Disks ........................ 8
5.5.4 Enable Asynchronous I/O . . . . . . . . . . . . . . . . ................ 8
5.6 Graphics Options ........................................... 9
6 HP SOFTWARE CONFIGURATION 9
6.1 Operating Systems .......................................... 9
6.2 Compilers ................................................. 9
7 HP GRAPHICS CONFIGURATION 10
7.1 Graphics Hardware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 10
7.1.1 2-D Graphics Devices ................................... 10
7.1.2 3-D Graphics Devices ................................... 11
7.1.3 High End Graphics ..................................... 11
7.1.4 Legacy Graphics Cards . . . . . . . . . . . . ..................... 12
7.1.5 Workstation / Graphics Matrix . . . . . . . . . . . . ............... 12
7.2 Graphics Software . . . . . . . . . . . . . . . . . ........................ 13
7.2.1 Graphics A P I . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.2.2 Powershade .......................................... 13
8 HP-UX PATCH / PTF REQUIREMENTS 14
8.1 Patches Needed For A H P - U X 9.05 System . . . . . . . . . . . . ....... 14
8.1.1 Graphics Patches . . . . . . ................................ 14
8.1.2 Kernel Patch .......................................... 14
8.2 Patches Needed For A H P - U X 9.07 System . .................. 15
8.3 Compiler Patches . . . . . . . . . . . . . . . . .......................... 15
8.4 Miscellaneous Patches ...................................... 15
8.5 How To Obtain H-P Patches . . . . ............................. 15
8.6 How To Install Patches . . . . . . . .............................. 15
8.7 Special Instructions For Graphics Patch Installation ............. 16
8.8 Catia Solutions Version 4.1.4 P T F/Patches For H-P ............. 16
9 PERIPHERAL SUPPORT 17
9.1 Input Device Support . . . . . . . . . ............................. 17
9.2 Output Device Support . . . . . . . . . . . .......................... 17
10 HP KERNEL CONFIGURATION 18
10.1 Affected Parameters . ..................................... 18
10.2 Configuring Kernel Parameters With Sam ..................... 18
11 SWAP SPACE CONSIDERATION 19
11.1 Distributed Catia Swap Requirement . . . . . . . . . . .............. 19
11.2 Configuring Swap Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... 19
11.3 Determining Swap Configuration ............................ 19
11.4 Determining Amount Of Swap Needed ........................ 20
11.5 Configuring Device Swap On A Single Disk Drive System . . . . . . . . 20
11.6 Configuring Device Swap Across Multiple Disk Drives . . . . . . . . . . 21
11.7 Configuring File System Swap . . . . .......................... 22
12 SHARED LIBRARY CONSIDERATION 23
12.1 Protection Id Trashing With Shared Libraries . . . . ............. 23
12.2 The S T E P L I B Environment Variable . . . . . . . . . . . . . . . . . . . . . 23
12.3 The S H L I B _P A T H Environment Variable . . . . . . . . . . . . . . . . . 23
12.4 Affected Kernel Parameters . . . . . . .......................... 24
13 LICENSE MANAGEMENT OF DISTRIBUTED CATIA ON 25
HP
13.1 Netls & Ifor/Ls . . . . . . . . . . . . . . . . . . . . . . . . . .................. 25
13.2 License Management Scenarios . . ........................... 25
13.3 Heterogeneous License Management: H P-U X / A I X . . . . . . . . . . 25
14 CATIA PROGRAMIVIING DEVELOPMENT ENVIRONMENT 26
- GII/IUA
14.1 Introduction ............................................. 26
14.2 H-P Software Tool Requirements ............................ 26
14.3 Example ................................................ 26
14.4 Debugging G I I And I U A Applications With Xdb .............. 27
14.5 Software Development Using Softbench . ..................... 28
14.5.1 Debugging With Softbench . . . . . ........................ 28
14.5.2 Using Softbench Performance Analyzer On The Shared .... 29
Modules ............................................
15 CATIA CODE PAGE AND NATIONAL LANGUAGE 30
SUPPORT
16 CATIA APPLICATION ARCHITECTURE PARTNERSHIP 31
16.1 C A A Partner List . . . . . . . . . . .............................. 31
16.2 Application Prerequisites On H-P ............................ 32
17 USE OF REMOTE X DISPLAY 32
17.1 Environment Variable Settings .............................. 32
17.2 Minimum Color Usage . . . . . . . . . . . . . ........................ 32
18 CATIA ADMINISTRATION 33
18.1 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........... 33
18.1.1 Hardware Prerequisite . . . . . . . . . . . . . ................... 33
18.1.2 Software Prerequisite . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . ... 33
18.2 H P And Catia Installation Check List . .. . . . . . . . . . . . . . . . . . ... 33
18.3 Packaging Catia . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . .. . 34
18.3.1 Packaging Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
19 UNDERSTANDING MEMORY AND SWAP 36
19.1 Memory Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
19.2 Physical Memory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
19.3 Secondary Storage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
19.4 Swap ................................................. 37
19.5 Virtual Address Space . . ................................. 38
19.5.1 Configurable Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
19.5.2 Series 700 Address Space . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
20 PHYSICAL MEMORY VERSUS PERFORMANCE 40
20.1 Where Is The Memory Going .............................. 40
20.2 Determining Appropriate Physical Memory Size .............. 40
21 HP-UX CONFIGURATION 41
21.1 Kernel Configuration Parameters . . . . . . . . . . . . . . ............ 41
21.2 Maxdsiz And Its Affect On Memory . . . ...................... 41
21.3 Parameters Which Affect I/O . . . . . . . . . . . . . . . . . . ............. 42
21.4 Fast Link Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . ........... 42
22 NETWORKING CONSIDERATIONS 42
22.1 Introduction ............................................ 42
22.2 Rules To Live By . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ........ 43
22.3 The Sticky Bit ......................................... 43
22.4 Network Management Tool .............................. 43
23 CATIA/HP CONFIGURATION CHECKLIST 44
23.1 H-P Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ............... 44
23.2 Operating System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ....... 44
23.3 Graphics Software . . . . . . . . . . . . . . . . . . . . . . . . . .............. 44
23.4 Graphics Hardware . . . . . . . . . . . . . . . . . ... . .... . . . . . . . . . . ... 44
23.5 Compilers For Gii/Iua . . . . . . . . . . . . . . . . .. . . ... . . . . . . . . . . ... 44
23.6 H-P Patches/Ptfs ......................................... 44
23.7 Swap Space ............................................. 45
23.8 Memory Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
23.9 Kernel Requirements ..................................... 45
24 ACKNOWLEDGMENTS 45
1 INTRODUCTION
This white paper discusses the characteristics of the Distributed CATIA Solutions Version 4.1.4
mechanical CAD application on Hewlett-Packard workstations and how to configure the workstation for
optimal application performance. The intended audience include CATIA users newly exposed to the HP
workstation environment, HP users who need an exposure to the Distributed CATIA implementation on
HP, IT professionals needing a focused introduction to the HP environment for Distributed CATIA, and
HP and CATIA support engineers who need to understand the requirements of Distributed CATIA on HP
and how best to configure the HP workstation for optimal application performance. A detailed table of

content is provided to facilitate quick access to needed information. To

get a jump start in running Distributed CATIA on HP, go directly to the "CATIA/HP Configuration
Checklist" chapter at the end of this document

2 REVISION 2.X SUMMARY


The main driving force for Revision 2.X of this white paper is to provide information on the support and
requirement for running CATIA Solutions Version 4.1.4 on the new HP-UX 9.07 operating system, and the
expanded workstation and graphics subsystem products introduced by Hewlett-Packard in June 1995.
Additionally, the hardware and graphics configuration chapters were reorganized to be more meaningful
to the CATIA MCAD user. The HP-UX patch chapter was renamed to include the more familiar Program
Temporary Fix term, and reorganized to delineate CATIA-required patches/PTFs for HP-UX 9.05 and
those required for HP-UX 9.07 - NONE. A code page chapter was added to inform users of procedures to
move CATIA models from the IBM 850 format to the ISO-8859-1 format required for CATIA/HP, and the
tools provided by CATIA in this area. Finally at the request and with the assistance of key customers, the
CATIA/HP configuration checklist chapter was reorganized and expanded to provide a quick overview of
setting up the HP environment for Distributed CATIA.

l
COMPUTER-GRAPHICS AIDED THREE-DIMENSIONAL INTERACTIVE
APPLICATION
3.1 Background
Computer-graphics Aided Three-dimensional Interactive Application was born out a team of
engineers and mathematicians from Dassault Aviation in France in the mid-70's. It has since grown
be the MDA tool of choice in the aerospace and automotive industries. In the early 80's, Dassault
Systemes was incorporated with R&D responsibility for CATIA, with IBM handling the sales and
support responsibilities. In addition to its traditional IBM platforms of mainframe (MVS or VM) arc
workstations (RS6000/AIX) CATIA is now delivered on the HP workstation platforms.

3.2 Distributed Catia


This is the UNIX workstation version of CATIA. It has been available on the IBM RS/6000 for severs
years under AIX. Distributed CATIA is the version that has been ported to the HP workstation famil
It provides the same core functionality as mainframe CATIA, yet is distinct in its exploitation of
workstation features such as greater graphics functionality, MOTIF user interface, and some new
application modules delivered exclusively on the workstations. Clearly, Distributed CATIA is the
strategic direction of DS, IBM, and CATIA customers.

3.3 Host Catia


Host CATIA refers to the CATIA application running on an IBM mainframe, in one of two operating
system flavors: IBM/MVS and IBM/VM. The overwhelming majority of sites run MVS. A very few
Peugeot-Citroen among them, run the VM environment. There are four key points to be made here:

1 CATIA historically is a mainframe-based application. Most users are still on the mainframe.
Due to superior price/performance, client/server, and flexibility advantages of workstations
over host-based systems, there is a concerted effort to migrate the CATIA installed base to
Distributed CATIA.

2 Many of the design engineers migrating from host CATIA are new to the UNIX and HP
workstation environment.

3 Supporting these customers will by and large take more effort than say supporting a
UNIX-based customer migrating from another WS vendor to HP. Up front and on-going
technical support has a major effect on how Distributed CATIA on HP is perceived.

4 These users are hungry for some of the sophisticated application development tools
(Softbench) and client/server tools (Openview) available in the UNIX world. We have seen
this at a number of the pilot sites testing Distributed CATIA on HP.

3.4 Catia - Historical Sketch

2
* Mid 70's - Outside of Paris, a small group of Dassault Aviation mathematicians and engineers decided
to put their powerful mechanical design algorithms into programs running on their mainframe,
* Early 80's - In light of the internal success of this software program, Mr. Marcel Dassault agreed to
spin off the mechanical design software group at Dassault Aviation into a subsidiary. Dassault
Systemes was born. CATIA would be delivered to IBM/MVS and IBM/VM mainframe customers.
* Early 90's - CATIA is delivered on its first UNIX platform, the RS/6000 workstation as Distributed
CATIA to provide new graphics functionality, and to broaden the use of CATIA among existing
host-based accounts and smaller customers. Dassault Systemes acquires CADAM from IBM and
establishes Dassault Systemes of America as the R&D wing for the CADAM and ProCADAM products.
* Early 1993 - CATIA Solutions Version 4 was released with significant new capabilities with a
statement of direction for Distributed CATIA on multiple platform.
* 7 March 1995 - CATIA Solutions Version 4.1.4 is announced at Daratech with support for Hewlett
Packard graphics engineering workstations as the first non-IBM platform, providing existing and new
CATIA users an additional platform choice and the full array of HP workstation products.

3.5 Catia Successes


CATIA serves a number of key industries including aerospace; automotive, consumer electronics, ship
building, heavy industries, and is installed at a number of the major accounts. With the successful
launch of its new LH-series car line, Chrysler is fast becoming the model, for other CATIA users across
industries and even to its competitors in the automotive industry, of a company focused on optimizing
its processes with CATIA as the master part description for all product design, development, and
pre-assembly. Boeing, in what is being described as the biggest CAD project ever, set a new
precedence in the aerospace industry by using 100% digital mock-up to design and pre-assemble the
new 777 jetliner [See COMPUTER-AIDED ENGINEERING - August 1994]. Likewise Dassault Aviation
is developing total electronic mock-up of its next generation Rafale jet fighter. Bypassing expensive
and time consuming physical mock up has been a goal for a number of large manufacturers
world-wide. Not many mechanical CAD applications can be configured to provide the level of
enterprise-wide, mature infrastructure necessary to support this goal. The fact that CATIA continues
to play a leading role in these successes testifies to its robustness as a mechanical design tool, and to
the depth and breadth of its capabilities.

3.6 The Port


It was inevitable that the leading enterprise-wide mechanical design tool supplier would join rank
with the leading hardware vendor in the mechanical design automation market. What is remarkable,
but not surprising is the fidelity and robustness of the Distributed CATIA product on HP. The
Distributed CATIA port to Hewlett-Packard workstations has seen an unprecedented level of
cooperation between the HP and DS technical teams. A number of existing and new CATIA customer
sites played a vital role in the qualification and certification of Distributed CATIA Solutions Version
4.1.4 on HP during a seven-month pre-release phase. Key members of HP's Professional Services
Organization played an equally valuable role in ensuring these early test customers got the best
technical support on the newest Distributed CATIA platform.

3
4 TECHNICAL CHARACTERISTICS QF DISTRIBUTED CATIA
4.1 Catia User Interfaces
CATIA is available as:
* 5080 CATIA which runs on the mainframe and is displayed on a 5080 terminal or on a
workstation running a terminal emulator package (including Spectragraphics'
5080 emulator for the HP S700)
* graPHIGS CATIA which runs and is displayed on the RS/6000, and
* Motif CATIA which runs and is displayed on both the RS/6000 and the HP.S700

HP-PHIGS is used as the underlying graphics API for Distributed CATIA on HP. Dassault emphasizes
the concept of "Single System Image" to describe the 100% functional equivalence of the various CATIA
interfaces. Once launched, a user sees the same CATIA interface and behavior pattern across the
different platforms and architectures.

4.2 Distributed Catia Architecture


Whereas many applications vendors are just beginning to release shared library versions of their
applications after years of building one large executable with a host of binary and script files,
Dassault Systemes has architected Distributed CATIA into some 3,000 shared libraries also known as
modules. These reside in directory $CATIA/code/steplib where $CATIA is the installation directory.
There are clear advantages to such a shared library architecture, but there are also special challenges
which the workstation system faces as a result of this architecture. Refer to the Shared library
Consideration section of this document for specific steps which must be taken to ensure optimum HP
performance.

The ton level directories of Distributed CATIA and their contents include:

4
5 HP HARDWARE CONFIGURATION
The HP workstation family is powereded by HP's Precision Architecture RISC or PA-RISC chips. HP
offers a broad range of products with varying CPU performance, memory, disk, and graphics capabilities.
The reason so many workstation products are available is to provide the customer the flexibility to
choose the most cost effective hardware solution to run the mechanical CAD application. Figure 1 below
positions HP's current workstation product line according to the intended usage.

Figure 1

5.1 Catia-Supported H-P Workstations


CATIA users on HP can select a variety of workstation models. What follows is a quick description
of these models and their capabilities. A matrix of these workstations and their supported graphics
configurations is shown in Figure 3, found later in this document.

5
5.1.1 Low End Systems
This category includes the Model 712 in its 60, and 80 Mhz configurations. The Mhz number
suggests progressively higher compute performance. The Envizex X-terminal is also in this
category but users are cautioned that with X-terminals running off of another workstation, compute
and graphics performance of Distributed CATIA could be significantly lower than on that
workstation. The 712 has only one graphics option - the 8-plane integrated color.

5.1.2 Mid Range Systems


The new 712/100 by virtue of its speed, the model 715 with the 64 and 80 Mhz configurations, by
virtue of their graphics expandability, and the 715/100 Mhz fill the mid-range space.

5.1.3 High End Systems


The new S715/100XC with a large cache, the 735/125, the J200 (100Mhz) and J210 (120Mhz) make
up the high end of the HP workstation line.

5.1.4 A Word On Legacy Hardware


Distributed CATIA Solutions Version 4.14 supports the set of workstation products outlined in
Figure 1 above. There is often questions from HP users about support for older models of the S700
line. It is worth noting that while some effort is expanded by Dassault (from the application
perspective) and H-P (from the operating system level) to provide support for legacy H-P
workstations, these legacy models are not actively used in developing, running, and testing of
CATIA. Moreover users with the 705, 710, 720, 730, 715/33 715/50, and 715/75 models running CRX
and CRX24 graphics are likely to be disappointed that these older configurations do not provide the
breadth of performance capabilities available in current H-P offerings. The legacy graphics devices
PVRX and TVRX are not supported by Distributed CATIA.

5.2 Impact Of Configuration Options


A heavily configured high-end workstation may be underutilized if it used to solve relatively small,
simple problems. On the other hand, an inexpensive low-end system may have unacceptable response
time if it is used to do hidden line removal on large models. Selecting the most cost effective
Distributed CATIA seat requires careful matching of the customer's usage patterns and the hardware
options which ideally suits these patterns.

At least four components directly affect the performance of your Distributed CATIA seat. These are:

CPU Speed
Memory Size
Disk Size
Graphics options

While all these hardware areas are important, it is equally important to configure a balanced system. It
is counterproductive to buy the fastest CPU and configure it with insufficient memory. You might get
better performance and throughput with a slower, less expensive, CPU with the difference in price
invested in more memory. The large number of system variables, combined with their interaction,
complicates the task of selecting the most cost/performance effective configuration for all usage
patterns. The best way to select appropriate hardware configurations is to perform benchmark tests
that duplicate the intended use of the system as closely as possible. With relevant benchmark data in
hand, the customer has the information needed to make intelligent tradeoff decisions on the
cost/performance benefits of the available hardware options. A discussion of the four components
follows.
6
5.3 C P U Speed
Almost all operations performed on engineering data require a large number of floating point and
integer calculations. CPU speed is the most important performance factor for executing large number
of calculations. If an operation takes five seconds, is it worth spending an extra $5,000 for a faster
CPU so the operation can be done in three seconds? Would the added expense be more justifiable if
the faster CPU reduces a five-hour operation to three hours? What if the operation is done several
times a day rather than once a month? When evaluating CPU performance, a priority list should be
generated to identify the tasks pertinent to the customer's design process and their relative
importance, frequency, and impact on overall productivity.

Tasks that are most affected by CPU performance are those that involve more computation than disk
access or graphics display. Some examples are:

Mass Properties
Elfini Solver
Boolean Operations
Finite Element Analysis

While the graphics performance on HP systems will scale with the CPU performance, the most
important criteria for CPU performance is on non-graphic, computational operations. This should be
kept in mind when evaluating systems for use with Distributed CATIA. In order to achieve satisfactory
performance, it is essential to match the CPU to the task to be performed.

5.4 Memory Considerations


The minimum memory requirement for Distributed CATIA is 32MB. The recommended minimum is
64MB or more. The amount of memory needed is directly related to the size of the model data you
need to work with. HP-UX is a virtual memory operating system. This means that the maximum
amount of memory available to Distributed CATIA is determined by the amount of swap space
configured and not by the amount of physical memory. Inadequate memory, or RAM, will not prevent
Distributed CATIA from running but will have a serious negative impact on performance. Memory
management is a complex topic. Memory, its relationship to swap space, and its effect on performance
are discussed in more detail in the section Understanding Memory and Swap later in this document.

5.5 Disk Considerations


All installed products of Distributed CATIA consume approximately 250 MB. A minimum of 40MB of
user data space is recommended, as is a minimum swap of 264MB, totaling a minimum disk
requirement for 554MB. The installation of the CATIA on-line documentation on disk may consume an
additional 340MB with the graphic format, or 100MB with the alphanumeric format.
Adding the operating system size to that total, a system equipped with just a 1 GB disk is barely
adequate to run Distributed CATIA.

Distributed CATIA model files and assemblies are stored on disk and can be quite large. For this
reason, disk 1/O is the bottleneck in several Distributed CATIA operations, particularly during
read/open part and save/close part operations. When a part is loaded, the entire model file, or all the
model files belonging to an assembly, must be read from the disk and loaded into memory. Increasing
CPU performance has minimal impact on the time necessary for these operations. Since swap space is
actually system memory that is stored on disk, disk I/O performance can affect swap performance as
well. Disk 1/O performance is most significant when working with very large models or assemblies.

HP's philosophy is to design balanced systems in which no component becomes a performance


bottleneck. HP has made significant enhancements to 1/O performance needed to keep pace with the

7
breakneck speed of our CPUs. I/O performance depends on several parts of the system working
together efficiently. The I/O subsystems have been redesigned so as to offer the industry's fastest and
most functional I/O subsystems as standard equipment, including fast-wide SCSI-II. There are several
things that can be done to improve disk I/O performance:

5.5.1 Upgrade To Fast-Wide S C S I - II.


The fast-wide SCSI-II bus has a burst transfer rate of 20 MB / second, compared to 5 MB / second
for single-ended SCSI-II bus. The single disk data transfer rate for a 1.0 GB single-ended SCSI-II
disk is 2.7MB/sec, versus 3.5MB/sec for fast-wide SCSI-II. Fast-wide SCSI-II is currently only
supported on the model 735/755 workstations.

5.5.2 Distribute The Work Load Across Multiple Disks.


Disk I/O performance can be improved by distributing data across multiple disks. In a single disk
configuration, a single drive must handle operating system access, Distributed CATIA software
access, memory swap, and part file access simultaneously. If these different tasks can be
distributed across multiple disks then the job can be shared providing subsequent performance
improvements. For example, a workstation might be configured with three disk drives. The HP-UX
operating system and Distributed CATIA software would reside on one disk, swap space on the
second, and the model files on the third.

Another way to distribute the disk workload is with an HP-UX feature called Software Disk
Striping. SDS groups disks into arrays and allows you to distribute a single file system across
multiple disks while allowing the data on the disks to be managed as if occupying a single disk.
Distribution of the file system across multiple disk devices allows them to work in tandem and
provides much better performance for I/O intensive operations than a single disk.

5.5.3 Split Swap Space Across Two Disks


Device swap space can be interleaved, or distributed across two disks. This will improve
performance when memory is swapped to or from disk. This is discussed in more detail in the
section on Swap Space Configuration later in this document.

5.5.4 Enable Asynchronous I/O


By default HP-UX uses synchronous disk I/O. This means that any file-system activity must
complete to the disk before the program is allowed to continue; the process does not regain control
until completion of the physical I/O (regardless of whether the I/O is user data or operating-system
data). When HP-UX writes to disk synchronously, I/O is scheduled at some later time and the
process regains control immediately, without waiting.

Synchronous writes ensure file system integrity in case of system crash, but this kind of disk
writing also impedes system performance. Run-time performance increases significantly (up to
roughly ten percent) on I/O intensive applications when all disk writes occur synchronously; little
effect is seen for compute-bound processes. However, if a system using asynchronous disk writes
crashes, recovery might require system-administrator intervention using fsck and might also cause
data loss. You must determine whether the improved performance is worth the slight risk of data
loss in the event of a system crash.

Asynchronous I/O is enabled by setting the value of the kernel parameter fs_async to l and
disabled by setting it to 0, the default. For instructions on how to configure kernel parameters, see
the section Kernel Configuration Parameters l ater in this document.

8
5.6 Graphics Options
CATIA has built a solid reputation as a 3D graphics intensive mechanical CAD application. CATIA
users increasingly like working with solid models and expect fast graphics performance from their
system. Refer to the HP GRAPHICS CONFIGURATION section for a full discussion of the graphics
offering and configuration for Distributed CATIA on HP.

6 HP SOFTWARE CONFIGURATION
6.1 Operating Systems
Distributed CATIA Solutions Version 4.1.4 now runs on two HP operating system levels - HP-UX 9.05
and HP-UX 9.07.

1 HP-UX 9.05 - This version of the operating system was launched in May 1994. Distributed
CATIA on HP was built and has been certified on HP-UX 9.05.

2 HP-UX 9.07 - This version of the operating system was introduced in July 1995 to support a
number of new HP hardware and graphics offerings. These new models are the 712/100,
715/100XC, the J-class, and the Visualize-8, -24, and -48 graphics devices. HP-UX 9.07 also
runs the older systems. CATIA Solutions Version 4.1.4 has been successfully certified on
HP-UX 9.07 and the new hardware options.

6.2 Compilers
Distributed CATIA is built using the HP FORTRAN, C, C++ compilers. The FORTRAN compiler
version is:

% what /usr/lib/f77pass1
/usr/lib/f77pass1:
HP-UX SLLIC/OPTIMIZER UX.09.18.02 (BL02): Wed 06/21/94
HP-UX FORTRAN/9000 940620.1933 (patch PHSS_4360) B2408A/B2409B 09.16
High Level Optimizer - HP-UX 9.0 DART 16 (+02) built Thu May 1211:29:28 PDT 1994
Ucode Code Generator - UX.09.18.03 (BCK_UX_9.0_BL02) - Tue 94/06/21

% what /lib/ccom
/lib/ccom:
HP92453-01 A.09.69 HP C Compiler
HP-UX SLLIC/OPTIMIZER UX.09.18.04 (BCK_UX _9.0_BL04): Fri 08/19/94
High Level Optimizer - UX.09.16.01 (+02) built Mon Aug 22 15:56:20 PDT 1994
Ucode Code Generator - UX.09.18.04 (BCK_UX_9.0 BL04) - Fri 94/08/19

The C++ compiler version is:


what /usr/bin/CC
/usr/bin/CC:
HP C++ B2402 A.03.55

NOTE: In order to execute CATIA 4.1.4 on HP, these compilers are not needed. If however the user
is developing G11 or IUA applications, at least the FORTRAN compiler would be needed to compile
and link the GII/IUA modules. See section on GII/IUA.

9
7_ HP GRAPHICS CONFIGURATION
7.1 Graphics Hardware
Graphics display performance is very important for an interactive graphics application such as
Distributed CATIA. HP offers a wide range of graphics options, from the CRX line, to the HCRX line,
and the new Visualize-8, -24, and the top of the line Visualize-48. Figure 2 below shows the graphics
devices supported by Distributed CATIA and their intended use. For a matrix of HP workstations and
their supported graphics options for CATIA, see Figure 3 at the end of this chapter.

Figure 2

7.1.1 2-D Graphics Devices


2-D graphics cards are usually equipped with 8 image planes and generally used for wireframe/
drawing/drafting activities in Distributed CATIA. In this category, the following cards are available:

I Integrated Color Graphics - This is an 8-bit. (256 color) display that is built into the
workstation's motherboard. It. provides excellent vector performance, faster than many
vendors optional accelerated graphics, and also accelerates the Graphical User Interface. It

10
features HP Color Recovery, a patented display technology that simulates 24 bit color. This
display is adequate for low-end 2D or 3D use with small drawing and/or model files, and is
available on the 712 and 715 models.

2 HCRX-8 and HCRX-24 - The HCRX graphics accelerator is an EISA card internal to the CPU
cabinet. It provides additional X-Windows graphics acceleration (approximately 50%) and
vector display acceleration (approximately 2X) over integrated color graphics. It is good for
performance-oriented 2D use. It is also good for 3D use when working primarily in wireframe
mode and there is no requirement for dynamic rotation of shaded images for visualization.
The HCRX-24 provides 24 bit color (16.7 million colors). Utilizing Color Recovery, however,
the HCRX-8 provides about 8 million colors and is probably adequate for many MCAD
graphics uses. These cards are available on the 715 and J-Class workstations.

3 Color Graphics Card - Another low cost 2D 8-plane card for the J-Class workstations.

The software graphics accelerator Powershade is recommended to enhance the image quality,
shading and lighting calculations on these boards. See Powershade in the Graphics Software
Configuration section.

7.1.2 3-D Graphics Devices


Designers working with shaded models and solids will find the faster graphics and better image
quality of the following devices of interest:

1 HCRX-8Z / HCRX-24Z - These products add hardware Z-buffer, in the form of a daughter
card, to the HCRX-8/24 providing acceleration of 3D shaded images. While the 3D vector
performance is the same as the HCRX-8/24, the Z daughter card is essential for dynamic
rotation of 3D shaded images for design visualization purposes. The HCRX-8Z has the same
color limitations as the HCRX-8 above, and its performance is the same as the HCRX-24Z.
However the HCRX-24Z delivers superior visual quality. The full Hyper CRX line is available
on the 715 and J-Class workstations.

2 Visualize-8 /Visualize-24 -These cards are similar to the HCRX-8Z and HCRX-24Z,
respectively, but significantly faster graphics -1.5X to 3.5X the HCRX line. They are available
on the 715 and J-Class workstations.

7.1.3 High End Graphics


This category is suitable for graphics intensive activities requiring a high degree of photo-realism
and smooth dynamics of large number of complex shaded objects.

1 CRX-48Z - The CRX48Z comes in a separate box. It has two 24 bit hardware Z-buffers with
the capability to do double-buffered rotations of 24 bit shaded images. This means that each
new view of the image is created in the off-screen buffer and then flashed onto the screen all
at once. This provides smoother rotations on larger models. The 48Z is supported on the 715
100 & 100XC, the 735, and J-Class workstations.

2 Visualize-48 - This is the top of the line graphics device which runs 2 to 3.5X the speed of the
CRX-48Z. It is available on the J-Class.

11
7.1.4 Legacy Graphics Cards
See note on legacy hardware in the hardware configuration section of this document.

7.1.5 Workstation / Graphics Matrix


Figure 3 below shows the range of workstations and graphics devices supported by Distributed
CATIA on HP.

Figure 3

12
7.2 Graphics Software
7.2.1 Graphics A P I
The Hewlett-Packard graphics application programming interface uses in Distributes CATIA is
HP-PHIGS. The customer must obtain HP-PHIGS Version 3.0, product number B2364E, to run
Distributes CATIA. The operating system running on the workstation, HP-UX 9.05 or 9.07, must be
specifies when ordering this product.

7.2.2 Powershade
The HCRX-8Z/-24Z, CRX48Z, and Visualize-8/24/48 all contain a hardware Z buffer that is uses to
i mprove performance of shaded images. Powershade comes bundled with systems configures with
Z-buffer graphics hardware. To generate a shaded view, the surface of the model object must be
tessellated, or broken up into a mesh of small triangles. These triangles are sorted bases on their Z
value. Triangles that are closer to the viewing plane are sorted to the front, and triangles further
away are sorted to the back. This sorting can be implemented in software or hardware. Since a
complex object may have hundreds of thousands, or even millions of triangles, this operation can
be very time consuming when done in software. On a system with a graphics accelerator, the
triangles are loaded into the hardware Z-buffer, a form of physical memory, and sorted by a built-in
hardware algorithm. This is extremely fast, almost instantaneous for most images.

Powershade simulates a hardware Z buffer in software. While not as fast as a hardware


i mplementation, it is nonetheless significantly faster than conventional software sorts. On a system
without hardware graphics boards, Powershade accelerates shading and lighting calculations.
Powershade is highly recommended for Distributes CATIA on all HP graphic boards.

13
5 HP-UX PATCH /_ PTF REQUIREMENTS
"PTF" in CATIA parlance is synonymous to "patch" in HP parlance. As CATIA Solutions Version 4.1.4
supports two HP-UX operating systems, the patches required are based on the operating system running
on your workstation. The rest of this chapter provides detail on the patch mechanism and the relevant OS
information.

8.1 Patches Needed For A H P - U X 9.05 System


8.1.1 Graphics Patches
The HP-UX graphics patches for Distributed CATIA Solutions Version 4.1.4 were released in the
February Periodic Patch. These are:
/hp-ux_patches/s700/9.X/PHSS 5100 - (Starbase Core Run-time) and
/hp-ux-patches/s700/9.X/PHSS_5104 - (HP-PHIGS Run-time)
As of mid -July 1995, patch PHSS_5100 has been superseded by patch PHSS_5450. This patch can
be used in place of PHSS_5100. Note that CATIA/HP customers need only the run-time version of
HP-PHIGS, thus only the run-time versions of these patches are needed to run Distributed CATIA.
This rule applies to customers who develop CATIA/GII/IUA customized applications as well. To
verify the that these patches are installed, execute the what command on two libraries. You should
get the following results (or subsequent revisions):

<mr_t>/useres/mr_t 16=> what /usr/lib/libsb.s l /usr/lib/libphigs.sl


/usr/lib/libsb.sl:
GRAPHICS CORE R905_P5 BRANCH 950210libsb.sl $Revision: 510.1.200.1$
PHSS_5099/5100 February 95 Starbase/CORE Periodic Patch
GRAPHICS CORE R905_P5 BRANCH 950210libsga $Revision: 510.1.200.12 $
PHSS_5099/5100 February 95 Starbase/CORE Periodic Patch

GRAPHICS CORE R905_P5 BRANCH 950210libsb2.a $Revision: 510.1.200.3 $


PHSS_5099/5100 February 95 Starbase/CORE Periodic Patch
GRM Library HP-UX 8.0 A.01 Protocol PROTO_VER FILE VERSION
/usr/lib/libphigs.sl:
180.2 01/30/95 HP-PHIGS PATCH PHSS_4253/PHSS 4254
180.2 01/30/95 HP-PHIGS PATCH PHSS_4559/PHSS 4560
180.2 01/30/95 HP-PHIGS PATCH PHSS_4908/PHSS_4909
180.2 01/30/95 HP-PHIGS PATCH PHSS_5103/PHSS_5104
180.2 01/30/95 HP-PHIGS 3.20 on HP-UX

For customers who purchase the HP-PHIGS development bundle, the development versions of the
above patches should be applied. They are:
/hp-ux-patches/s700/9.X/PHSS_5099 - (Starbase Core Development)
/hp-ux_patches/s700/9.X/PHSS_5103 - (HP-PHIGS Development)
Be sure to follow the " Special Instructions For Graphics Patch Installation" section below.

8.1.2 Kernel Patch


The following kernel patch is recommended to fix memory map and NFS performance problems:
/hp-ux-patches/s700/9.X/PHKL_5165 or its successor.

14
8.2 Patches Needed For A H P - U X 9.07 System
NO HP-UX patches are necessary to run Distributed CATIA Solutions Version 4.1.4 on 9.07! The above
patches for 9.05 were incorporated into the 9.07 core graphics software, the 9.07 kernel, and the 9.07
HP-PHIGS product. To verify the right set of graphics revision is on your system, execute the
following command and check your output against this:

% what /usr/lib/libsb.sl /usr/lib/libphigs.s l


/usr/lib/libsb.sl:
GRAPHICS CORE R907 BRANCH 950526 libsb.sl $Revision: 530.1.100.3 $
GRAPHICS CORE R907 BRANCH 950526 libsb2.a $Revision: 530.1.100.1 $
GRM Library HP-UX 8.0 A.01 Protocol PROTO_VER FILE VERSION
GRAPHICS CORE R907 BRANCH 950526 libpi $Revision: 530.1.100.4 $
GRAPHICS CORE R907 BRANCH 950526 libsga $Revision: 530.1.100.2 $
/usr/lib/libphigs.sl:
180.5 05/12/95 HP-PHIGS PATCH PHSS_4253/PHSS_4254
180.5 05/12/95 HP-PHIGS PATCH PHSS_4559/PHSS_4560
180.5 05/12/95 HP-PHIGS PATCH PHSS_4908/PHSS_4909
% 180.5 05/12/95 HP-PHIGS PATCH PHSS_5103/PHSS_5104
180.5 05/12/95 HP-PHIGS 3.20 on HP-UX

/usr/lib/libsb.s l is part of the core graphics distributed with the HP-UX 9.07 operating system.
/usr/lib/libphigs.s l is part of the PHIGS 3.0 product for HP-UX 9.07.

8.3 Compiler Patches


The HP patches which contains the recommended version of the compilers are:
FORTRAN: PHSS-4360 and PHSS-4664 and
C: PHSS-4637
or their successors. Note these patches are needed only if you have the compilers for GII/IUA use.

8.4 Miscellaneous Patches


There are a number of patches which can be applied to a Distributed CATIA seat. These patches,
while not necessary to run Distributed CATIA, may provide fixes to problems found at a particular
site. Hewlett-Packard periodically releases patch bundles which provide fixes to a variety of
customer-reported problems. Contact your support personnel for more information.

8.5 How To Obtain H-P Patches


In North America, contact 1-800-637-7740 for more information. HP patches are available in the
World Wide Web at URL http://support.mayfield.hp.com. Otherwis e contact your local support
representative.

8.6 How To Install Patches


Patches are delivered in a file known as a shell archive. When the archive is extracted, two files are
created, an ASCU text file containing a description of the patch and the defects it corrects, and a
binary file containing the patch itself in Update format. For example, to extract the files for patch
PHSS_4073:
Copy or extract the patch file to /tmp.

Go to /tmp:
$ cd /tmp
15
Unpack the patch to extract the text and update files:
$ sh PHSS 4073
PHSS_4073.text and PHSS_4073.updt

As root, run the HP-UX update program:


$ su
# /etc/update

On the first update screen select:


Change Source or Destination->

On the next screen select:


From Tape Device to Local System ...

Enter the source of the update:


Tape Device File: (source): /tmp/PHSS_4073.updt

Press:
F4, DONE

Select:
Select All Filesets on the Source Media ->

When prompted to load, enter:

The patch will be installed. Note that some patches require a system reboot. Carefully read the text
file before installing any patch, and backup your system. If you are unsure of the implications, call
your HP Support Center.

8.7 Special Instructions For Graphics Patch Installation


A patch may not be installed completely if a binary component of that patch is "in use" by the system.
Care should be taken when installing the graphics patches so as to minimize this type of clashing. You
will see the following error in an incomplete installation:

/lib/dld.sl: Unresolved symbol: _hpp_wideline control (code) from /usr/lib/libphigs.sl


This is a common problem found with new Distributed CATIA installation on HP. Care should be
taken to avoid the problem. One effective way is to make sure neither X11 nor VUE are running during
the patch installation:
1 Log out

2 At the login prompt, select Options / No Windows

3 Login as root into the alphanumeric terminal.

4 Follow the patch installation above.

8.8 Catia Solutions Version 4.1.4 P T F/Patches For H-P


Customers should contact their CATIA service representative.

16
9 PERIPHERAL SUPPORT
9.1 Input Device Support
Distributed CATIA has been certified on both HP-HIL- and serial-connected hardware input devices.
Support for both HP-HIL and IBM PS/2 keyboards are available with CATIA on HP. The following two
input devices are required for Distributed CATIA:
1 Three-button mouse or graphics tablet (A4364A, ...)

2 Alphanumeric keyboard - Specific keyboard may be required for National Language Support
A customer can use the following optional devices when running Distributed CATIA on HP:

1 9-knob dial box (46085A or A4362A)

2 32-button box (46086A or A4363A)

3 Spaceball (A4360A)

9.2 Output Device Support


Distributed CATIA provides drivers for a number of plotter languages. These include:
IBM-GL
Calcomp C907
HP-GL/2
OCE Graphics GPR50
Versatec VCGL
Versatec VRF

17
10 HP KERNEL CONFIGURATION
10.1 Affected Parameters
The values of the following operating system kernel parameters need to reflect the Distributed CATIA
requirements:

1 maxdsiz -The maximum data segment size value needs to be set to at least 256MB.

2 maxtsiz - The maximum stack size segment value needs to be set to at least 128MB.

3 nfile - The maximum number of open files value needs to be set to 3300

4 ninode - The maximum number of open inodes value needs to be set to 3250

10.2 Configuring Kernel Parameters With Sam


To configure kernel parameters with SAM, follow these steps.

1 Login to the system as root.

2 Start the SAM system administration tool by typing the command: sam

3 With the mouse, click on the Kernel Configuration line in the listbox and then click on the
Open button.

4 On the next screen, click on Configurable Parameters and then Open.

5 SAM will display a screen with a list of all configurable parameters and their current and
pending values. Scroll to the parameter you want to change, for example maxdsiz, and click
on it. Then click on the Actions selection on the menu bar and select Modify Configurable
Parameters... on the sub-menu.

6 SAM will display a form showing the existing value and a calculated value. The existing value
is in hexadecimal format. If you are not proficient at converting hexadecimal numbers, simply
enter a new value and press RETURN. The Calculated Value is displayed in decimal format.
Once you have the value you want, click on the OK button.

7 Look at the Pending Value column and make sure that the new value is displayed there.
Sometimes SAM doesn't accept the new value and you may have to repeat step 6. Repeat
steps 5 and 6 for each parameter you wish to change.

8 Click on the Actions selection on the menu bar and select Create A New Kernel. A
confirmation window will be displayed warning you that a reboot is required. Click on YES to
proceed.

9 SAM will build the new kernel and then display a form with two options:
Move Kernel Into Place and Reboot the System Now
Exit Without Moving the Kernel Into Place
If you select the first option and then click on OK, the new kernel will be moved into place
and the system will be automatically rebooted.

18
11 SWAP SPACE CONSIDERATION
11.1 Distributed Catia Swap Requirement
HP-UX requires the reservation of enough swap space for each running process so that all processes
can be swapped out simultaneously in case of heavy memory usage. Since read-only text pages (code)
are never swapped out, only the data area needs to be taken into account when determining swap
requirement. With maxdsiz set to 256 MB, a minimum of 264 MB of additional swap space (256 +
8Mbytes for stack ) is recommended for CATIA. Working with larger models may require larger values
for swap and maxdsiz.

11.2 Configuring Swap Space


For best performance, device swap is more efficient then file system swap. The ideal configuration is
device swap interleaved on two disks. When device swap is interleaved, the system alternates between
the two disks as swap is used providing better performance than a single disk.

11.3 Determining Swap Configuration


To see how much swap space is configured on your system, and how much is in use, execute the
command:

/etc/swapinfo -t

You must be root to execute this command. This is because swapinfo must open the kernel memory
file /dev/kmem to read the swap usage information so you must have appropriate privileges to this file.
Since this is a critical Operating System file, access is usually restricted to root only.

swapinfo will display information similar to the following:

This information from swapinfo -t shows this system is configured with a total of 76,559KB of device
swap and 20,480KB of file system swap. The device swap is configured with a priority of 0 and the file
system swap with a priority of 1. This means that device swap will be used until it is all consumed and
then file system swap will be used.

Many people make the mistake of using the swapinfo command without the "-t" option. This option
adds the total line at the bottom. If you look at this example, the percent used on the top line is only
13%, but on the bottom total line, it is 45%. To determine the amount of swap used, and the remaining
available, you must take into account the amount of swap on hold. HP-UX plans ahead by reserving
swap space each time a process (program) is started even though it is not used and may not even be
needed. This ensures there is adequate swap space to swap out the process in the event it becomes
necessary.

19
11.4 Determining Amount Of Swap Needed
The amount of swap available determines the maximum address space, or memory, available for
Distributed CATIA which in turn determines the maximum size of the data set (part files or
assemblies) that you can load at one time. If swap is too small and you try to load a part or assembly
that exceeds available swap you will get an Out of Memory error. If you configure more swap than you
will ever need then you are wasting valuable disk space. The correct swap size will vary considerably
depending on the data an individual user works with. Even within a single workgroup, the optimal
swap configuration may vary between individual engineers. An engineer who only works with, or
designs, small individual parts will need much less swap than someone who is working with large
complex assemblies.

The correct swap space configuration for your site can only be accurately determined by monitoring
swap usage while working with real data. This could be done either with the swapinfo command or
using a tool like HP's Glance Plus. Glance Plus allows you to monitor resources on a per process basis
and will track high water marks over a period of time. You would configure a workstation with more
swap than you expect to need and then run Glance Plus while the engineer uses Distributed CATIA to
perform real work. By monitoring the high water mark, you can determine the maximum swap space
used by that engineer and then adjust the swap configuration accordingly. It is not possible to
accurately calculate the amount of swap required for a part or assembly based on the size of the part
file (s). Obviously, if you experience Out of Memory errors, swap space is too small. It is also
important to increase the value of maxdsiz when swap space is increased.

11.5 Configuring Device Swap On A Single Disk Drive System


Device swap space is allocated before the root file system is created. Device swap on a system with a
single disk cannot be extended without re-installing HP-UX. If you need to increase the device swap on
a single disk system, you must perform the following steps.

1 Acquire the media, either CD-ROM or DAT, for the appropriate version of HP-UX. You must
have the INSTALL and CORE-OS media. The INSTALL media is bootable. The CORE-OS
media is in UPDATE format.

2 Put the INSTALL media in the CD-ROM or DAT drive.

3 Shutdown the system and reboot if currently running, or power-up if the system is off.

4 Interrupt the boot process by holding down the <ESC> key.

5 Select the option to Search For Bootable Devices.

6 Boot from the CD-ROM or DAT device, and follow the instructions.

7 When prompted, enter the amount of device swap desired. Note if device swap is to be added
to more than one disk, be sure to read the next section before entering this amount.

8 When prompted, remove the INSTALL media and insert the CORE-OS media and complete the
installation.

20
11.6 Configuring Device Swap Across Multiple Disk Drives

The instructions below pertain to a system where swap is to be configured on two disks - the root disk
and a second local disk. The instructions would need to be slightly modified for more disks. Creating
an SDS (software disk striping) array is yet another way to add device swap across multiple disks. For
best device swap performance across two disks, there are two guidelines:

1 Both drives should have priority 0 - in this case, the system will alternate between the two
drives as swap is consumed. This is known as interleaved swap. This provides better swap
performance since the disk I/O is spread across two physical devices.

2 Both swap areas in an interleaved configuration should be of the same size.


Note that when device swap is to be added to a disk, a new file system is created on that disk. Thus if
the second disk was previously in use, make sure that its content is backed up. To create the second
device swap area, do as follow:

1 Create swap area on root disk by following instructions for one-drive configuration above.

2 Prepare the second disk by insuring it is unmounted and properly connected to the CPU.

3 Start the SAM system administration tool by typing the command: sam

4 Click on the Disks and File Systems-> item in the list box and then click on the Open button.

b Click on CD-ROM, Floppy, and Hard Disks and then Open to get a list of all drives physically
connected to your system.

6 Click on the unused second disk.

7 Select Actions and then Add a Hard Disk Drive... while second disk is highlighted.

8 Select Set Disk Usage and Options... on the new menu window.

9 Select File System and Swap and select 0 for Swap Priority.

10 Enter the Mount Directory by specifying /disk2 for example.

11 Select Create New File System and the appropriate Disk Space Allocation. Note that in order
to have the same swap amount on both disks, the swap amount selected at OS installation
above should match the amount that you select here.

12 Complete the procedure by selecting OK, Yes, OK

21
11.7 Configuring File System Swap
File system swap can be added at any time. Even though it isn't recommended for performance
reasons, there are times when it may be necessary to add some file system swap in an emergency.

1 Login to the system as root.

2 Start the SAM system administration tool by typing the command: sam

3 Click on the Disks and File Systems-> item in the list box and then click on the Open button.

4 Click on Swap and then Open.

b SAM displays a form with the currently configured swap. Click on the Actions selection on the
menu bar and select Add File System Swap... on the sub-menu.

6 SAM will display a form with a list of local file systems. Click on the file system where you
want to add the swap (usually /).

7 Fill in the Minimum and Maximum swap boxes. Minimum Swap is the amount of swap that
will be allocated immediately. As swap is used, additional swap will be added until the
Maximum Swap value is reached. Set Swap Priority to 1. If you want the file system swap to
be mounted the next time the system is booted, select both Now and At Every System Boot.
Click on OK.

22
12 SHARED LIBRARY CON SIDERATION
The run-time mechanism of CATIA is based on the dynamic loading of a large number of shared library
objects or modules. Nearly 3000 shared libraries make up the CATIA product. With this many shared
libraries, certain system resources become quickly exhausted. This section discusses some of the changes
and adjustments which must be done to address the shared library requirements of Distributed CATIA

12.1 Protection Id Trashing With Shared Libraries


PA-RISC defines a permission mechanism for each memory access. Each page is assigned a
"Protection Identifier" which will be tested against four hardware registers. If the Protection ID
matches one of these four control registers, the memory access is enabled. In the case of no match, a
hardware interrupt occurs and a kernel exception handler is executed. This routine then detects if the
protection ID of the page is allowed to the process. If it succeeds it will copy the protection ID into
one of the four control registers and resume the process. This can really trash the running process if it
has to frequently access memory addresses that are protected with more than four unique protection
IDs. There is a special case where the page is set "public" with a protection ID of 0. In that case,
memory accesses are always authorized.

The kernel implements a shared library as a memory mapped file for which a unique protection ID is
assigned in case where the file has permissions like 755. To avoid this problem, it is highly
recommended to set the file permissions to 555. This tells the kernel to set the memory mapped file's
pages to a protection ID of 0.

Therefore it is highly recommended to set the CATIA shared libraries permissions to 555 ( STEPLIB )
as well as any new customer shared library built with GII or IUA.

12.2 The S T E P L I B Environment Variable


The STEPLIB environment variable is used by CATIA to search for the modules (shared libraries) that
are dynamically loaded. It is important to have this variable properly set-up so that CATIA look up the
local directories first before going to the NFS mounted directories. For example:

STEPLIB=/local/catusr/steplib:/nfs/server/catusr/steplib
is much better than
STEPLIB=/nfs/server/catusr/steplib:/local/catusr/steplib

12.3 The S H L I B P A T H Environment Variable


As you all know by now, CATIA is architected around the model of dynamic loadable modules. This is
implemented via shared libs on HP-UX. By default, the search path for the HP dynamic libraries such
as libc etc, has been set to /lib:/usr/lib. This is not the best setting for PA1.1 CPUs. Fortunately, DS
uses the +s option while building all the CATIA modules. This allows us to change the default path
for the HP-UX libs. Therefore, it is recommended to set the SHLIB PATH environment variable as
follows:

export SHLIB_PATH=/lib/pa1.1:/usr/lib/pa1.1:/lib:/usr/lib

The direct impact is that the pa1.1 version of libf and libcl will be used instead of the pa1.0. versions.

23
12.4 Affected Kernel Parameters
Within approximately five minutes of launching Distributed CATIA, the HP system reports the
following warning messages on a kernel with the default set of parameter values:
"inode table is full"
To avoid this problem, two kernel parameters must be changed: nfile and ninode. The nfile
parameter sizes the System File Table. This table is a system-wide resource which contains one entry
for each distinct file opening. Whenever a new shared library is dynamically loaded for example, a new
entry is added to this table.

The ninode parameter sizes the table of recently used inodes. This table is also kept in memory. Its
purpose is to allow processes to access inodes without having to read from the disk each time. There
is one inode entry used for each file or shared library, regardless of the number of open operations
currently pending on the file. To complete the description, it is important to mention the vnode table
which has a one-to-one correspondence with the inode table. Thus whenever a shared library is
loaded, one entry is added to the inode table provided this is the first loading of that library, one entry
is added to the System File Table, one to the vnode table.

The default size of the System File, the Inode, and Vnode tables are rather small - 734, 606, and 606
respectively. To be able to handle the dynamic load of 3000 shared libraries within a CATIA session,
the following values are reco mmended:
nfile => 3300
ninode => 3250
These numbers are arrived at as follow:
nfile: 300 (default number for System processes ) +3000 (CATIA shared libraries) = 3300
ninode: 250 (default number) +3000 (CATIA shared library) =3250
These values are computed based on the following assumptions
CATIA could load a maximum of 3000 shared libraries during a session,
a CATIA dynamically loaded shared library is never unloaded, and
the number of CATIA files, log, model, etc is negligible compared to the number of active shared
libraries.

Lastly, it is worth noting the RAM impact of the nfile and ninode parameter value changes. Each entry
in the System File Table takes 32 bytes. Each entry in the in-core inode table takes 340 bytes. Each
entry in the vnode table takes 72 bytes. Therefore the impact on the kernel size under the previous
assumptions, is: (3300-734)*32 + (3250-606)*72 + (3250-606)*340 = 1,171,440 bytes. Thus the
properly configured HP-UX kernel requires an additional megabyte of RAM to a Distributed CATIA
session.

24
13 LICENSE MANAGEMENT OF DISTRIBUTED CATIA ON HP
13.1 Netls & Ifor/Ls
Hewlett-Packard and Gradient Technologies of Malboro, MA have a business relationship whereby
Gradient assumes maintenance, development, and marketing responsibilities for the HP NetLS
product. HP NetLS is marketed under the name iFOR/LS by Gradient and is available on multiple
platforms, including HP and IBM.

The HP NetLS run-time license manager, which is functionally equivalent to iFOR/LS, is bundled with
the HP-UX 9.05 operating system. At the next major HP-UX release, the iFOR/LS binary will be
bundled with that OS. Dassault uses Gradient's iFOR/LS developer kit to bundle iFOR/LS with
Distributed CATIA on HP and to generate iFOR/LS keys. This is 100% compatible with the NetLS
run-time on HP-UX 9.05. As part of the relationship agreement between HP and Gradient, HP
customers with license manager defects will continue to contact the appropriate HP Customer support
center. I t is worth noting however, that among the services which Gradient provides are training and
consulting to end-users with special license management concerns, such as making license
management servers more fault tolerant, putting in-house-developed applications under license
control, etc... For these purposes, Gradient should be contacted.

13.2 License Management Scenarios


Distributed CATIA support two licensing schemes:

1 Concurrent-access (floating) license - This type of license is not restricted to any particular
node or nodes, but is based on the number of licenses ordered for a product. Access is
managed by one or more NetLS/iFORLS server daemons on the network.

2 Node lock license - This type of license is computed specifically for a CPU or an HP license ID
module. The target ID must be furnished in order to obtain the appropriate license key. To
retrieve the target id for a CPU, execute the following command:
/usr/etc/netls/ls_targetid

It is recommended that node lock licenses be used for standard CATIA product configurations
expected for constant use. Floating licenses are recommended when additional products need to be
used infrequently. Consult the CATIA Solution Installation Guide for more detail.

13.3 Heterogeneous License Management: H P-U X / A I X


Distributed CATIA customers running on IBM/AIX workstations are likely to use one of two license
managers - iFOR/LS or RLM. Customers running Distributed CATIA 4.13 or earlier use RLM. 4.14 is
the first release where both RLM and iFOR/LS are offered as license managers on AIX. Distributed
CATIA on HP-UX on the other hand has one choice for license manager - iFOR/LS

Heterogeneous license management refers to a floating license scheme where one workstation, AIX or
HP-UX, act as a license server to a mix of HP-UX and AIX CATIA workstations. The one requirement is
that both workstation types use iFOR/LS as their license managers. Thus iFOR/IS provides a high
degree of flexibility for CATIA sites who need to manage heterogeneous Distributed CATIA nodes.
This requires that the AIX nodes be upgraded to a) Distributed CATIA Version 4.14 from 4.13 or earlier,
and b) iFOR/LS from RLM. The CATIA product on HP complies with both conditions.

Note that, in order to move the license server from one workstation to another, a new set of floating
license keys would need to be generated, as the license keys are computed based on the target id of
the server. Refer to the CATIA installation guides for additional information on this topic.

25
14 CATIA PROGRAMMING DEVELOPMENT ENVIRONMENT - GII/IUA
14.1 Introduction
With CATIA's customization capabilities, many customer have invested large amount of resources
developing add-on CATIA applications specific to their design environment. This facility is known as
Graphics Interactive Interface (GII) and Interactive User Access (IUA). GII for example allows the
user to add new push button in the CATIA GUI which performs a custom function. IUAs have more of
a command line interface.

For some customers, these add-on applications, largely on mainframe CATIA, constitute their
intellectual property and they see them as indispensable. The saying goes "If the Core CATIA product
is the engine, the customized CATIA add-on applications make up the rest of the airplane". One sees
two trends among these customers. In the short term, migrate these add-on applications to the
workstation. Longer term, abandon them altogether and have Dassault or third-party software vendor
incorporate the needed specialized functionality into the core Distributed CATIA software.

It is in the migration activity that many CATIA users/developers, for the first time, are exposed to
UNIX development and management tools not available on the mainframe. Because of the on-going
requirement to maintain and enhance existing applications, and to develop new ones, software
development is a key concern of many CATIA sites. Advanced features available in the HP Softbench
and xdb tools have shown to be immensely beneficial to developers migrating applications in the UNIX
environment. A well tailored Softbench implementation can provide significant productivity boost to
developers migrating to UNIX.

14.2 H-P Software Tool Requirements


The bare requirements are the FORTRAN and C compilers. See the compiler sections elsewhere in
this document for version numbers. The XDB or DDE debuggers are useful. And Softbench is very
useful. CATIA documentation have a lot of information on GII and IUA development. Two things
worth remembering:

1 GII and IUA applications are developed using shared libraries. Thus the +z compiler option is
used. The resulting shared objects, just as all of the core CATIA shared libraries, need to
have their file mode changed to read/execute using the "chmod 555" command.

2 When building the executable, the f77 command should be used to bind the shared objects.
When this is done, the /bin/ld loader is called implicitly, and a number of necessary
FORTRAN libraries are automatically linked. Moreover, f77 option -WI,-ldld should be the
last option on the f77 line to bring in the dynamic loader.

14.3 Example
A typical compiler command line is:

26
To see exactly what the compiler and linker are doing, add the -v option:

<mr_t>/disc0/mr_t/ds/ftn 7=> f77 +z -v -o K1 k1.f -Wl,-ldld


LPATH is: /lib/pa1.1:/usr/lib/pa1.1:/lib:/usr/lib
/usr/lib/f77pass1 --h -Oq00,al,ag,cn,Lm,sz,Ic,vo,lc,mf po,es,rs,sp,in,pi,fa,pe,Rr,Fl! k1.f kl.o
k1.f:
xlnvol:
entry xlnvol:
MAIN:
/bin/ld -x /lib/crt0.o -Fb /usr/lib/uf77pass1 k1.o -ldld -lcl -libisamstub -lc -o K1
<mr t>/disco/mr_t/ds/ftn 8=>

This reveals the real FORTRAN compiler as /usr/lib/f77pass1 which is used to compile the source file
(or files), the different libraries which f77 passes to the linker, including the FORTRAN-specific
libraries /usr/lib/uf77pass1 and /usr/lib/libisamstub.sl.

To generate symbol table for the debugger, the -g option would need to be added.

14.4 Debugging G I I And I U A Applications With Xdb


What follow is a step-by-step guide used successfully at a European automotive CATIA customer. The
issue here is to be able to debug a customer developed application that is fully integrated with the
dynamic load mechanism in CATIA. So how can the customer debug his own application through
CATIA?

1- Prepare your compile/build environment for debugging. The "-g" option must be set for the
FORTRAN compiler. One way to set this option can be through the FCOPTS environment
variable as follows:
export FCOPTS="-g"

2- Use the CATIA supplied tools such as 'dcg' to build your application. The net result is actually
a shared library that you will be able to debug. For the purpose of this discussion we will use
CUST_APPLI as the name of the target GII application.
cd /home/catusr/devcatia/gii/CUST_APPLI (where the source code resides)
dcg CUST_APPLI ( will compile and build a shared lib named CUST_APPLI )
my CUST_APPLI /home/catusr/steplib ( move the shared lib to the directory where all
the other applications have or will be moved to ).

3- Since the HP-UX dynamic loader ( /lib/dld.dl ) does require that a shared library use a sI
extension, you must either rename the file or create a soft link to comply to this rule:
cd /home/catusr/steplib
In -s CUST APPLI CUST APPLI.sI

4- Start the xdb session with the following arguments:


xdb -s -1 /home/catusr/steplib/CUST_APPLI.sI /usr/catia/code/steplib where
-> -s: for debugging shared libraries
-> -1: to specify the path to the shared lib for which debug information must be loaded
-> /usr/catia/cfg/code/steplib/: path to the CATIA executable.

5- from the xdb session, start CATIA as:


> r CATIA 64 0 0 0
then your favorite CATIA environment will start.

27
4 In the Tool Start dialog box select PROFILE from the list of tools to start. Click on New
Context... button and set the context of the debugger to the complete path of the CATIA
executable. For example: /usr/lpp/catia/unload/code/steplib/CA1STAAG

5 Press the Start button to start up the Performance Analyzer.

6 From the Main menu select Options:Process Parameters. In Process Parameters dialog box
select "<> Adopt Existing Process".

7 Select the process to be adopted by entering its PID in "Match Expression In ps(1) Listing". If
you don't know the PID , select "View ps listing" and then select the CATIA process to be
adopted. Select "OK".

8 By default Softbench Performance Analyzer does not list the shared library functions in the
profile report. Only the dynamically loaded library will be listed. To list the names of the
library functions in the dynamically loaded libraries the name of the library must be included
in the Sample Collection dialog box. To do so select Options:Sample Collection Parameters
and enter the library name in'Include Libraries Matching Expression'. Press the Add button.

9 Now bring up your application in CATIA and simultaneously press the Collect Samples button
in the Performance Analyzer. You can terminate sampling at any time by pressing 'Terminate
Sampling'. Once the sample set is collected appropriate Profile Report can be generated.

15 CATIA CODE PAGE AND NATIONAL LANGUAGE SUPPORT


The HP version of CATIA Solutions Version 4.1.4 uses the ISO 8859-1 code page for European and
American languages. The AIX version of CATIA 4.1.4 traditionally uses the IBM 850 code page, although
ISO 8859-1 is now supported. Users wishing to share model data between the AIX and HP-UX versions of
CATIA will need to have all models in the ISO 8859-1 code page on the HP. This can be done tranparently
- the IBM 850 translation is done in the background, although there is a processing cost in the time it
takes for the HP system to do the translation in the background. This process can also be done in batch
mode. A number of facilities within CATIA allows for transparent interoperability between the 850 and
ISO 8859-1 code pages. These include CATAIX, CATIMP, and CATDATA. Users should refer to the
appropriate CATIA documentation for further details. The following CATIA PTF is available for code
page: UB16949. There is a good document entitled CATIA Solutions 414 FR4 National Language Support
Administrator's Guide, March 22 1995 that is distributed when this PTF is ordered.

30
16 CATIA APPLICATION ARCHITECTURE PARTNERSHIP
CATIA Application Architecture (CAA) is the term Dassault Systemes uses to describe its collaboration
with a select group of software houses who develop complementary, well-integrated, sector specific
software applications or modules used in conjunction with CATIA. As with other MCAD vendors, these
CAA partners are vital in delivering niche solutions critical to many CATIA customers, but for which
Dassault has neither the motivation nor the ROI justification to develop itself. HP is actively working
with these partners to ensure timely delivery of their CAA applications to the HP platform. For HP
availability information, customers should contact the CAA partner directly. Of course, some CATIA
customers may be using other third party tools which are not part of the CAA program.

16.1 C A A Partner List


The CAA partners include:

Dassault OEM (a.k.a. Original Software Developers)


Mental Images: Image Rendering & Ray Tracing Algorithms
ALEPH Technologies: Rob/Kin Collision Avoidance Algorithms

Manufacturing
RADAN: Sheet Metal Manufacturing
CENIT: PostProcessor, Special Machine Programmation, Simulation
IAMS: Feed and Speed Cutting Condition Tables
CGTech: Material Removal Simulation

Analysis
MOLDFLOW: CAT-MF Plastic Mold Injection Analysis
CADSi: Dynamics (CATDADS) and Stress Analysis (POLYFEM)
MSC/PDA: Finite Element Analysis (CATEXPRESS, CAT_FEA)

Machine Manufacture
MIECO/MISEC Robot builder from Matsushita Group

Design Automation
DEBIS: Large Tool Die Design
ICAD: Knowledge Based Engineering Design Tool Generator

Electric Device Engineering


MENTOR GRAPHICS: E3LCABLE access to Lcable Schematics

AEC Solutions
Stone & Webster: 'COMMANDS'
DVO: Vessel & Pipe Catalog
Georgia Tech: GTSTRUDL structural analysis

An up to date list can be obtained from your CATIA service representative. Thus in addition to the
core CATIA products developed by Dassault, the production environment of a CATIA customer may
include a suite of in-house developed GII and/or IUA applications, as well as a number of third party
CAA applications.

3I
16.2 Application Prerequisites On H-P
A number of CAA partners are already running on HP. The first four applications below includes some
who have specific prerequisites for the HP platform, the last one shows prerequisites for a CORE
CATIA module. These are:

1 CATIA,IGES interface - requires Version 2.2 of IBM IGES processor for HP

2 CATIA/CADAM coupler product - requires ProCADAM Version 3.5

3 CATIA.ANSYS Interface Product - requires PREP V7.4-4

4 CATIA.NASTRAN - requires MSC/NASTRAN release 66

5 CATIA.Data Management run time product - requires ORACLE Version 7 Release 1.3 patch
237398, with C PRO*C, SQL*NET, and TCP/IP interface, or DB2 V2R3 on the host mainframe
with CATIA Distributed Services.

17 USE OF REMOTE X DISPLAY


Distributed CATIA supports a number of remote display scenarios on HP. This include X-terminals,
remote workstation with an Xserver. Due to networking and graphics performance issues, this is not a
recommended mode of operation for performance conscious environments.

17.1 Environment Variable Settings


Since the Xlib protocol is used, the best result requires that the Distributed CATIA server system has
no more than 8 graphic planes. Special tuning was done on the VMX driver to enhance interactive
performance. The following environment variable should be used:
HP_VM_DB_READBACK_CTL=HP_VM_DISABLE_DB_READBACK
export HP_VM_DB_READBACK_CTL
This environment variable will prevent a frame-buffer-read from occurring across the network during
some double-buffer operations. The following environment variable requests the VMX driver:
PHIGS_OUTDRIVER=hpvmx
export PHIGS_OUTDRIVER
Note that HP-PHIGS will fail if the device is not an 8-plane device.

17.2 Minimum Color Usage


The combined number of colors used by VUE and Distributed CATIA can easily exceed the 256 colors
available on an eight-plane system. To minimize the instances of color flashing likely to be found on
an eight-plane system, the following should be done:

1 From the VUE front panel, select the color usage icon and select "Low color"

2 Edit the /usr/vue/config/Xsession file


- Find the line containing the xinitcolormap command and make sure it is commented out
- Insert immediately following that line:
(cd /usr/lib/phigs; xinitcolormap -f sharedcmap) for single color map devices, and
(cd /usr/lib/phigs; xinitcolormap -f xmodesharedcmap) for CRX adapters.

3 Logout and restart fe xserver from the login prompt

32
18 CATIA ADMINISTRATION
18.1 Installation
There is a 190-page Distributed CATIA installation guide for HP workstation. It has all the information
needed to install CATIA on HP. Refer to document number SH52-1091-12. The CATIA product
hierarchy consist of the Configuration Product from the top, followed by Marketing Products, followed
by Software Products. There is the concept of Product Information File which consists of the Delivery
Information File (product content information) and the Run-time Information File (specifies product
coherence and compatibility requirements). Functional Releases may contain major new
functionality, while Maintenance Releases contain defect resolutions.

18.1.1 Hardware Prerequisite


CATIA Solutions Version 4.1.4 is distributed on 4mm DAT drive. The HP system need to have
access to that device.

18.1.2 Software Prerequisite


Dassault uses the installation tool "catinst" to load software on the HP system. catinst is built using
C++, therefore the shared library /usr/lib/ libC.ansi.s l is required to run the tool. HP allows all
channel partners using C++ to distribute IibC.ansi.sl with their application. If the customer does
not already have C++ loaded on the target system, the libC.ansi.s l file can be copied from the
Distributed CATIA distribution, tape, CD, or other system, and put in the /usr/lib directory.

You will get the following error if libC.ansi.s l is not installed:


/lib/dld.sl: Can't open shared library: /usr/lib/libC.ansi.sl
To retrieve it from a Distributed CATIA tape, do the following:

1 Extract the first partition of the tape by executing % tar xv - This is the normal first step in an
installation which brings about 10 files into your system, including libC.ansi.sl.

2 Copy as follow: % cp -p $CAT_UNLOAD/code/lib/ libCansi.sl /usr/lib/libC.ansi.sl where


$CAT_UNLOAD is the CATIA unload directory.
Running catinst will then allow you to proceed with the installation.

18.2 H P And Catia Installation Check List

1 Install HP-UX 9.05 and specify the appropriate device swap. If your system was ordered with
"Instant Ignition", i.e., with the HP-UX 9.05 operating system already installed, verify that
there is adequate swap space. If not, either re-install the O.S., add device swap to an empty
disk drive attached to the system, or add file system swap.

2 Configure kernel parameters with appropriate values using sam

3 Install HP-PRIGS 3.05 with "Options/No Windows" if it is not already installed

4 Install the required graphics patches if they are not already installed

5 Install FORTRAN and/or C compilers for GII/IUA programming

6 Install CATIA

33
18.3Packaging Catia
Distributed CATIA coming from a DAT tape is installable one system at a time using a DDS drive.
There currently are no means to distribute the software to more than one system at a time unless you
have multiple DDS drives, tapes, and a lot of extra time. To work around this problem, the following
was implemented at a pilot site so that multiple systems could have their CATIA software updated
simultaneously. This does assume a distributed environment with a Netdist server or a workstation
that can act as a Netdist server with extra disk.

The following method of packaging CATIA was useful for distributing the CATIA product across
several HP workstation. It significantly reduces update of new CATIA revisions. This is fairly simple
yet maintains the integrity of the Distributed CATIA license management. In this implementation, al
modules on the tape are installed. This can be modified by creating a tar image for each module (or
group of modules) that users need and use those images as the different file partitions in the psf file.
Then you would need a post installation script to scan the directory structure to find out which
modules are in the structure on the client, and use this information as input into wfunload command
for CATIA specific customization. This would involve a lot of rework each time a new version of
CATIA is released.
There are different netdist ports running for the core(9050), patches(9051), and apps(9052). These ar
the ports that you connect to on the netdist server when running update from the client. The netdist
directory structure goes as follow:

18.3.1 Packaging Procedure


1. Install CATIA on a workstation of choice and make sure it is up and running once installed.

2. Make a tar image of the installed CATIA software and then compress the tar image.
(tar cvf /usr/catia /tmp/cat414.tar )
( compress /tmp/cat414.tar )

3. Create a psf file that fpkg can be run to create an update image of the compressed CATIA tar
i mage. The following is an example of what a psf.file might look like:

34
4. Create the /tmp/post414.install customize file that is intended to automatically execute once the
CATIA structure is in place. This should include all steps that uncompress, tar and then manually
run the CATIA install program to non-interactively customize the CATIA environment. The easiest
way to find out the options for the customization of CATIA is to look in the catinst.script file that
was created when the initial customization was done and copy that script into the post414.install
script. The following are the commands to include - there can be more. Logic to do checking for
existing directories, files and so on should be done before executing this script.
uncompress /tmp/cat414.install.Z
tar xvf /tmp/cat414.install
/usr/catia/unload/code/bin/code/bin/wfunload -d... # this does the customized CATIA install
rm /tmp/cat414.install

5. Now run fpkg to make the update image of CATIA. The following is an example of a fpkg
command to use:
fpkg -m tape -a /tmp/cat414.updt -S 700 /tmp/psf file

6. Once step 5 is completed, the /tmp/cat414.updt can be used by the updist command to load into
the Netdist server for distribution.

35
19 UNDERSTANDING MEMORY AND SWAP
There are some confusion regarding configuration of swap space, swap's relationship to physical memory,
kernel parameters affecting memory allocation, and performance implications. It is important to
understand how a virtual memory operating system works in order to determine the optimal settings for a
given situation.

19.1 Memory Management


Memory is high-speed data storage, implemented using various hardware devices on the HP-UX
system. Each device stores and retrieves data.

The data and instructions of any process (a program in execution) must be available to the CPU by
residing in physical memory at the time of execution. RAM, the actual physical memory (also called
"main memory"), is shared by all processes. To execute a process, the kernel executes through a
per-process virtual address space that has been mapped into physical memory.

The term "memory management" refers to the rules that govern physical and virtual memory and allow
for efficient sharing of the system's resources by user and system processes.

Figure 4

Memory management allows the total size of user processes to exceed physical memory by using an
approach termed demand-paged virtual memory. Virtual memory enables you to execute a process by
bringing into main memory parts of the process only as needed, that is, on demand, and pushing out to
disk, parts of a process that have not been recently used.

36
The HP-UX operating system uses a combination of swapping and paging to manage virtual memory.
Swapping involves moving entire processes between main memory and disk, whereas paging involves
moving smaller units (called pages) between main memory and disk.

19.2 Physical Memory


Physical memory, or RAM, usually consists of memory cards that plug into the computer's backplane.
For the CPU to execute a process, the relevant parts of a process must exist in RAM.

The more main memory in the system, the more data it can access and the more processes it can
execute without having to page or swap. This is because the system can retain more processes in main
memory, thus requiring the kernel to page less frequently. Each time the system has to page or swap
there is a performance cost since the speed of reading or writing to disk is much slower than
accessing RAM.

Not all physical memory is available to user processes. The kernel (/hp-ux) always resides in main
memory (that is, it is never swapped), occupying approximately 5 MB on a Series 700 system. The
amount of main memory not reserved for the kernel is termed available memory. Available memory
is used by the system for executing user processes.

19.3 Secondary Storage


Main memory (RAM) stores computer data required for program execution. During process execution,
data resides in two faster implementations of memory found in the processor subsystem, registers and
cache. Program files are kept in secondary storage or secondary memory, typically disks accessible
either via system buses or network. Data is also stored when no longer needed in main memory, to
make room for active processes.

19.4 Swap
A temporary form of secondary data storage is termed swap, dating from early UNIX implementations
that managed physical memory resources by moving, swapping, entire processes between main
memory and secondary storage. In addition to swapping, HP-UX uses paging, a more efficient memory
resource management mechanism for virtual memory.

While executing a program, data and instructions can be swapped (copied) to and from secondary
storage, or disk, if the system load warrants such behavior. Swap space is initially allocated when the
system is configured. Device swap is allocated on the disk before a file system has been created and
can take the following forms:
* an entire disk
* a designated area on a disk
* a software disk-striped partition on a disk
If the entire disk has not been designated as swap, the remaining space on the disk can be used for a
file system. You can also configure a file system so that remaining space not used for files is used for
swap; this is termed file-system swap. If more swap space is required, it can be ad dynamically to a
running system, as either device swap or file-system swap. Device swap can only be added
dynamically to an unused disk since any file system on the disk is destroyed when the swap area is
allocated.

The swapon command is used to allocate disk space or a directory in a file system for swap. NOTE:
Once allocated, swap cannot be removed without rebooting the system.

37
19.5 Virtual Address Space
Virtual memory uses a structure for mapping processes termed the virtual address space. The virtual
address space contains information and pointers to the memory that the process can reference.

One virtual address space exists per process and serves several purposes:

It provides the overall description of each process.


It contains pointers to another element in the memory management subsystem per-process regions.
(pregions)
It keeps track of pregions most recently involved in page faults.

Each HP-UX process executes within a 4-gigabyte virtual address space. The virtual address space
structure points to per-process regions, or pregions. Pregions are logical segments that point to
specific segments of a process, including code (text, or process instructions), data, u_area and kernel
stack, user stack, shared-memory segments, and shared-library code and data segments.

Allocation of memory segments is controlled by the values assigned to certain configurable kernel
parameters. It is beyond the scope of this paper to discuss all the process virtual memory segments.
The following, however, is a description of the segments most relevant to Distributed CATIA.

Text - The text segment holds a process's executable object code and may be shared by
multiple processes. In the case of Distributed CATIA, this is the Pro/E program. The
maximum size of the text segment is limited by the configurable operating-system
parameter maxtsiz.

Data - The data segment contains a process' initialized and uninitialized data structures (bss).
In the case of Distributed CATIA, this is primarily the model data. It can grow as needed
by a program's run-time logic. The total allotment for initialized data, uninitialized data
and dynamically allocated memory can be changed by the configurable operating-system
kernel parameter maxdsiz

Stack - Used for dynamic allocation of space for local variables, subroutine return
addresses, kernel routines, etc. The u_area contains information about process
characteristics. The kernel stack segment, which is in the u_area segment, contains a
process's run-time stack during kernel mode. Both u_area and kernel stack segment are
fixed in size. Space available for remaining stack use is determined by the configurable
parameter maxssiz.

Shared Memory - Address space which is sharable among multiple processes.

19.5.1 Configurable Parameters


HP-UX configurable kernel parameters limit the size of the text, data, stack, and shared-memory
segments for each individual process. These parameters have pre-defined defaults, but can be
reconfigured in the kernel. They may need to be adjusted when swap space is increased. This is
discussed in more detail in the section on configuring the HP-UX kernel.

maxtsiz Limits the size of the text (code) segment.


maxdsiz limits the size of the data segment.
maxssiz Limits the size of the stack segment.
shmseg Limits the number of shared memory segments that can be attached to a process.
shmmni Limits the number of shared-memory identifiers.

38
19.5.2Series 700 Address Space
In the Series 700 workstation, the four gigabyte virtual address space is divided into four one-GB
quadrants. Each quadrant has several segments associated with it.

1 The first one-GB quadrant always contains the process's code, text segment, and sometimes
some of the data (data segment).

2 The second quadrant contains the data segment and stack (static data, stack, and heap).

3 The third quadrant contains shared memory, shared mapped files, and shared library code.

4 The fourth quadrant contains shared memory segments, shared memory-mapped files, shared
library code, and 1/O space.

Figure 5

39
20 PHYSICAL MEMORY VERSUS PERFORMANCE
Technically, there is no such thing as too little physical memory. The amount of memory available to
Distributed CATIA is determined by the amount of swap configured, not by physical memory. The size of
physical memory determines how much swapping and paging will be done while Distributed CATIA is
running. Swapping and paging imposes a performance penalty because memory is being moved between
physical memory and secondary storage, or disk. The more time is spent swapping and paging, the slower
the performance. There is a critical threshold for physical memory size below which the system spends
almost all its CPU time swapping memory to and from disk. This is known as thrashing and is evident by
the fact that system performance virtually comes to a standstill and even simple commands, like ls, take a
long time to complete.

Optimally, all operations would be done in physical memory and swapping would never occur. Memory is
expensive, however, so there is usually a tradeoff made between budgetary constraints and the minimum
acceptable performance level. Understanding how memory size affects performance, however, can help
you make sure you are maximizing your expenditure on memory and not buying more memory than you
need.

20.1 Where Is The Memory Going


To help you understand the minimum memory configuration, it helps to understand how memory is
consumed. On a standalone engineering workstation used as a dedicated Distributed CATIA seat, you
will minimally have the following memory consuming resources:

1 HP-UX Operating System 5MB

2 Windowing System (X11 or VUE) 21MB (X11) 25MB (VUE)

3 Distributed CATIA 25MB

4 Part/ Assembly data ??? (varies depending on user requirements)

Any other processes or services running on the workstation, like the license server will consume
additional memory resources. As you can see, if you add these up, before you even load the first part
you are already consuming approximately 45 - 50 MB of memory. On a 32 MB system, it impossible to
fit everything into physical memory. Fortunately HP-UX uses a paging algorithm to move data in and
out of physical memory. The only data that is not subject to paging is HP-UX. Out of the 50MB of
executable code in VUE and Distributed CATIA, you will not be using all of it at any given time. Since
code will be paged out if it is not used, and there are many functions in both Distributed CATIA and
VUE that you may seldom or never use, there is some percentage of the executable code that will be
paged out and never, or very infrequently, paged back in.

20.2 Determining Appropriate Physical Memory Size


There are a couple of ways to determine whether the amount of physical memory in your system is
adequate. The first is to run a series of timed benchmarks on systems with increasing levels of
physical memory and determine the impact of additional memory on those operations. Another way is
to use HP's Glance Plus tool to monitor the system operation. It will tell you the level of paging and
you can determine whether this is excessive. The only accurate way to determine the optimal memory
size is to perform timed benchmarks using real data. Memory size also has a performance impact on
graphics display operations such as shading and viewing.

40
21 HP-UX CONFIGURATION

This section explains in greater depth HP-UX configurable software settings and parameters that affect
system capacity and performance.

21.1 Kernel Configuration Parameters


The kernel is the software core of BP-UX and is the part of the operating system that deals directly
with the hardware. The kernel also manages the low-level functions for the operating system and
insulates the operating system from the details of the hardware.

Figure 6

21.2 Maxdsiz And Its Affect On Memory


Configurable kernel parameters affecting memory were described in the section of this document
entitled Virtual Address Space. The most important configurable kernel parameter affecting
Distributed CATIA memory usage is maxdsiz. As mentioned previously, maxdsiz limits the amount of
virtual memory available for the data segment. By default, this parameter is set to a value of 67 MB. On
average, approximately 90% of Distributed CATIA's virtual memory usage is for data. This means that
even though you may have a large amount. of swap configured, you can still run out of memory
because the maximum data seginent size is exceeded. As a general rule, maxdsiz should be set to a
value equal to 90% of the total swap configured.

41
21.3 Parameters Which Affect I/O
There are two configurable kernel parameters related to disk I/O that can improve performance of
Distributed CATIA part, and assembly, load and save. The first is bufpages. Bufpages controls the
amount of memory HP-UX uses for disk buffer cache. Disk cache is a buffer in physical memory that is
used to temporarily store data as it is read from and written to disk. Use of a buffer cache significantly
i mproves disk I/O performance. However, the physical memory devoted to disk buffer cache is taken
away from the memory available for Distributed CATIA. By default, HP-UX is configured to use
dynamic buffer cache. This means that the amount of physical memory allocated to buffer cache
varies depending on an operating system algorithm. Benchmarks have shown that disk I/O
performance during part load and save can be improved by around 20 % by limiting the buffer cache to
a fixed size equal to 10% of the total physical memory rather than using the dynamic allocation. If
bufpages is set to zero, the system uses dynamic buffer cache. If it is set to a value, the value specifies
a fixed disk buffer cache size.

Bufpages specifies the number of pages allocated to disk buffer cache where one page is equal to 4K,
or 4096 bytes. To determine the correct bufpage value, take 10 % of the total physical ram size divided
by the page size. For example, to configure a system with 64MB of memory:
64,000 K physical ram / 4K per page / 10 (percent) = 1600
The second configurable parameter affecting disk I/O performance is fs _async. Fs_async is described
in the sub-section entitled Enable Asynchronous I/O.

21.4 Fast Link Parameter


The CATIA installation procedure creates a lot of symbolic links. These links are read during the
lookup of the CATIA modules and files. To speed up the CATIA files lookup, you could tell the hp-ux
kernel to use what is called "fast symlinks" for these symbolic links. There is a kernel parameter
named create_fastlinks which when set to a non-zero value, causes the symbolic link creation to
change so that one extra disk block access is avoided during the lookup. By default, this kernel
parameter is set to zero. There is no need to newfs the disk. Fast links and normal links can coexist on
the same HFS disk. Also, these links are visible from another node via NFS.

22 NETWORKING CONSIDERATIONS
22.1 Introduction
The name distributed CATIA (without the big D) connotes a networked environment. Virtually all
CAD installations today use some form of local area network to facilitate sharing of model database
and to simplify system management. Assembly design, by its nature, can be a very "distributed"
activity. Thus the configuration, bandwidth, load, and management of the network has a definite
impact on the responsiveness which a user sees seating at a Distributed CATIA station.

Most installations use NFS to mount a remote disks so they appear local to the user. The automount
is also quite prevalent. This enables the engineer to load parts and/or assemblies from any disks on
the network as easily as from. a local disk. This convenience imposes a performance penalty however,
because the I/O bandwidth for accessing data over NFS is less than that for a directly connected disk.
There are a few system configuration recommendations that can be made to maximize the
convenience that NFS and the local area network provide while minimizing the performance penalty.

22.2 Rules To Live By

42
The following set of rules, when adhered to, enhances the performance of Distributed CATIA in a
networked environment.

Rule number one: Install the latest HP-UX NFS patch. HP periodically releases patches that correct
problems associated with NFS, many of them performance related. If you are using NFS, you
should make sure the latest patch is installed on both the client and server.

Rule number two: Keep the user's working directory and the Amp directory on a local disk. During
a CATIA session, temporary files can be written and read several tames in Amp (by default) or in
the user's working directory. While it may be more convenient from a system administration point
of view to have all users' home directories on a centralized server, performance will be improved if
these directories are local.

Rule number three: Install Distributed CATIA on the local disk. Again, it is easier from a system
administration standpoint to install a single copy of Distributed CATIA on a file server and have all
users share that copy, but this has a negative impact on performance. If you must install
Distributed CATIA on an NFS mounted disk, set the sticky bit on the Distributed CATIA executable
with the following command:
chmod +t $CATIA/code/steplib/CATSTAR
This forces the system to swap the text segment to the local disk. Otherwise, it is swapped across
the network.

Rule number four: Keep active part files on the local disk. If possible, keep any part files on the
local disk while being modified and then copy them back to the file server when done. Part load
times are faster if the part is stored locally.

22.3 The Sticky Bit


In the case where the CATIA code is executed over an NFS server, it is highly recommended that the
'sticky bit' be set so that the Distributed CATIA code is copied onto the local swap device rather than
being paged over the network -15% to 20% performance boost have been observed. To set the sticky
bit, execute the following command to the Distributed CATIA executable:
% chmod +t $CATIA/code/steplib/CATSTAR

22.4 Network Management Tool


HP supplies the OpenView network management tool which has shown to be effective in managing
networked environments at medium to large installations.

43
23 CATIA/HP CONFIGURATION CHECKLIST
This is a checklist of configuration parameters that is include to provide a quick and smooth start up of
Distributed CATIA on HP-UX.

23.1 H-P Model


To check the model of your system, run the command "model". Another command is "uname -a".

23.2 Operating System


Use "uname -a" to check the operating system. It should be either HP-UX 9.05 or 9.07.

23.3 Graphics Software


The HP-PHIGS 3.0 product needs to be installed on your system. A quick way to check if HP-PHIGS is
installed on your system is to execute the following command: "11 /etc/filesets/PHIGS-RUN". If this
file exist, then there is a very good chance PHIGS is installed. If not, you need to request HP product #
B2364E. Of course it is always better to order this product before the hardware arrives. You need to
follow two procedures depending on which operating system you are running CATIA:

1 HP-UX 9.05 - You must specifically request the HP 9.05 version of the PHIGS product, either
on CD-ROM or DAT media. You must also request for the patches outlined in the Patches
Needed for HP-UX 9.05 Systems section of this document. Following installation of
PHIGS and patches, verify the installation as shown in the patch section.

2 HP-UX 9.07 - You must specifically request the HP 9.07 version of the PHIGS product, either
on CD-ROM or DAT media. NO HP-UX graphics patches are required for Distributed CATIA
Solutions Version 4.1.4 at 9.07! Verify that you have the correct graphics version as shown in
the Patches Needed for HP-UX 9.07 Systems section of this document.

You should also see to it that the Powershade software is installed using the "graphinfo" command.

23.4 Graphics Hardware


The command "graphinfo" provides a load of information about the graphics subsystem of your
workstation. Among the information it furnishes are the hardware device name, different graphics
capabilities of that device, whether Powershade is installed, etc...

23.5 Compilers For Gii/Iua


For GII or IUA programming, you need at least a FORTRAN compiler. This compiler should be the
same level or later as the one in the HP Software Configuration/Compilers section.

23.6 H-P Patches/Ptfs


At HP-UX 9.05, two graphics patches are required. They are PHSS_5100 and PHSS_5104. These
patches must be installed on top of the HP-PHIGS product. See section on HP-UX Patches for
installation details. No patches are needed on HP-UX 9.07 for CATIA Solutions Versions 4.1.4.

44
23.7 Swap Space
An adequate amount of swap space is required in order to get CATIA to run on HP. The amount
should be 264MB at minimum. To check the swap configuration on your machine, login as root and
execute the command "/etc/swapinfo -t". If you need additional swap space, follow the instructions
in the Swap Space Consideration section of this document.

23.8 Memory Requirements


A minimum of 64MB is recommended to run Distributed CATIA on HP. To check the memory
configuration, login as root and execute the command "/etc/dmesg". At the bottom of the output is
shown the amount of memory on the system. See the discussion on Memory Considerations in this
document.

23.9 Kernel Requirements


A number of kernel parameters need to be increased to accommodate the requirements of CATIA on
HP workstations. The affected parameters and their values are:
maxdsiz = 256MB or more
maxtsiz = 128MB or more
nfile = 3300
ninode = 3250
To check these values, login as root, execute "sam" , select "Kernel Configuration", then "Configurable
Parameters", and examine and change these parameters as appropriate. A more detailed discussion of
this topic are in the HP Kernel Configuration section.

24 ACKNOWLEDGMENTS
A number of people contributed to this document. Among them, Yvon Queromes of HP France who
contributed some of the CATIA specific process information and GII/IUA debugging from both sides of
the Seine at Dassault and a customer. Joel Burklund, Michael Barrat, and Rajesh Belavadi of HP Bellevue
who contributed the CATIA packaging and Softbench implementation. Guy Bertrand of HP Canada who
supplied some of the remote display and installation information. Joe Junker of HP Phoenix who
supplied much of the motivation for an expanded license manager section. The Graphics Software Lab in
Fort Collins for providing graphics information. A number of people at Dassault Systemes who exercised
uncharacteristic patience for my numerous questions. Garry Howard of HP Burlington for providing his
document on which this one is based, including much of the generic OS and product information. All the
other HP PSO consultants who worked tirelessly at Distributed CATIA/HP pilot and demo sites. Various
parts of this new revision would not have been possible were it not for the numerous feedback and
suggestions from CATIA suppliers, IBM/ETS CATIA support, and, yes, a few customers. In as much as I
am tempted to say otherwise, all errors, misstatements, etc... are my responsibility. I would like to thank
in advance, readers of this paper for their comments on the material presented and any suggestions
(constructive, please) they may have for improvements.

45

Você também pode gostar