firemodels / fds

Fire Dynamics Simulator
https://pages.nist.gov/fds-smv/
Other
673 stars 627 forks source link

MPI failing with current source #13669

Closed drjfloyd closed 2 weeks ago

drjfloyd commented 3 weeks ago

&HEAD CHID='smv_fail'/

&MESH XB=0,1,0,1,0,1,IJK=4,4,4/ &MESH XB=1,2,0,1,0,1,IJK=4,4,4/

&SLCF QUANTITY='PRESSURE', ID='Slice', PBZ=0.5/

&TIME T_END=1/

This case fails with windows using mpiexec -n 2 when trying to write:

SLCF 1 # STRUCTURED %Slice & 0 4 0 4 2 2 ! 1 0 3

The error is:

forrtl: severe (47): write to READONLY file, unit 4, file C:\Projects\FDS_test\smv_fail.smv Image PC Routine Line Source fds_impi_intel_wi 00007FF76980967B Unknown Unknown Unknown fds_impi_intel_wi 00007FF768F441F8 FDS_ip_WRITE_STRI 3749 main.f90 fds_impi_intel_wi 00007FF768E1BEDD MAIN__ 531 main.f90 fds_impi_intel_wi 00007FF7698A9CDB Unknown Unknown Unknown fds_impi_intel_wi 00007FF77051B604 Unknown Unknown Unknown KERNEL32.DLL 00007FFD886F7374 Unknown Unknown Unknown ntdll.dll 00007FFD88D1CC91 Unknown Unknown Unknown

mcgratta commented 3 weeks ago

OK, I changed the length of the STRING we write to the .smv file. Must be related.

mcgratta commented 3 weeks ago

It did not fail for me

image

drjfloyd commented 3 weeks ago

I updated my compiler to the latest ifort (slightly newer 20240703 vs your 20240222) and still geting the error.

image

drjfloyd commented 3 weeks ago

I can run wind_example_10.fds in Verification\Atmospheric_Effects.

drjfloyd commented 3 weeks ago

something weird is going on. after running wind_example_10 using the same cmd window I could run the smv_fail case. But if I closed out the window and restarted cmd I can't run either now.

mcgratta commented 3 weeks ago

Give me a sec. I think there might be a problem with the opening of LU=4, the smv file. I moved some subroutines around yesterday and I wonder if we're not opening the file properly.

mcgratta commented 3 weeks ago

Try adding this line, where act is a character(20)

IF (MY_RANK==0) THEN
   INQUIRE(LU_SMV,ACTION=act) ; write(0,*) 'act=',act   <-----
   DO N=1,MESHES(1)%N_STRINGS
      WRITE(LU_SMV,'(A)') TRIM(MESHES(1)%STRING(N))
   ENDDO
drjfloyd commented 3 weeks ago

I'll try that. I am thinking it is something with my Windows and perhaps something IT security related. I have this problem running through a CMD window, but if I open a python CMD window (just adds python stuff to the path) it runs OK. I'll add that line to see what it says. When I look at the smv details I don't see any difference in ownership rights with the two different cmd windows.

drjfloyd commented 3 weeks ago

one gives READ one gives READWRITE.

mcgratta commented 3 weeks ago

Not sure what you mean. What version indicates "READ"?

drjfloyd commented 3 weeks ago

If I run a command window just by running CMD through the start menu, this doesn't work (I have the intel lib paths set in my default environment). FDS runs, shows the banner message, reads the input file, writes the geometry smv data, then dies when it goes to write the slice string. With this mode of operation it says READ

If instead I run a command window by launching the Anaconda command prompt (which is just CMD with python folders added to the path), then FDS runs fine. With this mode of operation it says READWRITE.

mcgratta commented 3 weeks ago

On Windows, I always run within the Intel oneAPI command prompt that I open via the Start menu. Have you tried this?

mcgratta commented 3 weeks ago

I should add that I use the oneAPI command prompt only when I compile the source myself. If I am running the "official" or release version, I use the fds_local command prompt because that has the libs hooked in.

drjfloyd commented 3 weeks ago

That doesn't work. I've never had issues until yesterday running the way I have been with either the release or self compiled versions. No idea what has changed but this seems to be something with my system and permissions and not an FDS problem.

mcgratta commented 3 weeks ago

Could you dial the rep back a week or so to rule out the changes I made earlier this week. I moved the call to the subroutine that writes the smv file so that I could add some info about the obstructions that Glenn is using to streamline drawing of geometry. I want to make sure that there is no ill effect of this.

drjfloyd commented 3 weeks ago

All of a sudden it started working no matter I how get a command prompt. I rebooted and still working. If it crops up again I can roll back and test.

mcgratta commented 3 weeks ago

Maybe the Ghost in your Machine just got the memo that Halloween is over.