Problems to compile fortran and C++ programs

Problems to compile fortran and C++ programs

Portrait de bulcao

I'm using fortran and C++ to write my programs. I'm using C++ to allocate memory and fortran to do the work.
I compile my program without any error massages, but when I try to run the program stop whit this messages:

** Illegal Instruction **
End of diagnostics

Do you have any suggestion of what I need to look for to find the error?

The break point depends of level of optimization

6 posts / 0 nouveau(x)
Dernière contribution
Reportez-vous à notre Notice d'optimisation pour plus d'informations sur les choix et l'optimisation des performances dans les produits logiciels Intel.
Portrait de Steve Lionel (Intel)

What switches are you using for the compilation and what kind of processor are you running on? The most common cause of an "illegal instruction" error is using one of the architecture-specific code generation options (-QxW, for example), but running on a processor that doesn't support that instruction set.

Steve

Steve
Portrait de bulcao

Steve,
Thanks a lot for your answer.
I'm running on a Pentium III CPU family 1133MHz with cache size : 512 KB, under Red Hat Linux 7.1.
In my makefile I use this options:
-tpp6 -xKW -ip -w -I/usr/include -Vaxlib -lm
with the option -O3 or -O0

Do you think that there are some problems with this options?

Regards
bulcao

Portrait de Steve Lionel (Intel)

Replace -xKW with -xK and see what happens. I'm still a bit fuzzy on how -x with multiple target codes works. I think -axKW would work and do auto-dispatch.

Steve

Steve
Portrait de bulcao

It works!
The problem was that I used the option -xKW, when I follow your suggestion, i.e., replace -xKW with -xK or -axKW the program run correctly.
Thanks

I still have a gap when I compare the performance betwen GNU and Intel compiler

GNU compiler: real time 0m39.583s
Compile options: -fno-globals -Wno-globals -O3

Intel compiler: real time 0m47.497s
Compile options: -tpp6 -axKW -ip -w -Vaxlib -O3

At least works!
Now I can try optimize the source code for Intel compiler.

Thanks

Portrait de Steve Lionel (Intel)

-xK will give you somewhat better performance than -axKW.

Explanation: -xKW basically told the compiler to assume Pentium 4 instructions (the K was ignored). -xK says assume Pentium III.

-axKW says to generate code that automatically detects the CPU type and dispatches to one of three different code sets, generic, Pentium III and Pentium 4. This may slow down a program somewhat.

Steve

Steve

Connectez-vous pour laisser un commentaire.