Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28443 Discussions

forrtl: severe (174): SIGSEGV, segmentation fault occurred MPIRUN

Sanchez-Fonseca__Alv
4,020 Views

Hello ,My name is Alvaro.

I'm quite a noob with mpi use, so I'm not sure about what to do with this problem, if you could help me I would be very thankful.

This is my problem, I'm triying to run WRF with mpirun but when the process starts it crushes a few second after start running, with this mistake.

forrtl: severe (174): SIGSEGV, segmentation fault occurred
Image              PC                Routine            Line        Source             
wrf.exe            0000000001B7A957  Unknown               Unknown  Unknown
wrf.exe            0000000001B744B0  Unknown               Unknown  Unknown
wrf.exe            0000000001B6FD21  Unknown               Unknown  Unknown
wrf.exe            0000000001B6E4E4  Unknown               Unknown  Unknown
wrf.exe            00000000017613CC  Unknown               Unknown  Unknown
wrf.exe            0000000001848A5A  Unknown               Unknown  Unknown
wrf.exe            000000000120DEF7  Unknown               Unknown  Unknown
wrf.exe            00000000010C17E6  Unknown               Unknown  Unknown
wrf.exe            00000000004D06C8  Unknown               Unknown  Unknown
wrf.exe            000000000040CE13  Unknown               Unknown  Unknown
wrf.exe            000000000040CDC7  Unknown               Unknown  Unknown
wrf.exe            000000000040CD5C  Unknown               Unknown  Unknown
libc.so.6          00000034B441ED1D  Unknown               Unknown  Unknown
wrf.exe            000000000040CC59  Unknown               Unknown  Unknown

 

Any Idea of what to do?

Thank you very much.

Kind Regards.

Alvaro.

0 Kudos
6 Replies
Steve_Lionel
Honored Contributor III
4,020 Views

The first thing to do is to rebuild with -traceback so that you get more than "Unknown". Somewhere deep in the bowels of your executable there is a reference to invalid memory. You'll need to locate the offending reference and figure out what it didn't like. One possibility, though, is that you have run out of stack, which can result in a segfault. You could try rebuilding with -heap-arrays to see if that helps.

0 Kudos
Sanchez-Fonseca__Alv
4,020 Views

Hello Steve, First of all thank you for your help, I'm really lost and I need a friend right now to help me to solve this so thank you very much.

And I'm sorry if my question is stupid but, where exactly do I put the -traceback or the -heap-arrays things?? I mean this is a executable that I run with mpirun so I'm not sure about it

Thank you very much

0 Kudos
Arjen_Markus
Honored Contributor I
4,020 Views

These are compiler options - so you need to add them when compiling the program's sources.

0 Kudos
Arjen_Markus
Honored Contributor I
4,020 Views

And possibly link options ;). Anyway, you need to set them during the build process, whether you use Visual Studio or make files or ...

0 Kudos
mecej4
Honored Contributor III
4,020 Views

Sanchez-Fonseca Alvaro wrote:
..where exactly do I put the -traceback or the -heap-arrays things?

These are options that have to be used to rebuild the WRF executable with additional instrumentation so that the last two columns in the error traceback that you showed will contain source line numbers and routine names, instead of "unknown". My advice is not to take that route -- it will only waste some time and cause much frustration.

If you do not know how to rebuild WRF from its sources, you will need to spend a few days (at least; more likely, a few weeks will be needed) to acquire the knowledge and experience needed to do so. In such cases, a better option would be to find another person at your institution who has experience with WRF and follow that person's advice. If doing that is not possible, at least check that the input data is correct, since errors in typing in the data can be one cause for seg-faults.

The source distribution of WRF is over 250 megabytes in size, i.e., about 5 million lines of code. Without some guidance and support, an experienced Fortran programmer would probably not even think of changing the source code of such a large package.

0 Kudos
JohnNichols
Valued Contributor III
4,018 Views

The source distribution of WRF is over 250 megabytes in size, i.e., about 5 million lines of code. Without some guidance and support, an experienced Fortran programmer would probably not even think of changing the source code of such a large package.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

Just buy a black Sharpie and make your own marks.  

0 Kudos
Reply