[FLASH-USERS] Fatal error in MPI_Address

Dinesh Kandel dkandel at ualberta.ca
Wed Oct 11 14:15:34 EDT 2017


Thank you Klaus. I made changes you suggested. However, I am getting error
with one of the changes you suggested. I tried with/without changing
MPI_TYPE_STRUCT
to MPI_TYPE_CREATE_STRUCT, but both seem to give the same error. Do you
have any idea why this is so? Here is the output:

 *** Wrote checkpoint file to sedov_hdf5_chk_0005 ****

 exiting: reached max SimTime

 *** Wrote plotfile to sedov_forced_hdf5_plt_cnt_0000 ****

Fatal error in MPI_Type_create_struct: Invalid datatype, error stack:

MPI_Type_create_struct(173): MPI_Type_create_struct(count=4,
array_of_blocklengths=0x7fff53b22f00,
array_of_displacements=0x7fff53b22f40, array_of_types=0x7fff53b22f20,
newtype=0x7fff53b22ef8) failed

MPI_Type_create_struct(142): Invalid datatype

[unset]: write_line error; fd=-1 buf=:cmd=abort exitcode=805970691

:

system msg for write_line failure : Bad file descriptor

On Wed, Oct 11, 2017 at 10:16 AM, Klaus Weide <klaus at flash.uchicago.edu>
wrote:

> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://flash.rochester.edu/pipermail/flash-users/attachments/20171011/b712fc27/attachment.htm>


More information about the flash-users mailing list