Closed lu-kas closed 1 year ago
I implemented Option 2 for the moment. The reason why I did not implement Option 1 is because we often have trouble initiating MPI on a new system. If we print out the information about FDS before MPI_INIT, we can at least confirm that the program is running.
@mcgratta I am not keen on the current implementation. I am running cases now that have input file errors, but I do not see the code version information. I think to address Lukas, we just need to not print the MPI information.
Or, initialise the variable with number of MPI processes to, e.g., 0. This value then gets set to the right number once MPI is initialised.
Overall, this is not a big thing. If it breaks common working paths, then just leave it as it is. I have my lesson learned.
This might be a red herring. The only thing I did was not print out the number of MPI processes if there is no input file. Everything else should be the same.
OK, things looked odd, but could be something else. Thanks
Well, I've discovered I used this info without the input file more than I thought; for example, just to see if I have pointed to the OMP or serial version.
MPI Enabled; Number of MPI Processes: 1
OpenMP Disabled
Could we do something like this:
IF (INPUT_FILE_INCLUDED) THEN
WRITE(LU,'(A,I6)') ' MPI Enabled; Number of MPI Processes: ',N_MPI_PROCESSES
ELSE
WRITE(LU,'(A)') ' MPI not initialized '
ENDIF
IF (.NOT. USE_OPENMP) WRITE(LU,'(A)') ' OpenMP Disabled'
IF (USE_OPENMP) WRITE(LU,'(A,I6)') ' OpenMP Enabled; Number of OpenMP Threads: ',OPENMP_AVAILABLE_THREADS
OK, I changed the output to what you suggested.
Dear all.
This is nothing big, but – in my opinion – an inconsistency. While debugging an MPI environment for the application of FDS, I misinterpreted the output of FDS, now for a second time, and was trying to find errors in the software stack – although everything was fine.
The output of FDS regarding the number of involved MPI processes is different if an input file is passed or not. To demonstrate this, the following two examples show the output of FDS within the same MPI environment (3 processes):
No input file passed leads to an output, as if FDS was called three times 'serially', i.e. the number of MPI processes is not correct:
Now with an input file passed:
I would not expect the first 'serial' output of an MPI application, if everything (application, environment, etc.) is set up correctly. I would like to propose two approaches:
What are your opinions about this?
Thanks! Lukas