Run Radioss
The Radioss solver can be executed using different methods described here.
From Altair Compute Console (ACC)
The Altair Compute Console (ACC) is the easiest way to launch a Radioss computation.
It includes an interactive GUI for selecting input files, defining run options, submit multiple solver runs using a queue, schedule a delay, stop a job, and has all the environment variables needed to run Radioss predefined.
On Windows, the Compute Console (ACC) can be launched using
.The Compute Console (ACC) can be launched from within the software by selecting the
.- Linux
- <install_dir>/altair/scripts/radioss
-gui
- Windows
- <install_dir>/hwsolvers/scripts/radioss.bat
-gui
Input Filename
- By default, all the Starter and Engine files in the directory of the input file will be ran. Multiple Engine files can easily be ran by placing them in the same directory as the Starter file.
- If an Engine file is selected, then the Engine file will be ran followed by any other Engine files in the directory.
- If the
-onestep
option is used, only the selected input file will be ran. Only the Starter is ran, if the input file is a Starter file and only the Engine file is ran, if the input file is an Engine file.
Commonly Used Run Options
Option | Argument | Description |
---|---|---|
-onestep |
N/A | Disable auto continuation to next Engine, run only Starter for single file format. |
-nt |
Number of threads | Number of SMP threads per SPMD MPI
domain. (Example: radioss
ROOTname_0000.rad
|
-np |
Number of SPMD MPI domains | Number of Radioss SPMD MPI
domains. (Example: radioss
ROOTname_0000.rad
|
All Available Run Options
-mpipath {C:/Program Files/MPI}
File paths on Windows may use backward "\" or forward slash "/", but must be within quotes when using a backslash "\".
Option | Argument | Description | Available Platforms |
---|---|---|---|
-altver |
Suffix for alternate solver version. | All Platforms | |
-appfile |
N/A | Spec file with some MPI for SPMD run. | All Platforms |
-args |
Extra arguments that
are passed to the solver. Example: |
All Platforms | |
-check |
Check the model for warnings and errors. Disable domain decomposition and restart file writing. | All Platforms | |
-checkpoint |
N/A | Run Radioss Engine starting from checkpoint savefile. | All Platforms |
-debug |
1 ,
2 |
Output scripting debugging information. | All Platforms |
-delay |
Number of seconds | Delays the start of a
Radioss run for the specified
number of seconds. This functionality does not use licenses,
computer memory or CPU before the start of the run (the delay
expires). This option may be used to wait for any
computing resources which are currently usable but are not
yet freed by the previous run. If the previous run crashed,
then the license may still be locked by the license server
depending on the timeout value, or the memory may still be
reserved by the Operating System.
Note:
|
All Platforms |
-dylib |
FILE |
Set name to the dynamic library for Radioss User Subroutines. | All Platforms |
-hostfile |
TEXT
FILE |
Text file that lists the hosts and number of cores for a multi-computer (node) run. Refer to MPI document for exact format. | All Platforms |
-HSTP_READ |
NA | Read an hst_input.hstp file and replace the input deck’s /PARAMETER with the ones defined in the read file. | All Platforms |
-HSTP_WRITE |
NA | Write an
<root_name>_0000.rad2hst file
containing the model /PARAMETER
information. Write an <root_name>_0000.depx file containing input files needed to compute the model. |
All Platforms |
-licwait |
Number of hours | If
-licwait is present and insufficient
Altair Units (AU) are available,
Radioss Engine will wait for up
to the number of hours specified (default=12) for licenses to
become available and then will start to run. The maximum wait
period that can be specified to wait is 168 hours (a
week). |
All Platforms |
-loctmp |
N/A | All temporary files will be written in the current directory where Radioss is running. | All Platforms |
-mpi |
i ,
o |
Specify which MPI
software is used for multiprocessor (SPMD) run.
Note: An argument for
-mpi is
optional. If an argument is not specified, Intel MPI is
used by default. |
Not all platforms support all MPI software. |
-mpipath |
DIRECTORY |
Specify the path where
mpirun is located.(Altair HyperWorks includes the MPI software so this typically is not needed). |
All Platforms |
-noh3d |
N/A | Do not generate h3d file from Radioss animation files when the simulation has ended. | All Platforms |
-norst |
N/A | Remove all restart (*.rst) files after the simulation has ended. | All Platforms |
-np
or -nspmd |
Number of SPMD MPI domains | Number of Radioss SPMD MPI domains. Example:
|
All Platforms |
-nt
or -nthread |
Number of thread | Number of SMP threads
per SPMD MPI domain. Example: |
All Platforms |
-nt_r2r |
Number of cpu threads for multi-domain process. | All Platforms | |
-onestep |
N/A | Disable auto continuation to next Engine or mod file, run only Starter for single file format. | All Platforms |
-outfile |
DIRECTORY |
Defines the output file directory for all files created by the Starter and Engine. | All Platforms |
-radfiles |
N/A | List all files in the current folder with detected types (Starter/Engine/mod). | All Platforms |
-radopt |
.radopt file | Option to run Radioss optimization with OptiStruct. It specifies to request an
optimization run for an Radioss
input deck. Note: The Radioss Starter and input files
supporting the optimization input should be available in the
same directory as the <name>.radopt
file.
Refer to Design Optimization for more information. |
All Platforms |
-rseed |
seed |
Optional value: Set
the seed value for nodal random noise (0 ≤
seed < 1). |
All Platforms |
-rxalea |
xalea |
Activation of nodal
random noise with xalea value
(xalea ≥ 0). |
All Platforms |
-sp |
N/A | Specify to run a single precision version of Radioss. | All Platforms |
-v |
Required version of
solver if multiple are installed. If not specified, newest
version installed is used. Example: |
All Platforms |
Solver Control
From an Altair HyperWorks Script
Launch Radioss from a command line using the script included in Altair HyperWorks.
This script should be used when running Radioss on high-performance computing cluster via a job scheduler because many environment variables are already defined so it simplifies the setup. All the options available in the Compute Console (ACC) can be used from the command line.
<install_dir>/altair/scripts/radioss "filename" -option argument
<install_dir>\hwsolvers\scripts\radioss.bat "filename" -option argument
The script options are described in All Available Run Options.
From HyperMesh
When creating a Radioss finite element model in HyperMesh, the simulation can be ran directly in HyperMesh by going to the Radioss panel.
<hostname>:0.0
. If
this is different from the DISPLAY setting for HyperMesh, 25/38 Altair units
(in addition to the 21 Altair units being used for
HyperMesh) will be checked out. To avoid the
checking out of additional units, be sure that the DISPLAY is set to
<hostname>:0.0
before starting HyperMesh.Run Executables Directly
The Radioss executables can be executed directly, but various environment variables need to be defined.
It is, therefore, recommended and easier to utilize the Radioss script included in Altair HyperWorks when launching jobs on a computer server. If it is still necessary to run the executables directly, the following environment variables must be set.
RADFLEX_PATH
=
<install_dir>/hwsolvers/common/bin/<platform>/
RAD_H3D_PATH
=
<install_dir>/hwsolvers/radioss/lib/<platform>/
HWSOLVERS_TEMPLEX
=
<install_dir>/hwsolvers/common/bin/<platform>/
ABF_PATH
=
<install_dir>/hwsolvers/radioss/bin/<platform>/
RAD_CFG_PATH
=
<install_dir>/hwsolvers/radioss/cfg/
- Linux
KMP_STACKSIZE
=400m- Windows
KMP_STACKSIZE
=400m
- Windows Only
- Update environment variable,
PATH
=%PATH%;\
<install_dir>\hwsolvers\common\bin\win64;\ <install_dir>\hwsolvers\radioss\lib\win64
- Linux Only
LD_LIBRARY_PATH
=<install_dir>/hwsolvers/common/bin/linux64/:<install_dir>/hwsolvers/radioss/lib/linux64
The Radioss executables can be found in <install_dir>\hwsolvers\radioss\bin\<platform>\.
./s_<version>_<platform> –i <arguments> <prefix>_0000.rad
./e_<version>_<platform> –i <arguments> <prefix>_0001.rad
Refer to the Altair HyperWorks Advanced Installation Guide for information on using Radioss with MPI software.
Starter and Engine Exit Codes
The Starter and Engine provide exit codes that can be used by scripts.
- 0
- Normal termination.
- 2
- Model or computation error.
- 3 or 128 + Signal number
- Process failure (core dump, segmentation fault).
$?
’ command in a Linux shell script.#!/bin/bash
s_2023.1_linux64 –input [Starter_input]_0000.rad –np 96
Exit_code=$?
echo $Exit_code
errorlevel
" variable in a
script.s_2023.1_win64.exe –input [Starter_input]_0000.rad –np 96
echo %errorlevel%
Starter Command Line Arguments
The Radioss Starter supports the following command line arguments.
Argument | Short Form | Description |
---|---|---|
-check |
Option to check the model. Disable domain decomposition and restart file writing. | |
-dylib
[FILE] |
Set name of the dynamic library for Radioss User Subroutines. | |
-help |
-h |
Print help message |
-HSTP_READ |
Read in a hst_input.hstp file and replace the input deck’s /PARAMETER with the ones defined in the .hstp file. | |
-HSTP_WRITE |
Write an
<root_name>_0000.rad2hst file
containing model the /PARAMETER
information. Write an <root_name>_0000.depx file containing input files needed to compute the model. |
|
-input
[FILE] |
-i |
Set Radioss Starter input file |
-mds_libpath
[PATH] |
Set path to the dynamic library for Multiscale Designer. | |
-notrap |
Disable error trapping | |
-nspmd
[INTEGER] |
-np |
Set number of SPMD domains |
-nthread
[INTEGER] |
-nt |
Set number of threads per SPMD domains |
-outfile=[output path] |
Defines the output file directory for all files created. | |
-rseed
[REAL] |
Optional value: Set
the seed value for nodal random noise. |
|
-rxalea
[REAL] |
Activation of nodal
random noise with a [value] xalea . |
|
-version |
-v |
Print Radioss release information |
-help Argument
Prints help information on the command line arguments.
Radioss Starter exits after the printout.
-version Argument
Prints Radioss release information.
- Radioss title
- Radflex name
- Version to use
- Build information (date, time of build and build tag)
Radioss Starter exits after the printout.
-input [FILE] Argument
Sets the Radioss Starter input file.
The FILE argument must be a Radioss Starter input
file with the following format: [ROOTNAME]_[RUN NUMBER].rad
ROOTNAME
- Dataset rootname
RUN NUMBER
- Run number expressed in four numbers
e.g. CRA2V51_0000.rad
ROOTNAME: CRA2V51
RUN NUMBER: 0000
ROOTNAME
andRUN NUMBER
are extracted from the input file.- The dataset
ROOTNAME
andRUN NUMBER
settings in /BEGIN are ignored when the-input
command option is used. - If the file name does not have the correct format, the file is rejected.
- The file is open. Standard input is no longer used.
- If
-input
is not set, Radioss Starter opens standard input to read input.
Example
[user@machine]$ ./s_2023.1_linux64 -input CRA2V51_0000.rad
-nspmd [SPMD DOMAIN NUMBER] Argument
Sets the number of SPMD domains.
Where:
SPMD DOMAIN NUMBER: INTEGER is the number of SPMD domains
Example
[user@machine]$ ./s_2023.1_linux64 -nspmd 4
- If the SPMD DOMAIN NUMBER value is not properly set, Radioss Starter stops with error message.
- If
-nspmd
is set, the number of domains set in /SPMD input card is ignored. /SPMD card can be omitted, if other parameters are kept as default settings. - The total number of processes used for the Radioss Engine computation will be equal to SPMD DOMAIN NUMBER * SMP THREAD NUMBER.
-nthread [SMP THREAD NUMBER] Argument
Sets the number of SMP threads per SPMD domain. Each SPMD domain will be computed using a multi-threaded process composed of SMP THREAD NUMBER.
Where, SMP THREAD NUMBER: INTEGER is the number of SMP threads per SPMD domain.
Example:
[user@machine]$ ./s_2023.1_linux64 -nthread 2
- If the SMP THREAD NUMBER value is not properly set, Radioss Starter stops with error message.
- If
-nthread
is set, the number of threads set in /SPMD input card is ignored. /SPMD card can be omitted if other parameters are kept as default settings. - The total number of processes used for the Radioss Engine computation will be equal to SPMD DOMAIN NUMBER * SMP THREAD NUMBER.
-notrap Argument
Disables the trapping error of Radioss Starter.
By default, in case of error, Radioss Starter will display an error
message that corresponds to the error occurred and stop properly. If
-notrap
is used, Radioss Starter
will continue and potentially core dumps where the error occurs. This behavior is
sometimes helpful to trace the error with external tools.
General Behavior, Error Handling
-version
-help
-nspmd
,-input
,-nthread
,-notrap
-nspmd
,
-nthread
, -notrap
and
-input
can be used together; and the order does not
matter.
- Missing argument to
-input
or-nspmd
or-nthread
-input
argument is not a Radioss file format-nspmd
or-nthread
argument are not an integer value- Unknown command line argument used
An error message is printed out with the -help
printouts.
-check Argument
Option to stop the Starter after model check.
The domain decomposition calculation and writing of the restart files (.rst) is not done. This reduces the time to run for the Starter model to run when doing a model check.
-outfile=[output path] Argument
The Starter writes all output and restart files in the defined output path.
The output path can be absolute or relative. If there is a space in the output path then, quotes must be used in the path. On Windows, either “/” or “\” can be used between directories.
Example
s_2023.1_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
s_2023.1_linux64 -i TENSI36_0000.rad -outfile="../my directory"
s_2023.1_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
s_2023.1_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
s_2023.1_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
s_2023.1_win64.exe -i TENSI36_0000.rad -outfile="c:/storage/files/my directory"
-HSTP_WRITE Argument
Write a file called <root_name>_0000.rad2hst containing all model parameters (/PARAMETER) information defined in the model (_0000.rad).
The <root_name>_0000.rad2hst file for HyperStudy with
schema="altair_pdd
" and
schemaVersion="hstp_v_5
".
-HSTP_READ Argument
Replace parameter (/PARAMETER) values defined in the model (_0000.rad) by the ones read in the hst_input.hstp file.
The file hst_input.hstp is an XML file for HyperStudy with
schema="altair_pdd
" and
schemaVersion="hstp_v_5
".
-rseed [seed] Argument
Option to define the seed for random noise on the node coordinate with the value
[seed
], a real value between 0 and 1.
-rxalea [xalea] Argument
Option to initialize random noise on the node coordinates with the value
[xalea
], a positive real value.
-dylib [FILE] Argument
Option to add the file name with full or relative path of Radioss User Subroutines for the Radioss execution.
-mds libpath [PATH] Argument
Option to specify the path of the dynamic library for Multiscale Designer material laws. By default, Radioss uses the path defined in the HyperMesh environment.
Engine Command Line Argument
Radioss Engine HMPP executables are available (as of version 11.0) with MPI and are fully Hybrid capable mixing SPMD and SMP parallelization.
Simplified executables also exist, which are only SMP capable but do not require MPI.
To distinguish easily between these two types of executables, MPI executables have a _mpp suffix.
- For binaries compiled with MPI, they need to be run through the
mpirun
command. The general form is as follows:mpirun [list of mpirun option] engine_executable_mpp [list of engine option]
Note: The list ofmpirun
options depends on the MPI vendor. Refer to the MPI documentation. - For binaries compiled without
MPI:
engine_executable [list of engine option]
Note: The list of Radioss Engine options is the same for both types of executables.
Argument | Short Form | Description |
---|---|---|
-dylib
[FILE] |
Set name of the dynamic library for Radioss User Subroutines. | |
-help |
-h |
Print help message |
-input
[FILE] |
-i |
Set Radioss Engine input file |
-licwait
[h] |
If
-licwait is present and insufficient
Altair Units (AU) are available,
Radioss Engine will wait for up
to the mandatory number of hours [h] specified for licenses to
become available and then will start to run. |
|
-mds_libpath
[PATH] |
Set path to the dynamic library for Multiscale Designer. | |
-norst |
Disable restart *.rst file writing during and at the end of the computation | |
-notrap |
Disable error trapping | |
-nthread
[INTEGER] |
-nt |
Set Number of SMP threads per SPMD domain |
-outfile=[output path] |
Defines the output file directory for all files created. | |
-version |
-v |
Print Radioss release information |
-help Argument
Prints help information on the command line arguments.
Radioss Engine exits after the printout.
-version Argument
Prints Radioss release information.
- Radioss title
- Radflex name
- Version to use
- Build information (date, time of build and build tag)
Radioss Engine exits after the printout.
-input [FILE] Argument
Sets the Radioss Engine input file.
The FILE argument must be a Radioss Engine input
file with the following format: [ROOTNAME]_[RUN NUMBER].rad
ROOTNAME
- Dataset rootname
RUN NUMBER
- Run number expressed in four numbers
ROOTNAME
andRUN NUMBER
are extracted from the input file.- The dataset
ROOTNAME
andRUN NUMBER
settings in /RUN are ignored, when the -input command option is used. - If the file name does not have the correct format, the file is rejected.
- The file is open. Standard input is no longer used.
- If -input is not set, Radioss Engine opens standard input to read input.
Example
[user@machine]$ mpirun -np 4 ./e_2019_linux64 impi -nt 2 -input CRA2V51_0001.rad
************************************************************************
** **
** **
** RADIOSS ENGINE 2019 **
** **
** Non-linear Finite Element Analysis Software **
** from Altair Engineering, Inc. **
** **
** **
** Linux 64 bits, Intel compiler, Intel MPI **
** **
** **
** **
** Build tag: 0479348_2413000 **
************************************************************************
** COPYRIGHT (C) 1986-2019 Altair Engineering, Inc. **
** All Rights Reserved. Copyright notice does not imply publication. **
** Contains trade secrets of Altair Engineering Inc. **
** Decompilation or disassembly of this software strictly prohibited. **
************************************************************************
ROOT: CRA2V51 RESTART: 0001
NUMBER OF HMPP PROCESSES 8
17/10/2008
NC= 0 T= 0.0000E+00 DT= 1.7916E-03 ERR= 0.0% DM/M= 0.0000E+00
ANIMATION FILE: CRA2V51A001 WRITTEN
NC= 100 T= 1.7826E-01 DT= 1.7700E-03 ERR= 0.0% DM/M= 0.0000E+00
...
NC= 13700 T= 1.9871E+01 DT= 1.4032E-03 ERR= -1.2% DM/M= 0.0000E+00
** CPU USER TIME **
#PROC CONT.SORT CONT.F ELEMENT MAT KIN.COND INTEGR. I/O TASK0 ASSEMB RESOL
1 .0000E+00 .0000E+00 .1144E+02 .2910E+01 .7000E-01 .5600E+00 .3100E+00 .5000E+00 .3700E+00 .1364E+02
2 .0000E+00 .0000E+00 .1102E+02 .2870E+01 .7000E-01 .5600E+00 .0000E+00 .0000E+00 .3300E+00 .1364E+02
ELAPSED TIME : 7.79 s
RESTART FILE: CRA2V51_0001_0000.rst WRITTEN
NORMAL TERMINATION
TOTAL NUMBER OF CYCLES: 13793
[user@machine]$
-nthread [SMP THREAD NUMBER] Argument
Sets the number of SMP threads per SPMD domain. Each SPMD domain will be computed using a multi-threaded process composed of SMP THREAD NUMBER.
Where, SMP THREAD NUMBER: INTEGER is the number of SMP threads per SPMD domain.
Example
[user@machine]$ mpirun -np 4 ./e_2019_linux64 impi -nthread 2 -input CRA2V51_0001.rad
- If the INTEGER value is not properly set, the Radioss Starter stops with error message.
- If
-nthread
is set, the number of threads defined in the Starter run (/SPMD input card,-nthread
command line) or previous Engine run is ignored. - The environment variable OMP_NUM_THREADS can also be used to change the number of threads.
-nthread
remains prior to OMP_NUM_THREADS. - For performance reason, it is recommended to use OMP_NUM_THREADS instead of
-nt
. This informs the system of the true number of threads used. - The total number of processes used for the Radioss Engine computation will be equal to SPMD DOMAIN NUMBER * SMP THREAD NUMBER.
General Behavior, Error Handling
-version
-help
-input
,-nthread
,-notrap
The argument order in the command line does not matter.
- Missing argument to
-input
or-nthread
-input
argument is not a Radioss file format-nthread
argument is not an integer
An error message is printed with the -help
printouts.
MPI and Radioss Options Coherency
The -nspmd
value (or Nspmd field of
/SPMD Starter input card) must match the mpirun -np
value.
If this is not the case, Radioss Engine will stop with an
appropriate error message.
[user@machine]$ ./s_2019_linux64 -nspmd 4 -input CRA2V51_0000.rad
[user@machine]$ mpirun -np 2 ./e_2019_linux64 impi -input CRA2V51_0001.rad
THE REQUIRED NUMBER OF MPI PROCESSES DOES NOT MATCH MPIRUN
PLEASE, RUN WITH THE PROPER NUMBER OF MPI PROCESSES
REQUIRED (NSPMD) = 4
AVAILABLE (mpirun -np) = 2
E R R O R T E R M I N A T I O N
TOTAL NUMBER OF CYCLES : 0
[user@machine]$ ./s_2019_linux64 -nspmd 4 -input CRA2V51_0000.rad
[user@machine]$ mpirun -np 4 ./e_2019_linux64 impi -input CRA2V51_0001.rad
-notrap Argument
Add this option to force core dump.
This is a useful option to get call stack traceback.
-norst Argument
Option to disable restart *.rst file writing during and at the end of the computation.
This makes the Engine run faster because of the reduction in files written.
-outfile=[output path] Argument
The Engine writes all output and restart files in the defined output path.
The output path can be absolute or relative. If there is a space in the output path then, quotes must be used in the path. On Windows, either “/” or “\” can be used between directories.
Example
e_2023.1_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
e_2023.1_linux64 -i TENSI36_0000.rad -outfile="../my directory"
e_2023.1_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
e_2023.1_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
e_2023.1_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
e_2023.1_win64.exe -i TENSI36_0000.rad -outfile="c:/storage/files/my directory
-dylib [FILE] Argument
Option to add the file name with full or relative path of Radioss User Subroutines for the Radioss execution.
-mds libpath [PATH] Argument
Option to specify the path of the dynamic library for Multiscale Designer material laws. By default, Radioss uses the path defined in the HyperMesh environment.
Solution Process
There are two parts to the Radioss simulation, the Starter and Engine. The Starter is an input data check and must successfully complete without errors before the simulation can be completed in the Engine.
Starter and Engine
The Radioss Starter takes as input the model or commonly called Starter input file runname_0000.rad and creates the Starter output file runname_0000.out. The Radioss Starter is responsible for checking the model consistency and reporting any errors or warnings in the output file. If there are no errors in the model, the Radioss Starter creates initial restart file(s), runname_0000_CPU#.rst. There is one restart file created for each SPMD MPI domain requested for the solution.
Memory and Disk Requirements
STARTER MEMORY USAGE 1486 MB
LOCAL ENGINE STORAGE EVALUATION FOR SPMD PROCESSOR 1
--------------------------------------------------------
MEMORY USED FOR REALS 80 MB
MEMORY USED FOR INTEGERS 35 MB
TOTAL MEMORY EVALUATION 115 MB
RESTART FILE SIZE 60091KB
...
LOCAL ENGINE STORAGE EVALUATION FOR SPMD PROCESSOR 18
--------------------------------------------------------
MEMORY USED FOR REALS 83 MB
MEMORY USED FOR INTEGERS 38 MB
TOTAL MEMORY EVALUATION 122 MB
RESTART FILE SIZE 63349KB
** MEMORY USAGE STATISTICS **
TOTAL MEMORY USED .........................: 10284 MB
MAXIMUM MEMORY PER PROCESSOR...............: 605 MB
MINIMUM MEMORY PER PROCESSOR...............: 562 MB
AVERAGE MEMORY PER PROCESSOR...............: 571 MB
** DISK USAGE STATISTICS **
TOTAL DISK SPACE USED .....................: 1421485 KB
ANIMATION/TH/OUTP SIZE ....................: 200950 KB
RESTART FILE SIZE .........................: 1220535 KB
Recommendations for Using Multiple Cores
Modern CPUs typically have multiple cores which can be utilized to reduce solution times.
Three different parallel computing methods are available, Shared-Memory Parallelism (SMP), single program multiple data (SPMD) and Hybrid (a combination of SMP and SPMD) to solve a problem.
The SMP method uses the specified cores (often called threads) to solve the whole model.
The SPMD method splits a model into separate domains which are solved separately and communication between the domains is handled by a message passing interface (MPI) software.
In Hybrid mode, the model is split into separate domains and then multiple cores (threads) are used to solve each domain. Hybrid mode reduces the amount of communication because there are less domains as compared to using only the SPMD method. This is useful when using a very large number of cores on a computer cluster or when using two workstations connect via a slow network.
-nt
NumThreads for SMP-np
NumDomains for SPMD-nt
NumThreads-np
NumDomains for Hybrid
Recommendations depend on the computer setup available.
Single Workstation
- Use only SPMD by specifying the run option,
-np
NumDomains - NumDomains should be the number of cores available on the workstations’ CPU
- If Hyperthreading is enabled for the CPU, the computer will appear to have
twice as many cores as listed in the CPU specification. These extra cores
are virtual and thus, provide only a small amount of speedup. A 5% speedup
can be obtained by using these extra cores but extra licenses will be used
because the number of license depends on the number of cores requested. If
utilizing hyperthreading, the hybrid mode with 2 SMP threads,
-nt 2
, will give the best speedup. For example, if an 8 core CPU is being used, thenradioss -nt 2 -np 8
model_0000.rad.
Computer Cluster
- When the number of cores used < 256, the fastest solution times can be
obtained by using only SPMD via,
-np
NumDomains.Note: The default value of-nt
=1, so it does not need to be included. - When the number of cores used > 256, hybrid mode should be used,
-nt
NumThreads-np
NumDomains. NumThreads= 2 and NumDomains= (# cores to be used) / 2.For example, if a cluster node contains 2 CPU, with each CPU having 8 cores. To use 512 cores, NumThreads=2 and NumDomains = 512/2=256.
- All the cores available on a compute node should be used and dedicated to the Radioss solution, that is, if a compute node has 16 cores, then the number of cores available to use should be multiples of 16.
- Hyperthreading cores should not be used in a solution and if possible, hyperthreading can be disabled in the system bios.
It is recommended to use a job scheduler, like Altair PBS to manage the cluster.
Two or Three Workstations
It is possible to use two or three workstations connected with gigabit ethernet to solve one Radioss simulation.
- For best results, all machines should have identical hardware, or at least have the same CPU and, be connected with gigabit ethernet or faster network.
- Hybrid mode can be used to minimize network communication,
-np
NumDomains-nt
NumThreads. Start by setting NumThreads=2 and NumDomains=(total # cores available on all machines)/NumThreads. Run a benchmark model and compare the time to running the model on just one workstation. - Next, increase the NumThreads and rerun the benchmark to see if there is any
additional speedup. NumThreads should be ≤ number of cores on 1 CPU.
NumDomains must be a multiple of the of number of computers used. For example, if using 2 Workstations each with two CPU and each CPU has 8 cores. 2*2*8=32 cores available.
-nt 2 -np 16
= OK-nt 4 -np 8
= OK-nt 8 -np 4
= OK
- If hyperthreading is enabled for the CPUs, do not use the extra hyperthreading cores.
Additional setup is required as detailed in the Altair HyperWorks Advanced Installation Guide.
Model Size
When using multiple cores to solve a simulation, there must be a reasonable number of elements in the simulation.
A good balance of speedup and throughout is obtained by making sure there are at least 10000 elements in the model for every core used in the solution. So, for a model with 320,000 elements, 320,000/10000=32 cores. Usually, additional speedup can be obtained down to 1000 elements per core.
Use a Different Number of Cores
The Starter can use multiple cores via SMP parallelization.
For extremely large models that will run using a large number of SPMD domains, the
Starter will run faster if multiple SMP cores are utilized for domain decomposition
and to create the restart files. When using the Compute Console (ACC) or included
script, the Starter and Engine must be ran separately using the
-onestep
option. For example, assuming a very large 3 million
element model that will run on 120 cores on a compute server with 12 cores per
CPU.
The Starter will use 12 cores to calculate the 120 SPMD domains and create the restart files.
radioss -nt 12 -np 120 -onestep
model_0000.rad
The Engine will use 120 cores using SPMD parallelization.
radioss -nt 1 -np 120 -onestep
model_0001.rad
Advanced Techniques
There are various advanced techniques which can be useful to check on the status of a simulation, stop a simulation, modify some simulation options, or use single precision.
Control File (C-File)
The optional control file is used to get information about a currently running analysis.
While a simulation is running, it can be very useful to find out more information than is printed in the Engine output file. This can be done using a Radioss control file which has the same prefix name as the current Engine input file but ends in *.ctl. If the current running Engine file is named TensileTest_0001.rad, the control file should be named TensileTest_0001.ctl.
- Retrieve the current state of the simulation including current simulation time, time step, cycle, energy information, and estimated remaining time
- Stop the computation immediately, or at a specified time or cycle number
- Create an animation immediately, or at a specified time or cycle number
If the Compute Console (ACC) is not being used, the control file can be created using a text editor and saved in the directory where Radioss is writing the Engine output file.
- Action
- Result
- /ANIM
- Create an extra animation file (A###). The output frequency defined in the Engine file will not change when this option is used.
- /CHKPT
- Create a file named CHECK_DATA which contains /RERUN commands to continue a simulation if it is stopped. Usually used in combination with /STOP to stop the simulation. Not available with the implicit solution.
- /CYCLE/Nbcycle
- The control file commands will be executed at the specified cycle number.
- /H3D
- Write animation data to the *.h3d file. The output frequency defined in the Engine file will not change when this option is used.
- /INFO
- Returns information on current cycle, current global energies, current time step. This information is always written for all options.
- /KILL
- Kill the simulation and do not create a restart file.
- /RFILE
- Create a restart file.
- /STOP
- Stop the simulation and create a restart file, so it can be restarted.
- /TIME/timeValue
- The other control file commands will be executed at the specified simulation time.
When Radioss detects the control file, the current status of the simulation is written in the same control file using the options were entered.
/TIME/.1
/ANIM
/CHKPT
/STOP
RUN CONTROL FILE
----------------
WRITE NEXT ANIMATION FILES AT TIME 0.1000000
WRITE NEXT RESTART FILE AT TIME 0.1000000
RUN STOP AT TIME 0.1000000
CURRENT STATE:
--------------
CYCLE = 13040
TIME = 0.8153611E-02
TIME STEP = 0.6252749E-06SOLID 70
ENERGY ERROR = 0.0%
INTERNAL ENERGY = 0.1188329E-02
KINETIC ENERGY = 0.1050914E-07
ROT. KIN. ENERGY = 0.000000
EXTERNAL WORK = 0.1188431E-02
MASS.ERR (M-M0)/M0 = 0.000000
CURRENT ELAPSED TIME = 4.88 s
REMAINING TIME ESTIMATE = 594.04 s
Multiple Engine Files
It is possible to define multiple Engine files to change the solution control and output during a simulation.
- Initializing gravity or pre-tension before a simulation.
- Changing write frequency of output files, such as animation files, (/ANIM/DT, /H3D/DT), time history (/TFILE), and restart (/RFILE).
- Changing the time step control options used, (/DT/Keyword).
- Modifying system damping (/DAMP, /DYREL, or /KEREL).
- Adding or removing boundary conditions (/BCS/Keyword) or defining initial conditions (/INIV/Keyword).
- Removing elements (/DEL/Eltyp) or turning on or off rigid bodies (/RBODY/Keyword2).
Define and Run Multiple Engine Input Files
As mentioned above, the first Engine file is named runname_0001.rad. When creating a second Engine file, the number is increased by 1 for the next Engine file to a maximum of 9999 Engine files. So, the second Engine file would be named runname_0002.rad. To avoid a warning message, the Engine file number should also match the Run Number listed in the keyword, /RUN.
/RUN/TensileTest/1
5.0
/TFILE
0.005
/ANIM/DT
0. 0.5
/ANIM/TENS/STRESS/MEMB
/PRINT/-1000
/DT/NODA/CST
0.9 1e-6
/RUN/TensileTest/2
10.0
/TFILE
0.0005
/ANIM/DT
0. 0.05
/ANIM/TENS/STRESS/MEMB
/PRINT/-10
/DYREL
1.00 0.002
/DT/NODA/CST
0.9 1e-7
Checkpoint File
A checkpoint file is used to continue a stopped simulation.
If no changes need to be made to the Engine file, a stopped Radioss simulation can be continued by using a checkpoint file named CHECK_FILE containing the /RERUN/Run Name/Run Number option. The CHECK_FILE can be created using a text editor or by stopping the simulation using the Compute Console (ACC), solver control options STOP and CHKPT.
The CHECK_FILE can be created using a text editor by copying the
original Engine file to the CHECK_FILE name, changing the
/RUN line to /RERUN, and deleting all
other lines from the file. When using the Altair Compute
Console or Radioss script to restart the solution, the
Starter or Engine file can be selected as the input file and use the same input
options and number of processors that were defined before and add the
-checkpoint
option. For example,
radioss -np 4 -checkpoint
tensileTest_0000.rad
If running Radioss directly with the executables, the CHECK_FILE should be given as input to the Engine executable.
Single Precision Computation
The single precision version of Radioss is referred to as extended single precision, since most calculations are single precision but some remain double precision to obtain a more accurate result.
By default, Radioss uses a double precision floating-point format when completing a calculation as opposed to other explicit solvers which utilize single precision by default. The double precision format uses 15 to 17 significant decimal digits precision; whereas, the single precision format uses 6 to 9 significant decimal digits precision.
Although model dependent, the single precision version runs 30% - 40% faster than the double precision version.
When single precision is used in a calculation, there is more round-off error in the floating point calculations due to the reduced number of significant digits in single precision. Since explicit calculations calculate one cycle at a time and the next cycle is based on the previous cycles calculations, simulations with a large number of cycles can accumulate rounding error as the simulation progresses resulting in a less precise result.
- Larger number of solution cycles due to a small timestep or long simulation time.
- Small element size
- Airbag simulations
- Implicit simulations
- Fluid and Fluid - Structure interaction simulations, ALE, CEL
- High-speed impact such as ballistic simulations
The easiest way to determine if a simulation will return accurate results using single precision calculations is to compare the single precision results to the double precision results to identify any large differences. The single and double precision results will not be identical, but they should be very close.
Start a Single Precision Simulation
When using the Compute Console (ACC), the single precision version can be launched
using the -sp
option.
radioss -np 24 -sp
tensile_model_0000.rad
If using the Radioss executables directly, the single
precision version is ran using the executables that include the
“_sp
” name for both the Radioss
Starter and Engine.
./s_<version>_<platform>_sp –i
<prefix>_0000.rad
./e_<version>_<platform>_sp –i
<prefix>_0001.rad