- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I just started exploring Open MP in Fortran programs, then I may make some mistakes. But I think this is from the compiler ...
I have found that when :
1 - the statements USE OMP_LIB and CALL OMP_SET_DYNAMIC are in a CONTAINSed subroutine
2 - the flags -g -openmp are used
the compiler crashes with the following message :
catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted
Here is a skeleton example :
[bash] program test call setdyn stop contains subroutine setdyn !$ use omp_lib !$ call omp_set_dynamic(.TRUE.) return end subroutine setdyn end program test[/bash]$ ifort -V -g -openmp -c test0.f
Intel Fortran Intel 64 Compiler XE for applications running on Intel 64, Version 12.1.3.293 Build 20120212
...
test0.f: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for test0.f (code 1)
Note that the compilation goes fine if :
1) The flag -g is not used, OR
2) the statement USE OMP_LIB is in the main program (regardless it also appears in the CONTAINSed subroutine or not) OR
3) A standalone subroutine is used instead of a CONTAINSed one.
Aside reporting the compiler problem, I would like to know :
A) if it is appropriate to have the USE OMP_LIB in the CONTAINSed subroutine only, or not. I would guess so, since nothing bad happens if the -g flag is removed ...
B) What is the best way to submit a Software Problem Report: I did not find a specific page to do that.
Thanks a lot in advance
I just started exploring Open MP in Fortran programs, then I may make some mistakes. But I think this is from the compiler ...
I have found that when :
1 - the statements USE OMP_LIB and CALL OMP_SET_DYNAMIC are in a CONTAINSed subroutine
2 - the flags -g -openmp are used
the compiler crashes with the following message :
catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted
Here is a skeleton example :
[bash] program test call setdyn stop contains subroutine setdyn !$ use omp_lib !$ call omp_set_dynamic(.TRUE.) return end subroutine setdyn end program test[/bash]$ ifort -V -g -openmp -c test0.f
Intel Fortran Intel 64 Compiler XE for applications running on Intel 64, Version 12.1.3.293 Build 20120212
...
test0.f: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for test0.f (code 1)
Note that the compilation goes fine if :
1) The flag -g is not used, OR
2) the statement USE OMP_LIB is in the main program (regardless it also appears in the CONTAINSed subroutine or not) OR
3) A standalone subroutine is used instead of a CONTAINSed one.
Aside reporting the compiler problem, I would like to know :
A) if it is appropriate to have the USE OMP_LIB in the CONTAINSed subroutine only, or not. I would guess so, since nothing bad happens if the -g flag is removed ...
B) What is the best way to submit a Software Problem Report: I did not find a specific page to do that.
Thanks a lot in advance
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You have used -g to imply -O0, so it is not entirely surprising that you could have altered the effect of automatic in-lining.
If you want to make a formal bug report, your support account on premier.intel.com is the place. Your registration of your serial number creates the account. If you didn't create one, you can do so at https://registrationcenter.intel.com. Reporting here is sufficient for an informal report. As I can't reproduce your effect by storing the file from your post here, you may have to attach a source file in case it is caused by hidden characters. You could still argue that an internal error should not be provoked even by a possibly corrupted source file.
Note that updates of the compiler have been issued.
If you want to make a formal bug report, your support account on premier.intel.com is the place. Your registration of your serial number creates the account. If you didn't create one, you can do so at https://registrationcenter.intel.com. Reporting here is sufficient for an informal report. As I can't reproduce your effect by storing the file from your post here, you may have to attach a source file in case it is caused by hidden characters. You could still argue that an internal error should not be provoked even by a possibly corrupted source file.
Note that updates of the compiler have been issued.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I have installed the latest update of the compiler and checked the source file is fine and dandy (I added it in testfiles/a.f90 : where did it go ??).
The behavior remains the same :
$ ifort64 -V -c -g -openmp a.f90
Intel Fortran Intel 64 Compiler XE for applications running on Intel 64, Version 12.1.4.319 Build 20120410
Copyright (C) 1985-2012 Intel Corporation. All rights reserved.
...
Intel Fortran 12.1-2100
a.f90: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for a.f90 (code 1)
I guess that my syntax is not fully 'clean' (in particular, the USE OMP_LIB statement in the CONTAINed routine only) or, at least, it does not fit the -g flag processor expectations. I would like to know if this is the case.
Strange you cannot reproduce the misbehavior: might it be some environment issue ?
I am running in RHEL 6.1 - Let me know if some more info can be useful.
Thanks for your answer and the other info.
The behavior remains the same :
$ ifort64 -V -c -g -openmp a.f90
Intel Fortran Intel 64 Compiler XE for applications running on Intel 64, Version 12.1.4.319 Build 20120410
Copyright (C) 1985-2012 Intel Corporation. All rights reserved.
...
Intel Fortran 12.1-2100
a.f90: catastrophic error: **Internal compiler error: segmentation violation signal raised** Please report this error along with the circumstances in which it occurred in a Software Problem Report. Note: File and line given may not be explicit cause of this error.
compilation aborted for a.f90 (code 1)
I guess that my syntax is not fully 'clean' (in particular, the USE OMP_LIB statement in the CONTAINed routine only) or, at least, it does not fit the -g flag processor expectations. I would like to know if this is the case.
Strange you cannot reproduce the misbehavior: might it be some environment issue ?
I am running in RHEL 6.1 - Let me know if some more info can be useful.
Thanks for your answer and the other info.

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page