- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
we installed the new release 3 of the Intel Parallel Studio 2016 (parallel_studio_xe_2016.3.067) on our cluster and a problem occurs while reading from an unformatted file with any optimization (O1, O2, O3) on.
The program itself works flawlessly with -O2 with release 2 of this year's ifort as well as with ifort 10 and 11. The operating system is Linux with kernel version 3.12.60.
The following code was taken from the complete program in fixed form Fortran and is able to reproduce the error:
program main implicit none integer*4 iconf(1000) integer*4 jerz(20), jver(20) integer*4 iv(20),ie(20), . ivsave(20),iesave(20) character*4 girep integer*4, allocatable ::lconf(:,:) integer*4, allocatable ::lstart(:) integer*4, allocatable ::iconf1(:,:) integer*4, allocatable ::iconf2(:,:) integer*4, allocatable ::i1off(:,:) integer*4, allocatable ::i2off(:,:) integer*4, allocatable ::i1ix(:) integer*4, allocatable ::i1ex(:) integer*4, allocatable ::i2iix1(:) integer*4, allocatable ::i2iix2(:) integer*4, allocatable ::i2iex1(:) integer*4, allocatable ::i2iex2(:) integer*4, allocatable ::i2eex1(:) integer*4, allocatable ::i2eex2(:) integer*4, allocatable :: mat(:) ,merz(:,:) ,mver(:,:) integer irefold(73),i,j integer*8 matall,matclast,matcalc integer*4 i1i,i1e,i2ie,i2ii,idum,imem,ierr integer*4 momax,MEMMB,NCONF,INTS2EEMAX,INTS2IEMAX integer*4 INTS2IIMAX,INTS1EMAX,INTS1IMAX integer*4 INT2,INT1,I2EE,INT0 matall = 0 nconf=8477 open(unit=2,file='Hc.info.ag',form='unformatted') read(2) idum read(2) int0 read(2) (irefold(i),i=1,int0) read(2) momax read(2) i2ii allocate(i2iix1(i2ii),i2iix2(i2ii),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for creators in cinew' read(2)(i2iix1(i),i=1,i2ii) read(2)(i2iix2(i),i=1,i2ii) print *, '1' read(2) i2ie allocate(i2iex1(i2ie),i2iex2(i2ie),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for creators in cinew' read(2)(i2iex1(i),i=1,i2ie) read(2)(i2iex2(i),i=1,i2ie) print *, '2' read(2) i1i allocate(i1ix(i1i),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for creators in cinew' read(2)(i1ix(i),i=1,i1i) print *, '3' read(2) i1e allocate(i1ex(i1e),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for creators in cinew' read(2)(i1ex(i),i=1,i1e) print *, '4' read(2) i2ee allocate(i2eex1(i2ee),i2eex2(i2ee),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for creators in cinew' read(2)(i2eex1(i),i=1,i2ee) read(2)(i2eex2(i),i=1,i2ee) print *, '5' read(2) int1 allocate(iconf1(2,int1),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for iconf1' print *, '6' read(2) ((iconf1(i,j),i=1,2),j=1,int1) read(2) int2 allocate(iconf2(3,int2),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for iconf2' print *, '7' read(2) ((iconf2(i,j),i=1,3),j=1,int2) allocate(i1off(0:int1,2),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for i1off' read(2)(i1off(i,1),i=0,int1) read(2)(i1off(i,2),i=0,int1) print *, '8' allocate(i2off(0:int2,3),stat=ierr) if (ierr.ne.0) stop 'Allocation failed for i2off' read(2)(i2off(i,1),i=0,int2) read(2)(i2off(i,2),i=0,int2) read(2)(i2off(i,3),i=0,int2) read(2) ints1imax,ints1emax,ints2iimax,ints2iemax,ints2eemax print *, '9' allocate(lstart(nconf+1),stat=ierr) if (ierr.ne.0) stop'Allocation failed for lstart in mrci' imem = imem + 4 * ( nconf + 1 ) print *, '10' read(2)(lstart(i),i=1,nconf+1) print *, '11' close(2) end
$ ifort -O0 main.f
$ ./a.out
1
2
3
4
5
6
7
8
9
10
11
This works as expected. But with -O1, -O2 or -O3 the following error occurs:
$ ifort -O2 main.f
$ ./a.out
1
2
3
4
forrtl: severe (67): input statement requires too much data, unit 2, file /home/adrian/tmp/ifort_test/Hc.info.ag
Image PC Routine Line Source
a.out 0000000000407049 Unknown Unknown Unknown
a.out 000000000041DAB6 Unknown Unknown Unknown
a.out 000000000041B673 Unknown Unknown Unknown
a.out 00000000004032A6 Unknown Unknown Unknown
a.out 00000000004026DE Unknown Unknown Unknown
libc.so.6 00007F01B068EF45 Unknown Unknown Unknown
a.out 00000000004025E9 Unknown Unknown Unknown
The input file was created by a working binary of the program compiled with release 2 of ifort 2016 and is the same in all test cases.
Thanks.
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for reporting this and for the reproducer. I will try reproducing this and keep you informed on my progress.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I can reproduce the failure with 16.0.3 as you described. I also find that the program behaves as expected when compiled at any opt-level with our current Parallel Studio XE 2017 (i.e. 17.0 compiler) Beta release. That could mean the underlying root cause with 16.0.3 is known and that a fix was promoted to the 17.0 release either exclusively or is upcoming in another 16.0 update. I won’t know until I triage the failure further and know which compiler component development team to contact further regarding this.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
After further triage this appears to be a runtime library issue. I escalated this to our Developers (internal tracking id below) and will keep you updated about the availability of a fix.
(Internal tracking id: DPD200411901)
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Our Developers found the root cause. A fix for the defect is expected in the PSXE 2016 Update 4 release tentatively scheduled for late-August.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I confirmed your case executes successfully with our latest 16.0 internal-only development compiler which confirms the fix will be present in our upcoming PSXE 2016 Update 4 in late-August. The fix will also be present in our initial PSXE 2017 release later this year.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page