- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you very much for you help, Steve!
:smileyvery-happy:
Malik.
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