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 Start > 2021.2 > Compute Console.

The Compute Console (ACC) can be launched from within the software by selecting the Help > Compute Console Manual.

On all platforms, this utility can be started from the command line
Linux
<install_dir>/altair/scripts/radioss -gui
Windows
<install_dir>/hwsolvers/scripts/radioss.bat -gui

Input Filename

Based on the input filename, the Compute Console (ACC) automatically detects if it should run the Starter or Engine.
  • 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 –nt 2)

-np Number of SPMD MPI domains Number of Radioss SPMD MPI domains.

(Example: radioss ROOTname_0000.rad –np 12)

All Available Run Options

Any arguments containing spaces or special characters must be quoted in {}, for example:
-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: \"\{-x\} \{-f=C:/file name/path\}\"

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:
  1. The –delay option applies to the current job. If the job is submitted to the Compute Console (ACC) queue, then the delay will start after the Compute Console (ACC) releases this job to run.
  2. If the run is started using the Compute Console (ACC), the Schedule delay option should be used to delay starting the queue.
All Platforms
-dylib FILE Set name to the dynamic library for Radioss User Subroutines All Platforms
-hostfile TEXT FILE Text file that list 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. All Platforms
-mpi i , pl, ms Specify which MPI software is used for multiprocessor (SPMD) run.
i
Intel MPI
pl
IBM Platform-MPI (formerly HP-MPI)
ms
Microsoft MPI
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 Simulation 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: radioss -np 4 ROOTname_0000.rad

All Platforms
-nt or -nthread Number of thread Number of SMP threads per SPMD MPI domain.

Example: radioss -i ROOTname_0000.rad -np 4 -nt 2

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: radioss -v 14.0.220 ROOTname_0000.rad

All Platforms

Solver Control

When the Use solver control option is checked in the initial Compute Console (ACC) input screen, a solver view window will appear when the analysis starts running. This will allow the user to select one of the options (INFO, STOP, KILL, H3D, ANIM, RFILE, and CHKP) and click Send Command. For more details on all of these options, refer to Control File (C-File).


Figure 1.
Note: The ANIM or H3D option can be used to create an extra animation file at the current or specified time or cycle. This is very useful when wanting to see the status of a simulation. The STOP option can stop the analysis and create a restart file that can later be used to continue the solution.

From an Altair Simulation Script

Launch Radioss from a command line using the script included in 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.

To run on Linux from the command line, type the following:
<install_dir>/altair/scripts/radioss  "filename" -option argument
To run from a Windows DOS prompt, type the following:
<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.

The panels can be accessed through the Analysis page, through the Utility menu, or through the Applications menu. The panel will ask for the input filename. After clicking the Solver button, the model is exported using the given export options. Then the Solver runs the script that is provided locally on the machine. After Solver execution, the results can be viewed in HyperView by clicking HyperView.
Note: On Linux, when running Radioss from HyperMesh, a shell is spawned with the DISPLAY setting <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 Simulation 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/

The per thread stacksize environment variable should also be defined when using the SMP version.
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 stacksize memory should be set to unlimited using these commands depending on login shell.
Using csh shell
limit stacksize unlimited
Using sh shell
unlim -s unlimited

The Radioss executables can be found in <install_dir>\hwsolvers\radioss\bin\<platform>\.

Now to run the Radioss Starter and Engine:
./s_<version>_<platform> –i <arguments> <prefix>_0000.rad
./e_<version>_<platform> –i <arguments> <prefix>_0001.rad

Refer to the Altair Simulation 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.

The values are:
0
Normal termination.
2
Model or computation error.
3 or 128 + Signal number
Process failure (core dump, segmentation fault).
In Linux the error code is set by the operating system: 136 (floating point exception) or 139 (segmentation fault). The exit code can be obtain using the ‘$?’ command in a Linux shell script.
#!/bin/bash
s_2021.1_linux64 –input [Starter_input]_0000.rad –np 96
Exit_code=$?
echo $Exit_code
In Windows, use the "errorlevel" variable in a script.
s_2021.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
-help -h Print help message
-version -v Print Radioss release information
-input [FILE] -i Set Radioss Starter input file
-nspmd [INTEGER] -np Set number of SPMD domains
-nthread [INTEGER] -nt Set number of threads per SPMD domains
-notrap   Disable error trapping
-check   Option to check the model. Disable domain decomposition and restart file writing.
-outfile=[output path]   Defines the output file directory for all files created.
-HSTP_WRITE   Write an <root_name>_0000.rad2hst file containing model the /PARAMETER information.
-HSTP_READ   Read in a hst_input.hstp file and replace the input deck’s /PARAMETER with the ones defined in the .hstp file.
-rxalea [REAL]   Activation of nodal random noise with a [value] xalea.
-rseed [REAL]   Optional value: Set the seed value for nodal random noise.

-help Argument

Prints help information on the command line arguments.

Radioss Starter exits after the printout.

-version Argument

Prints Radioss release information.

Information printed includes:
  • 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

where:

ROOTNAME is the dataset rootname

RUN NUMBER is the run number expressed in four numbers.

e.g. CRA2V51_0000.rad
ROOTNAME: CRA2V51
RUN NUMBER: 0000
Note:
  • ROOTNAME and RUN NUMBER are extracted from the input file.
  • The dataset ROOTNAME and RUN NUMBER settings in /BEGIN are ignored when the -input command option is used.
  • If the file name doesn't 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_2021.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_2021.1_linux64 -nspmd 4
Note:
  • 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_2021.1_linux64 -nthread 2
Note:
  • 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
  1. -version
  2. -help
  3. -nspmd, -input, -nthread, -notrap
Note: Arguments 1, 2 and 3 cannot be used together.

-nspmd, -nthread, -notrap and -input can be used together; and the order does not matter.

If an error is encountered like:
  • 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
Linux:
s_2021.1_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
s_2021.1_linux64 -i TENSI36_0000.rad -outfile="../my directory"
s_2021.1_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
Windows:
s_2021.1_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
s_2021.1_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
s_2021.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.

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 of mpirun 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.
Radioss Engine supports the following command line arguments. Each argument has a long and a short form. These are executable arguments.
Argument Short Form Description
-help -h Print help message
-version -v Print Radioss release information
-input [FILE] -i Set Radioss Engine input file
-nthread [INTEGER] -nt Set Number of SMP threads per SPMD domain
-notrap   Disable error trapping
-norst   Disable restart *.rst file writing during and at the end of the computation
-outfile=[output path]   Defines the output file directory for all files created.

-help Argument

Prints help information on the command line arguments.

Radioss Engine exits after the printout.

-version Argument

Prints Radioss release information.

Information includes:
  • 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

where:
  • ROOTNAME is the dataset rootname
  • RUN NUMBER is the run number expressed in four numbers.
Note:
  • ROOTNAME and RUN NUMBER are extracted from the input file.
  • The dataset ROOTNAME and RUN NUMBER settings in /RUN are ignored, when the -input command option is used.
  • If the file name doesn't 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
Note:
  • 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
  1. -version
  2. -help
  3. -input, -nthread, -notrap

The argument order in the command line does not matter.

If an error is encountered like:
  • 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.

Example of incorrect commands:
[user@machine]$ ./s_2019_linux64 -nspmd 4 -input CRA2V51_0000.rad
[user@machine]$ mpirun -np 2 ./e_2019_linux64 impi -input CRA2V51_0001.rad
In this case, Radioss will display an error message in standard output and listing file:
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
Example of correct commands:
[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
Linux:
e_2020.1_linux64 -i TENSI36_0000.rad -outfile=/storage/files/run1
e_2020.1_linux64 -i TENSI36_0000.rad -outfile="../my directory"
e_2020.1_linux64 -i TENSI36_0000.rad -outfile="/storage/files/my directory"
Windows:
e_2020.1_win64.exe -i TENSI36_0000.rad -outfile=c:\storage\files\run1
e_2020.1_win64.exe -i TENSI36_0000.rad -outfile="../my directory"
e_2020.1_win64.exe -i TENSI36_0000.rad -outfile="c:/storage/files/my directory

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.

The second part of the Radioss computation is called the Radioss Engine. The Radioss Engine takes as input the Radioss Engine file, runname_0001.rad and the initial restart file(s) created by the Radioss Starter. The Radioss Engine files describes the solution control and output for the simulation. While the Radioss Engine is running, an Engine output file, runname_0001.out, is created which contains statistics about the simulation including time, time step, current system energeies, energy error, and mass error.


Figure 2. Radioss Calculation Process when a Single MPI Domain is Used

Memory and Disk Requirements

Memory is allocated automatically by the Radioss Starter and the amount used is listed in the Starter output file.
STARTER MEMORY USAGE       1486 MB
Next the Starter gives a memory estimation and restart file size for every MPI process.
     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
After the Radioss Engine is done running, the Engine output file contains details about actual memory and disk space used by a simulation.
                   ** 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.

The number of cores to use for each method is specified using the Compute Console (ACC) input option:
  • -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 enable 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 then the hybrid mode with 2 SMP threads, -nt 2, will give the best speedup. For example if an 8 core CPU is being used then, radioss -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 be 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 enable for the CPUs, do not use the extra hyperthreading cores.

Additional setup is required as detailed in the Altair Simulation 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, then the control file should be named TensileTest_0001.ctl.

Some reasons to use a control file include:
  • 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 a simulation is launched in the Altair Compute Console with solver control options checked, the following dialog will appear and a control file will be created automatically using the selected options when the Send Command button is selected.


Figure 3.

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.

The following options are available to be used in the control file with each option placed on its own line. Unless /TIME or /CYCLE is included, the action is taken immediately after Radioss reads the control file. Otherwise, the action is taken at the /TIME or /CYCLE specified.
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.

For example, a simulation is running on remote system and thus not started using the Altair Compute Console. Since the Engine input file is named, TensileTest_0001.rad, a control file named TensileTest_0001.ctl is created with the following information and uploaded to the working directory of the simulation.
/TIME/.1
/ANIM
/CHKPT
/STOP
When Radioss detects the control file, the following information is written into the same TensileTest_0001.ctl file with information about the current state of the simulation and execution of the control file commands. At t=0.1 in the simulation, Radioss will create an animation file, a CHECK_DATA file, a restart file, and stop the simulation.
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.

Some common use cases of this powerful feature include:
  1. Initializing gravity or pre-tension before a simulation.
  2. Changing write frequency of output files, such as animation files, (/ANIM/DT, /H3D/DT), time history (/TFILE), and restart (/RFILE).
  3. Changing the time step control options used, (/DT/Keyword).
  4. Modifying system damping (/DAMP, /DYREL, or /KEREL).
  5. Adding or removing boundary conditions (/BCS/Keyword) or defining initial conditions (/INIV/Keyword).
  6. 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.

Example: First Engine file, TensileTest_0001.rad
/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
Example: Second Engine file TensileTest_0002.rad with changed options.
/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 made 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 changed 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 from 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.

To minimize round off error, it is recommended to use the default version of Radioss which is double precision. This is most important in simulations that have these characteristics:
  • Larger number of solution cycles due to a small time step 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 give 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