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

Troubles with the OpenMP using

malik-s_-maxutov
Beginner
386 Views
Hi,
Please, help me with the IVF 8.1 for Windows.
MACHINE : HP KAYAK XU800, 1024MB RAMBUS, 2xCPU PIII-1000 mHz
OS: Windows XP Professional, SP#2
COMPILER : Intel Visual Fortran 8.1, academic, std.
PROBLEM : OpenMP directives accepted and linked successfully,
however the following warning message i have received

LINK : warning LNK4089: all references to 'libguide40.dll' discarded by /OPT:REF

As result, my program is not parallelized! (no more 50 percent for both CPU is displayed). When i'm switch to the autoparallel(/Qparallel option in command line) my program are running in the parallel mode with the 100% levelon the both CPU.

My command linein the MS Developer Studio "Project properties"is
FOR COMPILER:
/nologo /O3 /G6 /QaxK /fpp /nodefine /extend_source:132 /Qopenmp /Qopenmp_report:2 /module:"$(INTDIR)/" /object:"$(INTDIR)/" /c
FOR LINKER:
/OUT:"$(OUTDIR)/OMP_C.exe" /INCREMENTAL:NO /NOLOGO /SUBSYSTEM:CONSOLE /MACHINE:IX86
Thank you for any advice.
Malik Maxutov,
App. Math and Geoinformatics dep.
Moscow State Geological University.
0 Kudos
4 Replies
Steven_L_Intel1
Employee
386 Views
The linker warning is a clue that there is not actual parallel code in your application as it was built. It is not the cause of the problem. Did the OpenMP reports tell you that you have parallel loops?
0 Kudos
malik-s_-maxutov
Beginner
386 Views
Hi Steve,
There is no any message about loops parallelization during the compiling and linking. However, the message about loop parallelization is occur when i'm trying with the /Qparallel key. For examaple, my program looks something like this:
module omp
.........
contains
subroutine findx()
............
! $OMP DO
DO i=1, N
.....
DO J=1, N
......
ENDDO
......
ENDDO
! $OMP END DO
end subroutine findx
end module omp
program main
use omp
.........
! $OMP PARALLEL
DO I=1, K
CALL FINDX()
ENDDO
! $OMP END PARALLEL
..........
end program
0 Kudos
Steven_L_Intel1
Employee
386 Views
Do not put a space between the ! and the $ of the !$OMP directive introducer. If your code really looks like that, that would explain the problem.
0 Kudos
malik-s_-maxutov
Beginner
386 Views

Thank you very much for you help, Steve!

:smileyvery-happy:

Malik.

0 Kudos
Reply