Intel® Fortran Compiler for Linux* and Mac OS X*

floating-point assist fault

Hello all,

The /var/adm/messages file of our Linux server shows the following message
at a very high frequency.

kernel: ogcm.par(30048): floating-point assist fault at ip 400000000003b0f1,
isr 0000020000000008

This program "ogcm.par" is mine. As long as this program is running, this message
repeats. I have learned that this message is issued when the kernel emulates
floating-point operations that the hardware cannot perform.

My question is how to identify which part of my Fortran program is causing this

ifort 8.1 segfault

Hi all,

I have a piece of code that compiles but gives a segfault at run-time. It doesn't seem to be related to the usual stack size problem.

[code attached, 28 lines, minimal testcase as far as I can reduce it; compiled with ifort -C -g, Package ID: l_fc_pu_8.1.021]

It runs perfectly with ifc and any other F90 compiler I could lay my hands on. Debugging indicates the segfault occurs when the program as attained the last level of recursion (the tenth, actually), just before the end of the recursive function.

Thanks in advance for your help,

Problem passing arguments of type REAL*16 (long double) between C and Fortran


I try to make use of Fortran to evaluate the square roots
to quad precision by calling an external function sqrtq(long double*)
from C on Itanium2 running Linux. icc is version 8.0, ifort is version 8.0.
The Fortran source for sqrtq is in sqrtq.f:
##########################
real*16 function sqrtq(x)
real*16 x
sqrtq = sqrt(x)
end function sqrtq
##########################
The C-code is compiled: icc -c -g my_source.c
The Fortran-code is compiled: ifort -c -nus sqrtq.f

segmentation violation for allocatable arrays


program test
real(8), dimension(:,:),allocatable :: a,b,c
allocate(a(1024,1024))
allocate(b(1024,1024))
allocate(c(1024,1024))
c = 2.*matmul(a,b)
end program test



This code gives a SEGV at the assignment of c using the Intel
Fortran Compiler for Linux 8.0, but works under g95. It works for
both if the assignment line is replaced by c=matmul(a,b), or if the
array dimensions are any smaller than 1024. Am I
missing something basic here? Thanks in advance.

** Address Error **

HI every body

I have encountered the following error:

** Address Error **
End of diagnostics

I have executed my program with PC-cluster. I have stooped the program and restarted many times.

The strange thing that sometimes I may encounter the above error.

Can anyone informing me what can I do in this problem?

My compiler option is:
PC_COMP= ifc -w -c
PC_LINK= echo 'Linking'; ifc -w -o $(PATHBASE)/parcomb $(OBJ)

Regards

Shalaby

Optimization of scatte/gather loops

I'm trying to optimize some simple scatter & gather loops
for optimum performance, particularly on Pentium IA32 and Itanium IA64.

do i = 1, m
b(i) = a(c(i))
enddo

There are a number of optimization issues here; the main ones I see
are (a) loop dependency (b) cache performance. As long as I as programmer
can ensure that the entries of c(i) are unique then there is no dependency
problem. Certainly adding the directive !DIR$ ivdep appears to allow the
compiler to perform better software pipelining in the Itanium.

-g flag does not imply -O0 as stated

Compile a program (maybe it needs to be large?) with the -g flag, and about 90% of variables are returned as optimized away when you try to view them from within idb. Compile that same program with both -g and -O0 set, and you can view all variables. This is contrary to the release notes stating that -O0 is implied when using -g.

Thought I'd pass that along in case anyone was having these problems. Oh, and it's ifort v8.1.019.

Intel® Fortran Compiler for Linux* and Mac OS X* abonnieren