Hi!
Currently, I am trying to run an Intel oneAPI compiled version of FDS 6.7.7 on a Linux cluster. The problem that I have is that the Bash script does not let me assign more processes (or threads...) but instead just runs FDS multiple times. For the sake of clarity I will first include the Bash script that I am using and then provide further information. I apologize for the rather long question, I believe all that I included might be relevant.
Any help is much appreciated.
The script (removed unnecessary long paths to directories):
#!/bin/bash
# Job Name
#PBS -N M14_opt0
# Amount of nodes and processors per node. Amount of processors is up to amount of meshes.
#PBS -l nodes=1:ppn=12
# Maximum time after which the simulation is automatically stopped.
#PBS -l walltime=00:01:00
# Amount of simultaneous processes. (Same as amount of processes)
export OMP_NUM_TREADS=12
export I_MPI_PIN_DOMAIN=omp
# Load OpenMPI
module load devtoolset/8 intel/oneapi_2022u1 mpi/openmpi-1.8.8-intel
# Removes stack size limit
ulimit -s unlimited
# Navigate to the FDS file you want to run
cd "<path>"
# Run the fds file
# np gives number of processes (here 12), second term navigates to FDS application, and third is the name of your .fds file
mpiexec -np 12 <path>/firemodels/fds/Build/impi_intel_linux_64/fds_impi_intel_linux_64 2m_M14.fds
The error log of the run returns the following:
Starting FDS ...
MPI Process 0 started on n11-73
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Starting FDS ...
MPI Process 0 started on n11-73
Reading FDS input file ...
Reading FDS input file ...
ERROR: MATL_ID, vegetation, on SURF, foliage, does not exist (CHID: 2mM14_cat)
ERROR: FDS was improperly set-up - FDS stopped (CHID: 2mM14_cat)
Fire Dynamics Simulator
Current Date : January 26, 2024 10:44:00
Revision : FDS6.7.7-0-gfe0d4ef-HEAD
Revision Date : Thu Nov 18 17:10:22 2021 -0500
Compiler : Intel ifort 2021.2.0
Compilation Date : Jan 25, 2024 14:27:11
MPI Enabled; Number of MPI Processes: 1
OpenMP Enabled; Number of OpenMP Threads: 1
MPI version: 3.1
MPI library version: Intel(R) MPI Library 2021.2 for Linux* OS
Job TITLE : Concatenated : Validation based on the 2m, 14 % trees from Mell et al. (2009)
Job ID string : 2mM14_cat
I suspect the FDS input file errors are an artifact of the incorrect setup of the Bash script, as the FDS input file runs fine using a single process and node.
_____________________
Background information:
For the compiled FDS we load
module load devtoolset/8 intel/oneapi_2022u1 mpi/openmpi-1.8.8-intel
instead of
module load mpi/openmpi-x86_64
The reason for this is that the latter returned the error:
/Build/impi_intel_linux_64/fds_impi_intel_linux_64: error while loading shared libraries: libiomp5.so: cannot open shared object file: No such file or directory
I assumed this was a result of compiling FDS using Intel OneAPI.
The script that we use to submit a job for the pre-compiled FDS:
#!/bin/bash
# Job Name
#PBS -N M14_2m_old
# Amount of nodes and processors per node. Amount of processors is up to amount of meshes. (generally, try to use one node, and then the amount of processors you need)
#PBS -l nodes=1:ppn=12
# Maximum time after which the simulation is automatically stopped.
#PBS -l walltime=500:00:00
# Amount of simultaneous processes. (Same as amount of processes)
export OMP_NUM_TREADS=12
export I_MPI_PIN_DOMAIN=omp
# Load OpenMPI (program that distributes tasks between processors)
module load mpi/openmpi-x86_64
# Direct to the folder where FDS is installed
# export MODULEPATH=[direct to fds module]
export MODULEPATH=$<path>/FDS6.7.7_SMV6.7.18/bin/modules:$MODULEPATH
# Activate FDS
module load FDS6
# Navigate to the FDS file you want to run
cd <path>
# Run the fds file
# np gives number of processes (here 12), second term navigates to FDS application, and third is the name of your .fds file
mpiexec -np 12 <path>/FDS6.7.7_SMV6.7.18/bin/fds 2m_M14.fds
Works as intended with log:
Starting FDS ...
MPI Process 0 started on n11-73
MPI Process 8 started on n11-73
MPI Process 4 started on n11-73
MPI Process 1 started on n11-73
MPI Process 3 started on n11-73
MPI Process 5 started on n11-73
MPI Process 6 started on n11-73
MPI Process 7 started on n11-73
MPI Process 9 started on n11-73
MPI Process 10 started on n11-73
MPI Process 11 started on n11-73
MPI Process 2 started on n11-73
Reading FDS input file ...
Fire Dynamics Simulator
Current Date : January 25, 2024 09:32:42
Revision : FDS6.7.7-0-gfe0d4ef38-release
Revision Date : Thu Nov 18 17:10:22 2021 -0500
Compiler : Intel ifort 2021.4.0
Compilation Date : Nov 19, 2021 08:15:06
MPI Enabled; Number of MPI Processes: 12
OpenMP Enabled; Number of OpenMP Threads: 1
MPI version: 3.1
MPI library version: Intel(R) MPI Library 2021.4 for Linux* OS