[FLASH-BUGS] MPI bug on SGI
Markus Gross
m.s.gross at hw.ac.uk
Thu Apr 17 14:18:26 CDT 2003
Hi!
I belive I have just encountered a bug in at least one FLASH routine.
Our System:
SGI origin IRIX64 6.5 07091542 IP35
MPI 3.2.0.7 (MPT 1.4) -mpi Version 1266208220
MIPSpro Compilers: Version 7.4
Problem:
3-D hydro starting with 5x5x3 blocks, maxref we get a:
*** MPI has run out of request entries.
*** The current allocation level is:
*** MPI_REQUEST_MAX IOT Trap
MPI: MPI_COMM_WORLD rank 0 has terminated without calling MPI_Finalize()
MPI: aborting job
when:
[04-17-2003 18:48.39] <<< refined: tot_blocks [04-17-2003 18:48.59] *** plot file: gas_pre_hdf_plt_cnt_0009
[04-17-2003 18:49.08] *** wrote to gas_pre_hdf_plt_cnt_0009
[04-17-2003 18:49.41] step 91 t [04-17-2003 18:50.12] step 92 t
MPI_REQUEST_MAX decreased using the enivronment variable.
I tracked that down to at least one non-blocking send to a blocking receive
where the send reqest was not freed. This happens at least is:
line 241 AMR_redist_blk.F90 FLASH 2.2 & 2.1
according to the MPI standard that should be fixed by having a MPI_WAIT
following the non-blocking send immediately.
I attached a test program to this email which illustrates this point (at
least on our system). Version as supplied should fails, if you uncomment the
MPI_wait it should run until forever.
Please let me know what you think about this and if I am right, if there are
more if these problems in the code (I presume you would know from the top of
your head). I try to get through it tonight, but Flash is a little bit
bigger, so help would be appreciated.
Regards,
Markus.
--
_______________________________________________________________
Markus Gross AMIMechE BEng (Hons.) Mechanical Engineering
Heriot Watt University Edinburgh
Department of Mechanical and Chemical Engineering
Associate member of the Institution of Mechanical Engineers
Member of the SPIE
_______________________________________________________________
further contact:
Phone : +44 (0) 131 449 5111 etx. 4737
UNiX talk: talk markus at lasersim.mce.hw.ac.uk
_______________________________________________________________
"Plans are a place to begin," Grove said. "They rarely deliver
you to where you expect. Make your plans knowing you are going
to throw them away."
_______________________________________________________________
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org
mQGiBDt30nARBACUL2XadcLU9YS+3ndnWUUpnrhAD3Ab/TqJP1Obtz7H356+vigu
2m3exw2P9fky08SBdTbjOCV5OTmVcRW5F0SNMTIl8gXtGdIcQHCcZxi1GcRJtTBj
npfRCmZojHr8YgsKDdJ9xupNm+UYWcg1BpFX7xe65kXM4oVwVyuCcUT+VwCg6/Hd
6oVoRHm1eq1NdMbCfsc9x78D/2uGQSMJBKewQ/uSPpdEg+bkAQo5Y7MooEeYpLk9
Iroo4rqxp12k0+bWHWVMdfywI80tivorTIgBTKpCtjLaiKen9E9zECo+2OR4+XRQ
O6cBKXOm+V2lJOpFYOh500tJHPggshD21jksNPKJr9CM1byeZFw38fFJez+DyShZ
Gmc6A/9L21jqbVjxvAPwaqe09GEmpT1EYOWtcPYSh2cuo1v6XsGFXfi8tnRSizhH
xsyIfuOUuj0NKRIcXH60awrvABSa45fvQUefPw0hxSwdCnfc0yEqcD4x/03xTZJS
1hUK3T4oTlrXNugaCb59ezciEIh2y/d8pW1DR3RMcgXUSz39tLQhTWFya3VzIEdy
b3NzIDxtLnMuZ3Jvc3NAaHcuYWMudWs+iFcEExECABcFAjt30nAFCwcKAwQDFQMC
AxYCAQIXgAAKCRBTnmsr4a/0+e3tAJoDk08MfeqB83FXP6g8QlDyTlotSwCgiKwS
PPkVAbopX8mahpkrphEaunW5Ag0EO3fSghAIAOeLTMjdFkl/xBvjgD2N0n4DCK4N
EVfaXmkJK5dbTM3K6ZsJjILZ/TfC6R8oxYPsYKwkwLJJEe4E/h1TFg7ogDYbViW8
DihOyeN8zKSymLTbbikEJX8aNeCdBRuy87X0pBazDq6//+oTIatS2EsvMyKk0tEZ
Mh0vTmUJqoeorQeAKH66lPsH2A8QI6u0zv17t4S2aLNBXIbKgOJwsglZ1IwjwowR
KEGsLsHInNkP4bnlBjd51RMiJT979QMPmNgLGEId9Vi0oijtF/v6J91GtH++G6WE
HM08DsP/BKjRgO9ivWP7lOHSDCJpGYti5K6g38JAc1H2EoHGLD7eRgI/kR8AAwUH
/j6NVGLxnFGDHGcBXEb2Y4Wwhf/eUeE8Wit0qqRoNypBuzvWl96GXSPj/saQA/Ri
XcFWR1G3E4V/zdxYnU/xvvGADj9jKHpZjAs73fJJxLc85gzHLcx00tHcQVA07Ihr
hao8WY+BtKhkZorYEJEvSDJ9xufjL/o1t40eCsHQ3b9Jh/1lqQ2KT1lhDXAaDo1P
pE38E2uImC0umIW/UtuKJ1k52nXx2qulfcTjAHd35XidwGreH3aHy3fV+x/+wW1T
CQBHy27dG7JL3ESzPiKW0w2miWjtd4k5jqJTfgKI4wFUhAShxTjp8M051ArzopRJ
iX+s7RrHuEXHjh45V1zU5BWIRgQYEQIABgUCO3fSggAKCRBTnmsr4a/0+U/rAJ9o
lOhPGltVnRncYJPzyIk00H0JDQCfWrlnYDh5cRQmhnHilnrVO5Ykr24=i3eC
-----END PGP PUBLIC KEY BLOCK-----
-------------- next part --------------
include 'mpif.h'
INTEGER IERR,MYRANK,lop,test,request
character(len) mpireqmax
integer status(MPI_STATUS_SIZE)
CALL getenv('MPI_REQUEST_MAX',mpireqmax)
write(6,*) 'MPI_REQUEST_MAX=',mpireqmax
CALL sleep(2)
CALL mpi_init(ierr)
CALL MPI_COMM_RANK(MPI_COMM_WORLD,MYRANK,IERR)
IF (MYRANK.EQ.0) THEN
lop
DO WHILE(.TRUE.)
lop
CALL MPI_Isend(test,1,MPI_INTEGER,1,0,MPI_COMM_WORLD,request,IERR)
! CALL MPI_WAIT(request,status,ierr)
write(6,fmt='(I6)',ADVANCE='NO') lop
if(mod(lop,20).eq.0) write(6,*)
END DO
END IF
IF (MYRANK.EQ.1) THEN
lop
DO WHILE(.TRUE.)
lop
CALL MPI_RECV(test,1,MPI_INTEGER,0,0,MPI_COMM_WORLD,status,IERR)
END DO
END IF
CALL MPI_BARRIER(MPI_COMM_WORLD,ierr)
write(6,*) 'past barrier'
call flush(6)
CALL MPI_FINALIZE(MPI_COMM_WORLD,ierr)
END
More information about the flash-bugs
mailing list