-
Notifications
You must be signed in to change notification settings - Fork 623
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Gnu: Different results between Serial/Parallel #5654
Comments
Salah, |
This could be simply due to certain uninitialised variables. |
This looks like it's related to this specific input file. I've done another verification with another input file |
@marcosvanella |
I've tested it. Gnu with that commit (01ebdc0) works. It doesn't produce that behaviour. |
The issue started from the commit that I shared above, then Kevin merged it. From there, you would receive this type of behaviour. Before works fine. |
The issue started on commit e91baf6, when we "burned the bridge" and I got rid of the old IBM routines. For that commit I am also seeing the problem with debug flags. |
A mistery, I don't see the issue with the latest repo and debug flags. Try it on your linux box. |
I will check now |
This is what I get when I try it with the db.
|
On the optimised mode, I passed these flags: |
Salah, try using the flag I've also noted that getting rid of the N_EDDY = 100, L_EDDY = 0.1, VEL_RMS = 0.2 inputs in the inflow &VENT gets the optimized code to run correctly again. I'm doing a code to code comparison of variables to see where things diverge. |
Ok. |
I found also -O1 works. So far -O2 and -O3 are capturing this issue. |
After adding the Variable S in this case is SF%ROUGHNESS coming into WALL_MODEL from VELOCITY_BC, when VELOCITY_BC_INDEX==WALL_MODEL_BC. BTW, if you have gdb installed and compile with -ggdb flag, you can debug in parallel executing:
And then on each window that pops up (corresponding to each MPI process) type: Then whatever each process writes to screen is done on its window. Also, when the code crashes you can still print the value of local variable like I did with S we are close. |
All right, what's happening is that in SYNTHETIC_EDDY_SETUP (line ~1750 turb.f90) the routine EDDY_AMPLITUDE is being called before providing a value to VT%A_IJ. That is done later as:
Then, in EDDY_AMPLITUDE, NaN values of A_IJ are fed into VT%CV_EDDY, etc. From then on all hell breaks loose. Our Options:
I'll let @rmcdermo decide how to do this. Also in EDDY_AMPLITUDE, we can make the comparisons for RN explicitly as among 8 byte reals:
|
Nice catch Marcos, |
This is what I get with gdb. You can paste from xterm after selecting the appropriate lines, then use scroll mouse to paste with.
|
All right Salah, do an update and check you can run the case. |
Yes Marcos, that helped. It solved the issue.
|
Close the case when you are ready. |
Ok, thanks. |
This case is reported in the discussion group
https://mail.google.com/mail/u/0/#inbox/15f7317a33168390
Sample input file:
test.fds.txt
Serial
Parallel
The text was updated successfully, but these errors were encountered: