Parallel Processing Users Guide
Parallel Processing Users Guide
1
Proprietary & Restricted Rights Notice
© 2007 UGS Corp. All Rights Reserved. This software and related documentation are
proprietary to UGS Corp.
NASTRAN is a registered trademark of the National Aeronautics and Space
Administration. NX Nastran is an enhanced proprietary version developed and
maintained by UGS Corp.
MSC is a registered trademark of [Link] Corporation. [Link] and
[Link] are trademarks of [Link] Corporation.
All other trademarks are the property of their respective owners.
2
CONTENTS
Page
3
PREFACE
This main material in this book covers the parallel processing methods for the linear
static, normal modes, direct frequency response, modal frequency response, modal
transient response, and design optimization.
Introduction
To effectively use this book, it is important for you to be familiar with the basic structure
of NX Nastran. For more information about the mathematical foundation, refer to NX
Nastran Numerical Methods User’s Guide.
4
Chapter 1
FUNDAMENTALS OF PARALLEL PROCESSING
In many applications today, the volume of analysis is going up, the physics being
modeled is increasingly complex, and the time allocated to development is under
increasing pressure. Therefore, researchers always need higher processing speed and
more memory in order to investigate increasingly complex problems. Optimization
of processes and data flows helps, but there are still limitations on computational
performance in serial computation.
5
SISD SIMD
6
• Distributed Memory Parallel (DMP) Machines
7
Differences between DMP and SMP
The differences between DMP and SMP are listed in the table below.
Ts
Sp = = E* p
Tp
where Ts is the time to run a serial job, and Tp is the time it takes to run the same job
with p processors.
Ts
E=
( p * Tp )
8
Domain Decomposition for Parallel Processing
Undivided Subdivided
9
1.2 NX Nastran Parallel Solution Methods
NX Nastran offers the ability to run certain solution sequences in parallel. The following
solution methods are available for running NX Nastran in parallel.
For various NX Nastran parallel solutions, the following computational methods are
available.
10
Chapter 2
RUNNING PARALLEL NX Nastran SOLUTIONS
NX Nastran parallel methods achieve their solution speed by dividing the FE model into
smaller pieces to be solved simultaneously. This division, called “hierarchic”, is
performed with respect to geometry or frequency range individually or both at the same
time. Although each processor is working on its own partition of the geometry or
frequency range, it communicates with the others to share information. Once the solution
is complete, the results are merged, creating a single result file.
NX Nastran DMP methods are available with solution sequences 101, 103, 108, 111, 112,
and 200, in which DMP methods for SOL 200 are available from version 5. The SMP is
used only for lower level operations such as matrix decompositions and matrix
multiplications for all solution sequences. Most of the discussions and examples in this
book focus on the DMP computational methods and solution methods.
11
2.1 Parallel Processing Status in NX Nastran
Parallelization in NX Nastran
The parallelization process in NX Nastran consists of three different categories: high
level with DMP, medium level with DMP, and low level with SMP.
Level Application
DMP High level Hierarchic domain
For the mathematical details of various parallel methods, refer to the NX Nastran
Numerical Methods User’s Guide.
Further information on the MPI standard is available online at the MPI forum website:
[Link]
12
2.2 DMP System Prerequisites in NX Nastran
• HP UX Itanium
• AIX Power
• Linux x86
• Linux Itanium
• Linux Opteron/EM64T
• SGI Altix Itanium
Note that NX Nastran DOES NOT support DMP for Windows system.
The detailed requirements of hardware and software are described in the NX Nastran
Installation and Operation Guide.
13
2.3 Running Parallel Jobs
An NX Nastran parallel job can be selected by the nastran command with either
keywords or a system cell. The nastran command permits the keywords, dmp and
parallel, to request DMP and SMP runs, respectively. Alternatively, system cells 231 and
107 can also be used for DMP and SMP runs.
It is strongly recommended to use keywords to request a parallel job. The following table
provides keywords and their descriptions as well as the system cells that can be used for
DMP and SMP runs.
14
2.4 Running SMP Jobs
The following example illustrates how to run an NX Nastran job named ‘[Link]’ in
an SMP environment with p processors.
or
15
2.5 Running DMP Jobs
When running an NX Nastran DMP job, keywords are used to select (1) the
computational method, and (2) the finite element model partitioning method for each
parallel solution sequence.
• The available keywords for computational method are “dmp”, “numseg”, and
“nclust.”
• The keyword for selecting the partitioning method for finite element model is
“gpart”. The default is “gpart=0.”
The following are some general requirements for running NX Nastran DMP jobs.
• NX Nastran must be properly installed on all the hosts listed by the “hosts”
keyword or in the ‘[Link]’ file.
• The “master” node is the first computer named by the “hosts” keywords or listed
in the “[Link]” file, and “slave” nodes are the remaining systems.
• The MPI program start command must be available in the path of the local host.
(“dmpruns” on Compaq, “poe”on AIX, “mprun” on Sun, and “mpirun” on others)
• The input data file must be accessible on the local host.
• The scratch directory can be on a global or local file system. NX Nastran
recommends the scratch directory be local to each node.
• The nastran keywords are processed in both the local and master/slave system.
The detailed requirements of hardware and software are described in the “NX Nastran
Installation and Operations Guide”.
The performance of an NX Nastran parallel job is very much dependent on the CPU,
memory system, and I/O system performance. A DMP job is extremely sensitive to I/O
system performance since each task independently accesses the I/O system. Especially,
the performance of the disk subsystem that contains the permanent and SCRATCH
DBSets can have a significant impact on NX Nastran performance. The impact is even
greater if multiple tasks are using the same file system. It is recommended that the “dbs”,
“hosts”, and “sdirectory” be local to each node.
16
The following example illustrates how to run ‘[Link]’ in parallel with four
processors with “dbs”, “hosts”, and “sdirectory” local to each node.
• The nastran keyword “mergeresults=yes” specifies the results from each DMP
task are to be merged into the standard files from the master node.
When the NX Nastran job is running, the input file is directly read by each MPI task.
Each node that cannot read the input file reads a local copy of the file that is copied to the
job’s scratch directory before the job begins. In order to access another node, “r-”
commands such as rsh, rcp, and rlogin must be available and properly configured on each
node. Similarly, any host that can write to the output directory directly writes
its .f04, .f06, .log and other output files to that directory. Any host that cannot see the
output directory writes its default output files to the job’s scratch directory. These files
are then copied back to the output directory at the end of job.
17
2.5.1 Finite element model partitioning method
In the parallel processing of a finite element application, finite element model data should
be distributed to each processor. There are two different methods for model partitioning
in an NX Nastran parallel processing task: grid-based partitioning and degree of freedom-
based partitioning. The module SEQP performs grid-based partitioning, in which p
domains are created by an automatic partitioner from the grid-based graph. The module
GPARTN performs graph partitioning for the graph based on degrees of freedom.
It should be noted that the module SEQP cannot handle a finite element model that
includes acoustic fluid or virtual mass. In addition, the module SEQP provides poor
performance if the finite element model includes many Multi-Point Constraints (MPCs).
Generally, the module GPARTN gives better performance than the module SEQP. It is
recommended to use the module GPARTN if the finite element model includes many
MPCs, acoustic fluids, and/or virtual masses.
The partitioning method can be selected by the nastran command keyword ‘gpart’ in the
following way.
Module Keyword
SEQP gpart = 0 default
GPARTN gpart= 1
Each module provides two different algorithms for graph partitioning. The algorithm can
be selected by the DMAP parameter oldseq.
18
2.5.2 Parallel Computational Methods
Based on the partitioned finite element model, there are five different types of DMP
computational methods in NX Nastran:
GDSTAT and LDSTAT are for static analysis. The other four DMP methods are for
dynamic analyses.
The overall flow of the finite element model partitioning and parallel computational
methods is illustrated in Fig. 2.1, in which the approaches for SOL 101, 103, 108, 111,
and 112 are described. Fig. 2.2 through Fig. 2.5 describes the modal detailed flow for
each solution sequence. Fig. 2.6 represents the structural optimization DMP task flow.
The shaded boxes at each analysis flow correspond to DMP task.
19
Finite Element Model
SOL 103
GPART=0 GPART=1 SOL 111
SOL 112
SOL 103
SOL 111 SOL 103
SOL 101 SOL 112 SOL 111
SOL 112
FDFREQR
Fig. 2.1 Overview of NX Nastran DMP solution task except SOL 200
20
Linear static analysis DMP task
SOL 101
GPART=1 GPART=0
SEQP
LDSTAT GDSTAT
21
Normal mode analysis DMP task
SOL 103
GPART=0 GPART=1
GPART
SEQP GPARTN
22
Direct frequency response analysis DMP task
SOL 108
FDFREQR
Fig. 2.4 Direct frequency response analysis (SOL 108) DMP task
23
Modal frequency response analysis DMP task
SOL 111
GPART=0 GPART=1
GPART
SEQP GPARTN
FDFREQR
Fig. 2.5 Modal frequency response analysis (SOL 111) DMP task
Note that you do not need to explicitly request FDFREQR in the FDMODES,
GDMODES, and HDMODES runs for SOL 111. For GDMODES or HDMODES, the
FDFREQR will be always executed automatically when “gpart=1” is specified. The
FDMODES does not need to specify the keyword “gpart” to run the FDFREQR
automatically.
24
Modal transient response analysis DMP task
SOL 112
GPART=0 GPART=1
GPART
SEQP GPARTN
Fig. 2.6 Modal transient response analysis (SOL 112) DMP task
Once the normal mode calculation portion is finished in parallel, then the modal transient
response analysis is performed in serial.
25
Design optimization DMP task
SOL 200
INITIAL
DESIGN
ANALYSIS
gpart=1 gpart=0
OPTIMIZATION
IMPROVED
DESIGN
Note that only the normal mode calculation portion of an optimization can now use DMP.
26
• Geometric Domain Static Analysis (GDSTAT)
GDSTAT is available only with the SEQP module, which is the default. The
model in the GDSTAT method is automatically partitioned into p domains based
on geometry, where p is the number of processors. Each domain contains that
portion of the geometry plus the boundary. You can think of geometric
decomposition as an automated super-element approach. The keyword “dmp”
defines the number of processors.
Partitioning module
SEQP nastran example dmp=p
LDSTAT is useful when large numbers of load cases exist. In the LDSTAT, the
large number of load cases are automatically partitioned into p sets of cases,
where p is the number of processors. Each processor runs the static analysis with
its own load cases. Note that each processor contains the full model, so that finite
element model partitioning is not required. The keyword “dmp” defines the
number of processors. The value of the keyword “gpart” shoule be 1.
Partitioning module
nastran example dmp=p gpart=1
Partitioning module
SEQP nastran example dmp=p
GPARTN nastran example dmp=p gpart=1
Note that it is important to use the EIGRL card, not EIGR. In addition, the
number of processors p should be greater than 1. The value of the keyword “dmp”
27
must be an integer greater than or equal to 2, and a power of 2. For example, 2, 4,
8, 16, etc. are valid.
Partitioning module
- nastran example dmp=p numseg=p
- or specify NUMS entry in EIGRL card
For DMP processing, the frequency range between V1 and V2 of EIGRL must be
specified. If both NUMSEG and NUMS are specified, NUMS takes precedence.
Partitioning module
SEQP nastran example dmp=p nclust=c
GPARTN nastran example dmp=p nclust=c gpart=1
Alternatively, there is a way that uses keywords “gdoms” and “fsegs”. The
keyword “gdoms” defines the number of geometric domains used in HDMODES.
The value “gdoms” must be an integer greater than or equal to 2, and a power of 2.
The "fsegs" keyword must also be defined when "gdoms" is defined. The product
28
of "fsegs" and "gdoms" should be the value of the "dmp" keyword. There is no
default value.
Partitioning module
SEQP nastran example gdoms=g fsegs=f
GPARTN nastran example gdoms=g fsegs=f gpart=1
The excitation frequencies, as specified on the FREQi entries, are split among the
processors as evenly as possible, and the responses due to these excitation
frequencies are then calculated within each of the respective processors. Each
processor contains the full model.
Partitioning module
- nastran example dmp=p
Note that, for SOL 111, running a job with GDMODES, FDMODES, or
HDMODES automatically performs FDFREQR without requesting it explicitly.
Performing FDFREQR partitions the excitation frequencies among the number of
processors defined with the “dmp” keyword.
Note that FDMODES, GDMODES, and HDMODES perform the parallel processing task
for the normal mode analysis as well as the modal frequency response analysis only when
the module GPART is used. Without the module GPART, gpart=0, the frequency
analysis part runs in serial.
29
2.6 Parallel Solution Sequences
Several DMP computational methods are available with solution sequences 101, 103, 108,
111, 112, and 200 (ver.5). Table 2-1 shows the available parallel computational methods
for various solution sequences. For details of various solution sequences for DMP, refer
to Chapter 4.
103 O O O
108 O
111 Ox O Ox O*
112 O O O
200 O+ O O+
30
Chapter 3
DMP COMPUTATIONAL METHODS
31
3.1 Foundation of Computational Methods
K ll u l = Pl
where K ll is the global stiffness matrix, Pl is the loads, and u l is the displacements.
The finite element model in the GDSTAT method is automatically partitioned into p
domains, where p is the number of processors. Figure 3.1 shows each domain that
contains the portion of the geometry (O1, O2, O3, or O4) plus the boundary t. Think of
geometric decomposition as an automated super-element approach. After the domain is
partitioned, each processor performs the linear static analysis only on its local domain
with boundary. GDSTAT allows a problem that is not possible to solve on one
processor to be solved in the DMP environment by reducing a significant amount of
disk space and memory.
O1 O2
O3 O4
t
Figure 3.1 Partitioning a finite element model for geometry domain static analysis
(GDSTAT)
32
3.1.2 Load Domain Static Analysis (LDSTAT)
The LDSTAT is useful when there are large number of load cases in the linear static
analysis problem K ll u l = Pl . Instead of partitioning the finite element model, the load
matrix Pl is partitioned among the processors as evenly as possible, and the linear
solution is calculated within each of the respective processors for its own load cases.
The mathematical expression for the linear static analysis can be expressed as:
K ll u k = Pk , k = 1,", p
where p is the number of processors. Once all processors finish its own linear solution,
the master processor collects and forms the overall solution as
u l = [u1 , u 2 , " , u p ]
33
3.1.3 Frequency Domain Normal Mode Analysis (FDMODES)
To analyze the dynamic behavior of the structures, modal solution techniques are
commonly used. The essence of the modal solution is efficient calculation of the
mechanical system's free, undamped vibration. That is the eigenvalue analysis problem
of:
( K aa − λM aa )φ a = 0
Here the eigenvalue λ represents a natural frequency, and the eigenvector φ is a free
vibration shape of the finite element model. The a subscript refers to the a-set, which
is the analysis partition of the finite element model. This is one of the most time
consuming computations of large scale global analyses in the automobile and the
aerospace industries.
Note that each processor contains the full model in the FDMODES computation, so that
the mode shapes in the individual frequency segments are independent of each other.
Figure 3.2 represents the schematic diagram: each processor solves the full model
within its frequency segment. The only communication needed is when gathering the
results for the master processor. Table 3.2 shows the eigensolutions obtained from each
processor.
Although FDMODES reduces the frequency range for a process by decomposing the
frequency domain, it is still ineffective with respect to a large problem size.
34
( K aa − λM aa )φa = 0
Figure 3.2 Frequency domain partitioning for the normal mode analysis of a
whole finite element model
Frequency domain
(Φ 1 , Λ 1 ) … (Φ j , Λ j ) … (Φ s , Λ s )
35
3.1.4 Geometry Domain Normal Mode Analysis (GDMODES)
⎡ K oo
1
− λM oo
1
K ot1 − λM ot1 ⎤ ⎡ φ o1 ⎤
⎢ ⎥⎢ ⎥
⎢ K oo2 − λM oo2 K ot2 − λM ot2 ⎥ ⎢φ o2 ⎥
⎢ % # ⎥⎢ # ⎥ = 0
⎢ p ⎥⎢ p ⎥
⎢ K oop − λM oop K ot − λM ot ⎥ ⎢φ o ⎥
p
⎢ K T ,1 − λM T ,1 T ,2
− λM oo
T ,2
" K oo
T,p
− λM oo
T,p
K tt − λM tt ⎥⎦ ⎢⎣φt ⎥⎦
⎣ oo oo K oo
Table 3.3 shows the eigensolution obtained from each processor, in which the global
eigensolutions are obtained by merging all distributed eigensolutions.
Note that the formulation yields a computationally exact solution. The efficiency
depends on the relative size of the boundaries with respect to the interiors.
36
frequency range
[ fmin fmax ]
O1 O2
O3 O4
Figure 3-3. Geometry domain partitioning for the normal mode analysis of a finite
element model
partition 1 (Φ 1 , Λ )
# #
Geometry
partition i (Φ i , Λ )
domain
# #
partition p (Φ p , Λ )
Note that the geometric domain decomposition is important to reduce the very large
problem sizes, but it does not affect the frequency spectrum.
37
3.1.5 Hierarchic Domain Normal Mode Analysis (HDMODES)
The HDMODES computation is based on the processor assignment shown in Table 3.4,
where we have p * s processors available. For each frequency segment, p processors are
used for GDMODES. In other words, s processors are used for FDMODES for each
geometric portion. For example, the ((j - 1) p+i)-th processor computes the eigenvalues
of the j-th frequency segment Λ j and the i-th geometric partition of the corresponding
eigenvectors Φ ij . The selection of the s and p value is problem dependent.
Note that HDMODES solves the eigenvalue problem computationally exactly as the
GDMODES and FDMODES methods do.
Frequency domain
segment segment Segment
… …
1 j s
partition 1 (j-1)*p+1 (s-1)*p+1
1 (Φ 1 , Λ 1 )
1
(Φ 1j , Λ j ) (Φ 1s , Λ s )
# # # #
Geometry partition i (j-1)*p+i (s-1)*p+i
domain i (Φ , Λ 1 )
i
1
(Φ ij , Λ j ) (Φ sj , Λ s )
# # # #
partition p j*p s*p
p (Φ , Λ 1 )
p
1
(Φ pj , Λ j ) (Φ sp , Λ s )
38
Assuming m workstations with n processors each, based on the scheme of Table 3.4,
the tasks of each column (the geometric partitions of a particular frequency segment)
reside on one workstation. The tasks of each row (the various frequency segments of a
particular geometry partition) are spread across the cluster, as shown in Fig. 3.5.
39
3.1.5 Frequency Domain Frequency Response Analysis
(FDFREQR)
The excitation frequencies, as specified on the FREQi entries, are split among the
processors as evenly as possible, and the responses for the partitioned excitation
frequencies are then calculated within each of the respective processors as shown in.
Fig.3-6. The whole range of excitation frequencies is partitioned into many sub-
intervals such as [Fi Fi+1]. Note that each processor contains the full model.
For direct frequency response analysis (SOL 108), you need to explicitly request
FDFREQR in the nastran command, as explained in Chapter 2. However, in the modal
frequency response analysis (SOL 111), any parallel computational method
automatically runs FDFREQR without requesting it. In other words, GDMODES,
FDMODES, or HDMODES implicitly invokes FDFREQR.
40
3.2 General Recommendations for the Selection of the
DMP Methods
SOL 101 has two DMP methods for static analysis. It is recommended to use
GDSTAT if you have a very large model. LDSTAT is useful when there are large
numbers of load cases.
For SOL 108, if there are many forcing frequencies, FDFREQR should be selected. In
FDFREQR, the source requirements such as disk space and memory are as high as the
source requirements of the serial run.
In SOL 111, it is recommended that you use FDMODES if you have a small model and
a large frequency range of interest. If you have a very large model and insufficient disk
space, use either GDMODES or HDMODES. Especially, HDMODES is recommended
for a cluster of multiprocessor workstations.
Fig. 3-7 illustrates the general guide for selecting a suitable DMP computational
method.
FDMODES
Frequency HDMODES
range
GDMODES
FE model
size
Figure 3.7 General guideline for the selection of DMP computational methods
41
Chapter 4
Examples for
Distributed Memory Parallel Processing Solution
The NX Nastran DMP computational method described in Chapter 3 is available for the
following solution sequence.
This chapter presents several examples for each solution sequence in DMP processing.
42
4.1 Linear Static Analysis: SOL 101
4.1.1 GDSTAT
The static analysis is performed for a finite element cube model that has 2197 grid points
for 1728 CHEXA elements and 6048 CQUAD4 elements. GDSTAT is implemented in a
DMP run. The module SEQP partitioned the global finite element model into sub-
domains and a boundary. The following information in the .f06 describes the detailed
statistics of partitioning with two and four processors, respectively.
Each processor performs the static analysis with the corresponding local domain and the
corresponding boundary, and the master processor collects the results that you requested
through communications. These outputs are printed only on the master processor.
D I S P L A C E M E N T V E C T O R
43
It is strongly recommended to use the nastran keyword “slaveout=yes” to print out
analysis procedures from all processors. With “slaveout=yes”, the f04, .f06, and .log files
contain the outputs of master and slave processors in the following format.
#
⎫
⎬ master processor
⎭
* * * END OF JOB * * *
****************
S L A V E 1
****************
#
⎫
⎬ slave 1 processor
⎭
* * * END OF JOB * * *
****************
S L A V E 2
****************
#
⎫
⎬ slave 2 processor
⎭
* * * END OF JOB * * *
****************
S L A V E 3
****************
#
⎫
⎬ slave 3 processor
⎭
* * * END OF JOB * * *
44
4.1.2 LDSTAT
For a model with 500 subcases, 125 subcases are assigned to each processor when four
processors are available. Without partitioning a domain, each processor performs the
static analysis with the partitioned load cases. The outputs are printed only on the master
processor after the master processor collects the results that you requested through
communications.
SUBCASE 101
D I S P L A C E M E N T V E C T O R
POINT ID. TYPE T1 T2 T3 R1 R2 R3
151000 G 3.392543E-07 1.089757E-21 1.783046E-08 .0 -1.204824E-07 -3.644054E-2
151010 G 3.392543E-07 1.426177E-21 -1.783046E-08 .0 1.204824E-07 -1.336866E-2
SUBCASE 102
D I S P L A C E M E N T V E C T O R
POINT ID. TYPE T1 T2 T3 R1 R2 R3
150205 G -6.509690E-07 -2.062356E-07 8.779039E-22 .0 -1.718401E-21 -1.224331E-07
150206 G -5.072370E-07 -1.837194E-07 -4.060963E-08 .0 1.252286E-07 2.982923E-08
SUBCASE 500
D I S P L A C E M E N T V E C T O R
POINT ID. TYPE T1 T2 T3 R1 R2 R3
150205 G -1.303690E-06 -6.062316E-08 9.779011E-20 .0 -3.418412E-22 -8.223322E-06
150206 G -2.172310E-06 -1.937191E-06 -3.060233E-05 .0 4.652283E-08 6.975915E-06
45
4.2 Normal Mode Analysis: SOL 103
A finite element plate model with 110 grid points and 100 CQUAD4 elements is
executed in parallel with SOL 103 analysis. The total number of degrees of freedom is
660. Four processors are used for the DMP run.
The parallel normal mode analysis is performed with FDMODES, GDMODES, and
HDMODES. For each computational method, both SEQP and GPARTN are implemented
for the domain decomposition.
4.2.1 FDMODES
FDMODES does not require domain decomposition. The .f06 file shows the number of
eigenvalues calculated in each processor. Each processor computes 94, 61, 26, and 27
eigenvalues, respectively. The total number of modes found is 208.
The master processor collects the eigenvalues and eigenvectors of slave processors, and
prints out the merged eigensolutions.
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
$-------------------------------------------------------------------------------
$ The list of all eigenvalues collected from the slave processor
$-------------------------------------------------------------------------------
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED GENERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
With “slaveout=yes”, you can see the information about the eigenvalue problem on each
slave processor. It also shows the number of eigenvalues found on the slave processors.
46
****************
S L A V E 1
****************
****************
S L A V E 2
****************
****************
S L A V E 3
****************
47
4.2.2 GDMODES
GDMODES is implemented with the nastran keyword “gpart”. The default is “gpart=0”,
which uses SEQP module. The option “gpart=1” calls the GPARTN module.
¾ gpart=0 (default)
When the domain is partitioned, the output from the SEQP module is shown as:
The partitioning statistics shows the number of domains created, grid points, and
elements for each sub-domain.
Once the results of eigenvalue analysis on the slave processors are collected, the master
processor prints the summary of merged eigensolutions.
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
$-------------------------------------------------------------------------------
$ The list of all eigensolutions collected from the slave processor
$-------------------------------------------------------------------------------
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
48
With the gpart=0 option, the summary of eigenvalue analysis from the master processor
is broadcasted to the slave processors, so that all processors print the same summary
information.
****************
S L A V E 1
****************
#
209 EIGENVALUES FOUND IN DOMAIN # 2
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
¾ gpart=1
Note that the output is related to the degrees of freedom (DOF), not grid points, even
though the output uses GRIDS terminology instead of DOF. This example has 88 internal
degrees of freedom and 74 boundary degrees of freedom for domain 1. There are 91 and
74, 88 and 74, 91 and 74 degrees of freedom for the interior and boundary of domain 2, 3,
and 4, respectively.
49
The .f06 file of the master processor prints the summary of eigenvalue analysis.
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
However, with the gpart=1 option, the master processor does not broadcast the collected
eigenvalues and/or eigenvectors to the slave processors, so no eigensolutions are printed
in the.f06 file except the eigenvalue summary.
#
****************
S L A V E 1
****************
#
208 EIGENVALUES FOUND IN DOMAIN # 2
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
****************
S L A V E 2
****************
#
208 EIGENVALUES FOUND IN DOMAIN # 3
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
50
BLOCK SIZE USED ...................... 7
****************
S L A V E 3
****************
#
208 EIGENVALUES FOUND IN DOMAIN # 4
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
51
4.2.3 HDMODES
In the example below, HDMODES is executed with ‘dmp=4’ and ‘nclust=2’ keywords.
Among the four processors, the first processor is the master processor, and the other
processors are the slave processors.
Note that HDMODES defines the local master and local slave processors inside of each
cluster.
¾ gpart=0 (default)
The partitioning statistics show the information of domains for each cluster. There are
two domains for each cluster. The first domain of the cluster has 50 internal grids and 10
external grids, and the second domain has the same local size. Generally, the size of each
domain is different.
In this example, cluster 1 includes processors 1 and 3, and processors 2 and 4 are in
cluster 2. Processors 1 and 2 are the local masters in clusters 1 and 2, respectively. In
cluster 1, 155 eigenvalues are collected in processor 1. Similarly, in cluster 2, 53
eigenvalues are collected in processor 2. Once each local master processor collects the
results for each cluster, the master processor (processor 1) collects the information from
the local masters.
In the .f06 file, the master processor prints the summary of the eigenvalue analysis and
the list of eigenvalues. Be careful when interpreting the “number of roots found”
information in the summary. This information concerns the cluster in which the master is
included. For example, in the model below, interpret the “number of roots found”
message as indicating that cluster 1 found 155 eigenvalues. The master processor lists all
208 eigenvalues that are merged from all of the local master processors. You should
determine the number of modes from the list of eigenvalues.
52
155 EIGENVALUES FOUND IN DOMAIN # 1
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
Again, be cautious when interpreting the output from slave processors. The summary of
eigenvalue analysis for slave processors is confined to the corresponding processor. In
the list of eigenvalues on the slave processors, the mode number does not represent the
global mode number.
Note that, with the gpart=0, the master process broadcasts the collected output only to
the local masters. In the example below, the local slave, processor 2, prints 208
eigenvalues, while another local slave, processor 4, prints 53 eigenvalues.
#
****************
S L A V E 1
****************
#
53 EIGENVALUES FOUND IN DOMAIN # 1
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.632620E+09 4.040570E+04 6.430766E+03 1.000000E+00 1.632620E+09
2 2 1.633399E+09 4.041533E+04 6.432300E+03 1.000000E+00 1.633399E+09
#
53
52 52 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
53 53 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
****************
S L A V E 2
****************
#
155 EIGENVALUES FOUND IN DOMAIN # 2
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
****************
S L A V E 3
****************
#
53 EIGENVALUES FOUND IN DOMAIN # 2
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
BLOCK SIZE USED ...................... 7
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.632620E+09 4.040570E+04 6.430766E+03 1.000000E+00 1.632620E+09
2 2 1.633399E+0 4.041533E+04 6.432300E+03 1.000000E+00 1.633399E+09
#
52 52 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
53 53 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
54
¾ gpart=1
The partitioning statistics with GPARTN describe the number of degrees of freedom for
each cluster. In the example below, the first cluster has 223 degrees of freedom in the
interior of domain 1, and 50 degrees of freedom in the boundary. The second cluster has
the same local size as the first one.
The interpretation of the .f06 file for the master processor is the same as that of the
gpart=0 option.
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
$-------------------------------------------------------------------------------
$ The list of all eigensolutions collected from the slave processor
$-------------------------------------------------------------------------------
R E A L E I G E N V A L U E S
MODE EXTRACTION EIGENVALUE RADIANS CYCLES GENERALIZED NERALIZED
NO. ORDER MASS STIFFNESS
1 1 1.696349E+07 4.118676E+03 6.555076E+02 1.000000E+00 1.696349E+07
2 2 1.848026E+07 4.298867E+03 6.841859E+02 1.000000E+00 1.848026E+07
#
207 207 3.073819E+09 5.544203E+04 8.823873E+03 1.000000E+00 3.073819E+09
208 208 3.123167E+09 5.588530E+04 8.894422E+03 1.000000E+00 3.123167E+09
With gpart=1, the master process does not broadcast the collected output to slave
processors, so no eigenvalues are listed in the information from the slave processors.
55
#
****************
S L A V E 1
****************
#
53 EIGENVALUES FOUND IN DOMAIN # 1
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
****************
S L A V E 2
****************
#
155 EIGENVALUES FOUND IN DOMAIN # 2
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
****************
S L A V E 3
****************
#
53 EIGENVALUES FOUND IN DOMAIN # 2
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
56
4.3 Direct Frequency Response Analysis: SOL 108
For a finite element plate model that has 110 grid points and 100 CQUAD4 elements,
SOL 108 analysis is performed in parallel with the FDFREQR method. The total number
of excitation frequencies is 89 in the entry of FREQ1.
The .f06 file describes the partitioned frequency range. In the example below, processors
1, 2, 3, and 4 execute 23, 22, 22, and 22 excitation frequency ranges. Once each
processor finishes its own analysis, the master processor collects the results and prints the
output.
#
DISTRIBUTED MEMORY PARALLEL FREQUENCY RESPONSE
NUMBER OF FREQUENCY DOMAINS = 4
NUMBER OF FREQUENCIES ON LOCAL PROCESSOR (ID= 1) = 23
#
$------------------------------------------------------------------------------
$ The list of all responses collected from the slave processor
$------------------------------------------------------------------------------
R E S P O N S E O U T P U T
****************
S L A V E 1
****************
#
DISTRIBUTED MEMORY PARALLEL FREQUENCY RESPONSE
NUMBER OF FREQUENCY DOMAINS = 4
NUMBER OF FREQUENCIES ON LOCAL PROCESSOR (ID= 2) = 22
#
****************
S L A V E 2
****************
#
DISTRIBUTED MEMORY PARALLEL FREQUENCY RESPONSE
NUMBER OF FREQUENCY DOMAINS = 4
NUMBER OF FREQUENCIES ON LOCAL PROCESSOR (ID= 3) = 22
#
****************
S L A V E 3
****************
#
DISTRIBUTED MEMORY PARALLEL FREQUENCY RESPONSE
NUMBER OF FREQUENCY DOMAINS = 4
NUMBER OF FREQUENCIES ON LOCAL PROCESSOR (ID= 4) = 22
#
57
4.4 Modal Frequency Response Analysis: SOL 111
In SOL 111, the FDMODES, GDMODES, and HDMODES methods will automatically
perform FDFREQR after the eigenvalue analysis is finished, so you do not need to
request FDFREQR explicitly for the modal frequency response. Therefore, the parallel
SOL 111 job can be run exactly the same way as the parallel SOL 103. In the example
below, SOL 103 is executed in parallel and is run with four processors.
Each processor computes 94, 61, 26, and 27 eigenvalues, respectively, for the whole
finite element model. For the modal frequency response analysis, 19 excitation
frequencies are split to 5, 5, 5, and 4, and distributed to each processor.
#
$------------------------------------------------------------------------------
$ The number of eigenvalues found at each processor
$------------------------------------------------------------------------------
R E S P O N S E O U T P U T
#
****************
S L A V E 1
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
58
****************
S L A V E 2
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
****************
S L A V E 3
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
Once the eigenvalue analysis is finished in parallel in SOL 103, both the gpart=0 and the
gpart=1 options use the same method to partition the range of excitation frequencies.
Once each processor finishes the modal frequency response analysis, the master process
collects all response output and prints it in the .f06 file.
¾ gpart=0 (default)
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
PERFORMANCE SUMMARY TABLE FOR DISTRIBUTED MEMORY FREQUENCY RESPONSE
NUMBER OF FREQUENCY DOMAINS = 4
NUMBER OF FREQUENCIES = 19
PROCESSOR # FREQ. CPU (SEC) ELAPSED (SEC)
--------- ------- --------- -------------
1. ugs001 5 5.61 11.09
2. ugs002 5 5.16 11.08
3. ugs003 5 5.70 11.08
4. ugs004 4 5.33 11.07
#
$-----------------------------------------------------------------------------------
$ The list of all responses collected from the slave processor
$-----------------------------------------------------------------------------------
R E S P O N S E S U M M A R Y
59
¾ gpart=1
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
R E S P O N S E S U M M A R Y
For a SOL 111 run with HDMODES and FDFREQR, it is strongly recommended to run
with gpart=1 because gpart=1 takes full advantage of all computational resources.
¾ gpart=0 (default)
In the gpart=0 option, only local master processors are involved in the FDFREQR
method. Because the slave processors are idle in the modal frequency response analysis,
you cannot obtain the maximum performance. Once the local master processors finish the
calculation of responses, the master processor collects them and broadcasts to the local
masters. In the example below, two local master processors, processor 1 and 3, contain
the response results in their entirety.
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
60
PERFORMANCE SUMMARY TABLE FOR DISTRIBUTED MEMORY FREQUENCY RESPONSE
R E S P O N S E O U T P U T
#
****************
S L A V E 1
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
$------------------------------------------------------------------------------
$ The list of all responses collected from the slave processor
$------------------------------------------------------------------------------
R E S P O N S E O U T P U T
#
****************
S L A V E 2
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
****************
S L A V E 3
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
¾ gpart=1
61
With the gpart=1 option, all processors are involved in the FDFREQR method, so you
can obtain the maximum performance. The master processor collects the results from the
slave processors, and prints the complete response results.
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
PERFORMANCE SUMMARY TABLE FOR DISTRIBUTED MEMORY FREQUENCY RESPONSE
NUMBER OF FREQUENCY DOMAINS = 4
NUMBER OF FREQUENCIES = 19
R E S P O N S E O U T P U T
#
****************
S L A V E 1
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
****************
S L A V E 2
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
****************
S L A V E 3
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
62
4.5 Modal Transient Response Analysis: SOL 112
In the parallel SOL 112 run, once the eigenvalue analysis is performed in parallel, the
modal transient response analysis is executed in serial. During the modal transient
response analysis, all slave processors are idle. The output of responses in the .f06 file is
printed only in the master processor.
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
$-----------------------------------------------------------------------------------
$ Only the master processor run the transient responses analysis
$-----------------------------------------------------------------------------------
R E S P O N S E O U T P U T
#
****************
S L A V E 1
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
****************
S L A V E 2
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
****************
S L A V E 3
****************
#
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
63
4.6 Optimization: SOL 200
In the optimization procedures, several different types of analyses are involved. If any
eigensolution is required, the eigenvalue analysis may be performed in parallel with the
computational methods, FDMODES, GDMODES, and HDMODES, used in SOL 103.
Note that GDMODES and HDMODES are valid with only the gpart=1 option.
The following .f06 is a typical output format in SOL 200 with DMP, in which all
processors print the same output.
#
i-th I T E R A T I O N
#
$-----------------------------------------------------------------------------------
$ run FDMODES, GDMODES, or HDMODES, and collect the local eigensolutions
$ from the slave processors
$-----------------------------------------------------------------------------------
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
O P T I M I Z A T I O N O U T P U T
#
j-th I T E R A T I O N
#
****************
S L A V E 1
****************
#
i-th I T E R A T I O N
#
$-----------------------------------------------------------------------------------
$ run FDMODES, GDMODES, or HDMODES, and have the same eigensolutions
$ as the master processor
$-----------------------------------------------------------------------------------
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
O P T I M I Z A T I O N O U T P U T
64
#
j-th I T E R A T I O N
#
****************
S L A V E 2
****************
#
i-th I T E R A T I O N
#
$-----------------------------------------------------------------------------------
$ run FDMODES, GDMODES, or HDMODES, and have the same eigensolutions
$ as the master processor
$-----------------------------------------------------------------------------------
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
O P T I M I Z A T I O N O U T P U T
#
j-th I T E R A T I O N
#
****************
S L A V E 3
****************
#
i-th I T E R A T I O N
#
$-----------------------------------------------------------------------------------
$ run FDMODES, GDMODES, or HDMODES, and have the same eigensolutions
$ as the master processor
$-----------------------------------------------------------------------------------
E I G E N V A L U E A N A L Y S I S S U M M A R Y (READ MODULE)
#
O P T I M I Z A T I O N O U T P U T
#
j-th I T E R A T I O N
65
4.7 Industrial Case Study
A trimmed car body FE model with SOL 103 is used as a case study to analyze the
technologies presented in NX Nastran. This type of car model has all major components
of the car, such as wheels, engine, etc. incorporated. Tables 4-1 and 4-2 present the
details for this finite element model.
Table 4-2 The size of sets for the trimmed car body FE model
Table 4-3 demonstrates the effect of the automated geometric domain decomposition on
this model by showing the number of interior and boundary nodes of the partitions.
Several observations can be made. The interior range size depends on the quality of the
automated partitioning. The boundary size increases with the number of partitions.
Finally, the boundary size is at least two orders of magnitude smaller than the interior
size, which is important to the computational efficiency.
66
The automated frequency domain decomposition results are shown in Table 4-4. There
are 840 modes in the frequency range of interest.
The automated geometric domain partitioning techniques usually provide only even, and
preferably binary, numbered domains. This is because these techniques are primarily
based on binary graph partitioning. This is not a restriction, as shared memory
workstations tend to have an even number of processors. On the other hand, in the
frequency domain decomposition, odd numbers of segments are also allowed. This
technology is insensitive to that issue and enables the use of odd-numbered workstations
via the hierarchic technology in a workstation cluster environment.
The analysis was executed on a cluster of eight workstations, each containing eight
processors with a 1.5 GHz clock cycle. The cluster had a one gigabyte Ethernet network
connection. The option gpart=1 is used.
67
The task of finding the natural frequencies and mode shapes of such a model is an
enormous one. It is an overnight job with more than a terabyte of I/O operations. The
execution on a single processor is impractical considering the work environment and time
schedule at automobile companies.
Fig. 4.1 and Fig.4.2 show the elapsed time and disk I/O of HDMODES with 8 geometry
partitions for the different number of frequency segment. With 56 processors, 8 geometry
partitions in each workstation and 7 frequency segments across workstations are used.
The elapsed time for 32 processors is already a practical execution. The efficiency above
decreases, but the speedup is still increasing. It peaks at 56 processors, although a wider
frequency range for this model may extend that peak to 64 or higher. It means that 7
frequency segments with 8 geometry partitioning for each frequency segment is the most
suitable partitioning for this test FE model in this workstation cluster environment.
HDMODES
(8 geometry partitions)
600
550
500
450
400
Elapsed time (min.)
350
300
250
200
150
100
50
0
1 16 32 48 56 64
Number of processors
Fig. 4.1 Elapsed time of HDMODES with 8 geometry partitions for the different number
of frequency segment.
68
HDMODES
(8 geometry partitions)
1100
1000
900
800
700
Disk I/O (GB)
600
500
400
300
200
100
0
1 16 32 48 56 64
Number of processors
Fig. 4.2 Disk I/O of HDMODES with 8 geometry partitions for the different number of
frequency segment.
69
References
[1] L. Komzsik, The Lanczos Method: Evolution and Application, 2003, SIAM.
[2] W. Gropp, E. Lusk, and A. Skjellum, Using MPI: Portable Parallel Programming with
the Message Passing Interface, 1997, MIT.
70