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

ifort ... -mP2OPT_hpo_vec_divbyzero=F ... crashes

dnoack
Beginner
1,577 Views
Hello all,

I use ifort 10.1.026 (Intel Fortran Compiler 10.1 Build 20100527) on Red Hat Enterprise Linux Server release 6.2. In a Makefile for a user program I have found the compiler option

ifort ... -mP2OPT_hpo_vec_divbyzero=F ...

This option obviously crashes my program. But so far I cannot found any documentation for this option.

Please can anyone point me to a documentation?

regards,
dnoack

0 Kudos
5 Replies
Steven_L_Intel1
Employee
1,577 Views
There is no documentation for that - it is an internal "developer" switch. I am not familiar with that one but by the name I'd guess it modifies the optimizer to assume no divides by zero. Such switches are not recommended for customer use - sometimes a customer will be given an option to work around a particular compiler issue.

Why do you say "This option obviously crashes my program"? What happens if you remove it?
0 Kudos
dnoack
Beginner
1,577 Views
The -mP2OPT... is an option for the ifort command, i.e. the ifort knows about this option and the meaning. I think for using this option or not using it, there is also exact knowledge necessary.

Concretely, I have thread dependence in my code. To search for the reason I compile in debugging mode with option -g -check all -traceback . If the debug options and the the -mP2OPT... option are both present, my program terminates with:

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

Generating Traceback ...
Missing separate debuginfo for
Try: yum --disablerepo='*' --enablerepo='*-debuginfo' install /usr/lib/debug/.build-id/23/1bd9599ad974226f19adfdc4dae3691396c81d
[New Thread 11508]
[New Thread 11510]
[New Thread 11509]
[New Thread 11511]
[Thread debugging using libthread_db enabled]

Program terminated with signal 6, Aborted.
#0 0x000000327f232885 in raise () from /lib64/libc.so.6
#0 0x000000327f232885 in raise () from /lib64/libc.so.6
#1 0x000000327f234065 in abort () from /lib64/libc.so.6
#2 0x0000003285a10401 in _Unwind_Resume () from /lib64/libgcc_s.so.1
#3 0x000000000040ab40 in ABQmain(int, char**) ()
#4 0x0000000000409d8b in main ()

aborted with system error "Abnormal termination signal" (signal 6).

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

I have spent some time, to evaluate this incompatibility. And so I want to know more about the P2OPT library or package (?). What is the use of it?
0 Kudos
TimP
Honored Contributor III
1,577 Views
If Abaqus recommended that option, the recommendation would be specific to a particular ifort version, and if you don't have a business relationship with them which would enable you to ask, you are better off not using it.
Your traceback indicates that your program crashed in a C or C++ main program, which doesn't necessarily have anything to do with your ifort options.
I suppose you are trying the user function option of an old Abaqus which was built on a much older OS. You could check whether it is even possible to relink successfully on your new system, without using ifort. If you are using a combination which Abaqus doesn't support, your options may be limited.
You quote a rather old version of ifort, running on an very new OS, too new to be listed in the supported versions for even the current ifort.
0 Kudos
dnoack
Beginner
1,577 Views
Thank you for the hint.
Of course I have a business relationship to Abaqus and I will inform they about my problem. Since the options is specified on the ifort line, I have thougth this is an ifort problem.
The ifort Version meet the actual system requirements of Abaqus. But you are right, there is warning regarding the new OS.
However for me it seems there is an incompatibility between -mP2OPT... and the debug options.

0 Kudos
Steven_L_Intel1
Employee
1,577 Views
The -mP2OPT switches are unsupported. Abaqus should not be recommending their general use.
0 Kudos
Reply