[FLASH-USERS] Fatal error in MPI_Address
Klaus Weide
klaus at flash.uchicago.edu
Wed Oct 11 13:16:18 EDT 2017
On Tue, 10 Oct 2017, Dinesh Kandel wrote:
> The solution suggested by Cory worked. I was able to run Flash 4 as:
> ./flash4
>
> This produces series of output table numbers. But, at the end it returns me
> an error:
>
> Fatal error in MPI_Address: Invalid argument, error stack:
>
> MPI_Address(285): An address does not fit into a Fortran INTEGER. Use
> MPI_Get_address instead
>
> [unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=402713612
>
> :
>
> system msg for write_line failure : Bad file descriptor
>
>
> Could anyone let me know how to fix this?
This fatal error occurs at the very end of a FLASH run, when FLASH is
trying to generate the second of the Timers summaries that usually are
written at the end of a log file. All computations will have been done by
that point, and all output files should have been written.
The fix would involve only a few changes in
subroutine tmr_broadcastRootTimers
in the source file
source/monitors/Timers/TimersMain/MPINative/Timers_getSummary.F90 :
* change declaration of the 'offsets' array from
integer :: offsets(5)
to
integer(kind=MPI_ADDRESS_KIND) :: offsets(5)
* change MPI_ADDRESS to MPI_Get_Address (several occurrences);
* change MPI_TYPE_STRUCT to MPI_TYPE_CREATE_STRUCT (once).
That should work for MPI-2 (and later), but would break compatibility with
MPI-1.
> Note that when I run flash using mpirun as: mpirun -np 2 ./flash4, I get
> the following error:
>
> Fatal error in MPI_Init: Other MPI error, error stack:
That appears to be a problem related to your MPI installation(s),
difficult to analyze remotely.
Klaus
More information about the flash-users
mailing list