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

problem using -parallel and -par-report

Mike_Rezny
Novice
1,810 Views
Hi,
I am seeing some weird behaviour with the Intel Fortran Compiler 11.1.046 on Linux.
A loop that is parallelized using
-parallel -par-report
is shown as not parallelized when compiled with
-parallel -par-report3.

The object file size is identical for -parallel OR -parallel -par-report, but is smaller for -parallel -par-report3

The problem for me is that when compiled with -parallel, the program failed, but then ran correctly when I compiled with -parallel -par-report3 to see what the compiler was doing with the loops.

I have included a very small snippet of the code that demonstrates the problem:
icedrive.f is the source file
Makefile compiles three versions of the object file: -parallel, -parallel -par-report, and -parallel -par-report3

Here is the compiler output for the three builds:
[plain]ifort -O3 -warn all -nogen-interfaces -parallel -c icedrive.f

ifort -O3 -warn all -nogen-interfaces -parallel -par-report -o icedrive_pr.o -c icedrive.f

icedrive.f(41): (col. 12) remark: LOOP WAS AUTO-PARALLELIZED.
ifort -O3 -warn all -nogen-interfaces -parallel -par-report3 -o icedrive_pr3.o -c icedrive.f
   procedure: icedrive
   procedure: icedrive
icedrive.f(38): (col. 10) remark: loop was not parallelized: existence of parallel dependence.
icedrive.f(57): (col. 14) remark: parallel dependence: assumed FLOW dependence between statsice line 57 and statsice line 51.
icedrive.f(51): (col. 11) remark: parallel dependence: assumed ANTI dependence between statsice line 51 and statsice line 57.
icedrive.f(57): (col. 14) remark: parallel dependence: assumed OUTPUT dependence between statsice line 57 and statsice line 57.
icedrive.f(57): (col. 14) remark: parallel dependence: assumed OUTPUT dependence between statsice line 57 and statsice line 57.
icedrive.f(51): (col. 11) remark: parallel dependence: assumed ANTI dependence between statsice line 51 and statsice line 57.
icedrive.f(57): (col. 14) remark: parallel dependence: assumed FLOW dependence between statsice line 57 and statsice line 51.
icedrive.f(41): (col. 12) remark: loop was not parallelized: loop is not a parallelization candidate.
[/plain]

And here is a listing showing the sizes of the three object files:

[plain]total 44
-rw-r--r-- 1 mrezny users 1311 2009-09-02 15:17 build.txt
-rw-r----- 1 mrezny users 1953 2009-09-02 14:48 icedrive.f
-rw-r--r-- 1 mrezny users 6224 2009-09-02 15:17 icedrive.o
-rw-r--r-- 1 mrezny users 3568 2009-09-02 15:17 icedrive_pr3.o
-rw-r--r-- 1 mrezny users 6224 2009-09-02 15:17 icedrive_pr.o
-rw-r--r-- 1 mrezny users    0 2009-09-02 15:18 ls.txt
-rw-r--r-- 1 mrezny users  334 2009-09-02 14:44 Makefile[/plain]

regards
Mike

0 Kudos
1 Solution
Yuan_C_Intel
Employee
1,810 Views

Hi, Mike
Thank you for raising this issue. I have reproduced your issue and added it in our problem tracking system. I will let you know when I have an update on this issue.

Thank you.

View solution in original post

0 Kudos
2 Replies
Yuan_C_Intel
Employee
1,811 Views

Hi, Mike
Thank you for raising this issue. I have reproduced your issue and added it in our problem tracking system. I will let you know when I have an update on this issue.

Thank you.
0 Kudos
Yuan_C_Intel
Employee
1,810 Views

Hi, Mike

I have verified your issue is resolved in the Intel C++Compiler Linux* 11.1 Update 5. You may download this compiler package from our Registration Center: https://registrationcenter.intel.com/.

Thank you.

0 Kudos
Reply