O OpenRadioss é uma ferramenta de simulação composta por diferentes partes que trabalham juntas. Vamos entender cada parte:
-
Starter: Antes de começar a simulação, o Starter verifica se o modelo de entrada está correto e divide a malha em partes menores para processar mais rapidamente.
-
Engine: Essa é a parte principal que realmente executa a simulação. O Engine roda em paralelo, aproveitando múltiplos núcleos de processamento para terminar a simulação mais rápido.
-
Bibliotecas: O OpenRadioss usa algumas bibliotecas externas para funcionar corretamente. Você pode encontrar essas bibliotecas aqui.
-
Arquivos de Configuração: Antes de rodar, você precisa configurar a simulação fornecendo alguns arquivos de configuração. Esses arquivos descrevem os dados de entrada para a simulação.
Para executar o OpenRadioss, siga estes passos:
- Prepare o seu modelo e os arquivos de entrada.
- Execute o Starter para verificar e dividir a malha.
- Execute o Engine, passando os arquivos de configuração.
- Aguarde enquanto a simulação paralela é executada.
Em suma, o Starter prepara o modelo, o Engine faz os cálculos pesados paralelamente, e você fornece as bibliotecas e arquivos de configuração necessários. É um processo integrado para realizar simulações complexas de forma eficiente.
Prerequisites
- Environment variables settings under Linux
- Environment variables settings under Windows cmd shell
- Environment variables settings under Windows cygwin shell
Running OpenRadioss
- Running OpenRadioss without MPI (OpenMP only)
- Running OpenRadioss with MPI+OpenMP
- Running OpenRadioss test suite from the source code
- Debugging OpenRadioss with Visual Studio
Download and build OpenRadioss, or download the binaries
Set the following environment variables:
export OPENRADIOSS_PATH=[Path to OpenRadioss root directory]
export RAD_CFG_PATH=$OPENRADIOSS_PATH/hm_cfg_files
export RAD_H3D_PATH=$OPENRADIOSS_PATH/extlib/h3d/lib/linux64
export OMP_STACKSIZE=400m
export LD_LIBRARY_PATH=$OPENRADIOSS_PATH/extlib/hm_reader/linux64/:$LD_LIBRARY_PATH
Set the following environment variables:
set OPENRADIOSS_PATH=[Path to OpenRadioss root directory / Windows Style]
set RAD_CFG_PATH=%OPENRADIOSS_PATH%\hm_cfg_files
set RAD_H3D_PATH=%OPENRADIOSS_PATH%\extlib\h3d\lib\win64
set KMP_STACKSIZE=400m
set PATH=%OPENRADIOSS_PATH%\extlib\hm_reader\win64;%PATH%
-
If OpenRadioss was downloaded from GitHub Releases, add Intel Runtime libraries shipped in the Package to PATH:
set PATH=%OPENRADIOSS_PATH%\extlib\intelOneAPI_runtime\win64;%PATH%
-
If OpenRadioss was built from the Source code, use the Intel Runtime from the used compiler. The Intel oneAPI compiler installed and used for building the binaries could be more recent than the one used for building the Releases. In this case the Runtimes may not be compatible.
In a typical installation, OneAPI variables are load with following command :
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 vs2019
-
If OpenRadioss was built from source code, load the Intel oneAPI variables prior to launch Cygwin. This will load the appropriate Runtime libraries.
call "C:\Program Files (x86)\Intel\oneAPI\setvars.bat" intel64 vs2019 chdir C:\cygwin64\bin bash --login -i
-
If OpenRadioss was downloaded from GitHub Releases,
Cygwin is translating PATH
variable into DOS path to execute OpenRadioss, but not other variables.
Considering that the OpenRadioss directory is placed in C:\OpenRadioss
, then variables should be:
export OPENRADIOSS_PATH=/cygdrive/c/OpenRadioss
export PATH=$OPENRADIOSS_PATH/extlib/hm_reader/win64:$OPENRADIOSS_PATH/extlib/h3d/lib/win64:$PATH
export PATH=$OPENRADIOSS_PATH/extlib/intelOneAPI_runtime/win64:$PATH
export RAD_CFG_PATH=c:/OpenRadioss/hm_cfg_files
export RAD_H3D_PATH=c:/OpenRadioss/extlib/h3d/lib/win64
export KMP_STACKSIZE=400m
Note that variables RAD_CFG_PATH
and RAD_H3D_PATH
start with c:
unlike the PATH
that starts with /cygdrive/c
.
-
Define number of OpenMP threads
-
Under Linux and Windows Cygwin
export OMP_NUM_THREADS=[N]
-
Under Windows
set OMP_NUM_THREADS=[N]
-
-
Run OpenRadioss Starter and Engine from the directory that contains the binaries
-
Under Linux
./starter_linux64_gf -i [Starter input file] -np 1 ./engine_linux64_gf -i [Engine input file]
-
Under Windows
starter_win64.exe -i [Starter input file] -np 1 engine_win64.exe -i [Engine input file]
-
-
Set up environment variables, assuming that OpenMPI is installed in
/opt/openmpi
export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH export PATH=/opt/openmpi/bin:$PATH
-
Run OpenRadioss with P MPI processes and N threads per domain from the directory that contains the binaries
export OMP_STACKSIZE=400m export OMP_NUM_THREADS=[N] ./starter_linux64_gf -i [Starter input file] -np [P] mpiexec -n [P] --map-by socket:PE=$OMP_NUM_THREADS --bind-to core ./engine_linux64_gf_ompi -i [Engine input file]
-
Intel OneAPI MPI must be installed and setup. Variables can le load separately:
call [Path to Intel OneAPI]\env\vars.bat
-
Run OpenRadioss with P MPI processes and N threads per domain from the directory that contains the binaries
set OMP_NUM_THREADS=[N] starter_win64.exe -i [Starter input file] -np [P] mpirun -delegate -np [P] engine_win64.exe -i [Engine input file]
-
Define number of OpenMP threads
export OMP_NUM_THREADS=[N]
-
Run OpenRadioss Starter and Engine from the directory that contains the input file
openradioss.sif starter_linux64_gf -i [Starter input file] -np 1 openradioss.sif engine_linux64_gf -i [Engine input file]
-
Set up environment variables, assuming that OpenMPI is installed in
/opt/openmpi
export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH export PATH=/opt/openmpi/bin:$PATH
-
Run OpenRadioss with P MPI processes and N threads per domain from the directory that contains the input file
export OMP_NUM_THREADS=[N] export OMP_STACKSIZE=400m openradioss.sif starter_linux64_gf -i [Starter input file] -np [P] mpiexec --map-by socket:PE=$OMP_NUM_THREADS --bind-to core -n [P] openradioss.sif engine_linux64_gf_ompi -i [Engine input file]
-
Go to the
qa_test/scripts
directorycd $OPENRADIOSS_PATH/qa-tests/scripts
perl ./or_qa_script ../../exec/engine_linux64_gf 1.0
-
Set up environment variables, assuming that OpenMPI is installed in
/opt/openmpi
export LD_LIBRARY_PATH=/opt/openmpi/lib:$LD_LIBRARY_PATH export PATH=/opt/openmpi/bin:$PATH
-
Run the test suite with P MPI processes, and N threads per MPI process
export OMP_NUM_THREADS=[N] perl ./or_qa_script ../../exec/engine_linux64_gf_ompi --exec_script_args="mpiexec -np [P]" 1.0
The QA test case can be executed under Cygwin. Set the variables like running under Cygwin.
-
Go to the
qa_test/scripts
directorycd $OPENRADIOSS_PATH/qa-tests/scripts
perl ./or_qa_script ../../exec/engine_win64.exe 1.0
-
Set up environment variables assuming Intel OneAPI / MPI is installed & variables loaded.
-
Run the test suite with P MPI processes, and N threads per MPI process
export OMP_NUM_THREADS=[N] perl ./or_qa_script ../../exec/engine_win64_impi.exe --exec_script_args="mpiexec -delegate -np [P]" 1.0