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

memset_repstos error

baha_tr
Novice
835 Views

I am running fortran (ifx) on intel community, but I get an error code like ucgen tel.exe!memset_repstos() Line 43. I have a matrix inside. Most elements of the matrix are zero, other elements are symmetrically different, I calculate (dgyevx) eigenvalue eigenvector

0 Kudos
11 Replies
Steve_Lionel
Honored Contributor III
823 Views

You have not shown the actual error - just a part of the traceback, and perhaps not even that since you say it is "like". If this is coming from an MKL call, please provide a complete test case and ask about it in Intel® oneAPI Math Kernel Library - Intel Community

0 Kudos
baha_tr
Novice
766 Views

hi Steve, I take picture  my computer  error page 

baha_tr_0-1708366058524.pngbaha_tr_1-1708366088518.png

 

0 Kudos
Steve_Lionel
Honored Contributor III
759 Views

Thanks for the additional information, though a copy of the source would help more. From what I can see, the assignent to array A (at least I assume it is an array) is failing with an access violation. According to the Variables window, this is an enormous array (25GB). I have to assume this is an allocatable array, as you could never get a static array that size on Windows. The compiler has called a Microsoft run-time routine to do this zeroing, and it is failing - why, I can't tell. I can tell you that even if this succeeded, it would take a very long time to execute.

Perhaps you can use this information to modify your code so that it doesn't try to zero such a large array.

0 Kudos
baha_tr
Novice
714 Views

hi, ı am adding my project but ı did not add include file. ı am including down page 

SONSUZ__= 5.8079 ! mac sısteminin kener uzunluğu (a*)
Vo______= 29.7161 ! telin basamak potansiyel degeri (R*)
V1CARPAN= 1.0000 ! bas bariyer carpanı V1=V1carpan*Vo
V2CARPAN= 1.0000 ! bas. bariyer carpanı V2=V2carpan*Vo
TEL1____= 2.3231 ! SOL kuyu iç çap (a*)
TEL2____= 5.2271 ! orta kuyu iç çap (a*)
TEL3____= 7.5502 ! sağ kuyu iç çap (a*)
TEL4____= 5.8079 ! en dış çap(a*)
X_1_____= -2.3231 ! Sol taraftaki telin konum x bileşeni (a*)
X_2_____= .0000 ! Ortadaki telin konumunun x bileşeni (a*)
X_3_____= 2.3231 ! Sag taraftaki telin konum x bileşeni (a*)
Y_1_____= -2.3231 ! Sol taraftaki telin konum Y bileşeni (a*)
Y_2_____= .0000 ! Ortadaki telin konumunun Y bileşeni (a*)
Y_3_____= 2.3231 ! Sag taraftaki telin konum Y bileşeni (a*)
XI______= .0000 !Yabancı atom konumunun x bileşeni (a*)
YI______= .0000 !Yabancı atom konumunun Y bileşeni (a*)
BIX1_____ -2.3231 ! 1. Dairenin x bileşeni (a*)
BIX2_____ .0000 ! 2. Dairenin x bileşeni (a*)
BIX3_____ -2.3231 ! 3. Dairenin x bileşeni (a*)
BIX4_____ .0000 ! 4. Dairenin x bileşeni (a*)
BIY1_____ -2.3231 ! 1. Dairenin Y bileşeni (a*)
BIY2_____ .0000 ! 2. Dairenin Y bileşeni (a*)
BIY3_____ -2.3231 ! 3. Dairenin Y bileşeni (a*)
BIY4_____ .0000 ! 4. Dairenin Y bileşeni (a*)
ALPHAA__= .0000 ! X dorul.da pol olmuş ışığın şiddeti (a*)
F_______= .0000 ! +X dogru.da uyg. harici elek alan (kV/cm)
TB______= .0000 ! +z dogru.da uyg. harici many alan (Teslam)
IHP_____= 9 ! 7= Basamak
IHDONGU_= 9 ! 0=Dongu YOK, 1=KAL1, 2=KAL2, 3=KAL3 , 4=Vo, 5=V1CARPAN, 6=V2CARPAN, 7=F, 8=TB, 9=ALPHA
BASLANGIC .0000 ! Dongunun baslangıc degeri )
BITIS___= 140.0000 !Dongunun son degeri (Secilen dongu boy)
ARTIM___= 2.0000 !Dongunun artım degeri (Secilen dongu bot)

0 Kudos
Steve_Lionel
Honored Contributor III
710 Views

Thanks for the source. There is something very strange going on here!

As I wrote earlier, array A is extremely large - much too large for static allocation on Windows. If I compile with IFORT, the compiler correctly complains:

catastrophic error: Variable YENI_2D$A too large for NTCOFF. Bigger than 2GB. Use heap instead

(Annoyingly, this error appears only in the Output window and not the Error List window!)

But if I compile with IFX, which is the default, no such error occurs.

When the assignment to A happens, it tries to write to an invalid address because the size of the array exceeds the 2GB available for static code and data on Windows.

There is also an error in the code that the compiler complains about. At line 146 you have:

 

IF(IHdongu.EQ.0) GOTO 10

 

where 10 is inside a DO loop starting at line 156. This is not legal and can lead to wrong results. The program as you have provided it does make that jump, so I wouldn't trust the results of the program. It doesn't affect he access violation, though.

How can you get around this? One way would be to change the declaration of array A to:

 

REAL*8, ALLOCATABLE :: A(:,:)

 

and then when the executable part starts, insert:

 

ALLOCATE (A(LDA,N))

 

This will still require that your system have a LOT of virtual memory available and may still fail if not.

I think there are two compiler bugs here, and would ask an Intel representative to investigate:

1) IFX is not complaining when the size of a static array exceeds 2GB on Windows.

2) When the IFORT error message is given, it doesn't display in the Error List. (This is a minor issue.)

I would also wonder why the Microsoft linker doesn't complain about the data size - I've seen it do that in 32-bit apps, at least, but it should be doing it here too, unless the compiler is lying to the linker about the size.

I have attached a minimal test case.

baha_tr
Novice
686 Views

hi, Steve thank you for help me, My computer's RAM is 16 GB, if I upgrade it to 40 GB, will the problem go away?

0 Kudos
Steve_Lionel
Honored Contributor III
669 Views

No - virtual memory does not correspond to physical memory, though more physical memory can improve performance. You will at a minimum need to use the allocatable feature as I described earlier.

If this fails, you may need to increase the paging file size. Windows by default manages this automatically, so you might get lucky.

baha_tr
Novice
658 Views

thank you very much Steve, I am trying your said

0 Kudos
Ron_Green
Moderator
636 Views

Bug ID for missing NTCOFF > 2GB error message is CMPLRLLVM-56243


baha_tr
Novice
582 Views

baha_tr_0-1708613777103.png

ı have taken this error page at now 

0 Kudos
Steve_Lionel
Honored Contributor III
562 Views

That's an error inside the MKL routine - I can't help with that. You can ask in https://community.intel.com/t5/Intel-oneAPI-Math-Kernel-Library/bd-p/oneapi-math-kernel-library - be sure to provide the full test case.

0 Kudos
Reply