- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
When i enable the "thread data sharing events" detection and read from a dynamic array which has been declared as SHARED, there seems to be a memory leak in the debugger which eat up my memory. When i disable the "thread data sharing events" it works. The application i try to run in parallel is based on f77 source.
After hours of searching i've tracked down the problem to this simple Fortran Project.
The main: console1.f
and the subroutine: sub1.f
Many thanks,
Stefan
After hours of searching i've tracked down the problem to this simple Fortran Project.
The main: console1.f
[fxfortran]program Console1 implicit none integer VolumeExtent(6) byte, target, allocatable, dimension(:) :: labv byte, pointer, dimension(:) :: labvptr interface recursive subroutine sub1( & VolumeExtent, & labv & ) integer, intent(in):: VolumeExtent(6) byte , pointer, dimension(:), intent(in):: labv end subroutine end interface VolumeExtent(1) = 1 VolumeExtent(2) = 512 VolumeExtent(3) = 1 VolumeExtent(4) = 512 VolumeExtent(5) = 1 VolumeExtent(6) = 102 ! Allocate labv allocate(labv(VolumeExtent(2)*VolumeExtent(4)*VolumeExtent(6) )) ! Init arrays labv = 0 labvptr = > labv call sub1( & VolumeExtent, & labvptr & ) pause end program Console1[/fxfortran]
and the subroutine: sub1.f
[fxfortran]recursive subroutine sub1( & VolumeExtent, & labv & ) implicit none integer, intent(in):: VolumeExtent(6) byte, pointer, dimension(:), intent(in):: labv integer currentJ,currentK,voxelInXYPlane,voxelInX integer i_lv, j_lv, k_lv, ii integer lab_value,temp voxelInX = (VolumeExtent(2)-VolumeExtent(1)+1) voxelInXYPlane = (VolumeExtent(4)-VolumeExtent(3)+1)*voxelInX do 30 k_lv=VolumeExtent(5),VolumeExtent(6) !$OMP PARALLEL DO & PRIVATE(j_lv,i_lv,lab_value,currentK,currentJ,ii) & SHARED(labv) do 20 j_lv=VolumeExtent(1),VolumeExtent(2) do 10 i_lv=VolumeExtent(3),VolumeExtent(4) currentK = k_lv-VolumeExtent(5) currentJ = j_lv-VolumeExtent(3) ii = currentK* voxelInXYPlane + currentJ*voxelInX + i_lv lab_value=iand(labv(ii),B"00111111") 10 END DO 20 END DO !$OMP END PARALLEL DO 30 END DO write (*,*) 'end ' end subroutine sub1Anyone has an idea what's wrong ??
[/fxfortran]
Many thanks,
Stefan
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
As we have decided to discontinue the Parallel Debug Extension, I doubt there will be work done on this issue. You may want to look at Intel Inspector XE and its various thread diagnostic features.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
So you can confirm that it's a problem of the debug extension and not a problem of my mixed fortran 77/95 code ? That would be some good news. But why Intel doesn't remove obsolete components when i've updated from version 11 to 12 ? Or at least bring up a message that i shouldn't use this component any longer...
And one more question. Can i use the Intel Inspector XE. with my Intel Visual Fortran Composer XE 11 license ?
Thanks,
Stefan
And one more question. Can i use the Intel Inspector XE. with my Intel Visual Fortran Composer XE 11 license ?
Thanks,
Stefan
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You indicated that when you disabled data sharing events in the debugger extension that the problem disappeared. We have said in the compiler release notes that support for the Parallel Debug Extension may be removed in a future version. You can continue to use it if it works for you, but I think it's only fair to let you know that bugs in this component will not be fixed.
Intel Inspector XE requires a separate license. It is included in the Fortran Studio XE and Parallel Studio XE suites.
Lastly, your code is all Fortran 95. There is really no such thing as "mixed Fortran 77/95".
Intel Inspector XE requires a separate license. It is included in the Fortran Studio XE and Parallel Studio XE suites.
Lastly, your code is all Fortran 95. There is really no such thing as "mixed Fortran 77/95".

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page