Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.
29282 Discussions

OpenMP on Windows vs Linux causes solver errors

nilsoberg
Beginner
393 Views
Hello,
I have a code written in Fortran that runs fine with OpenMP directives on Linux. On Windows however my solver fails to converge. If I turn off OpenMP on Windows x64 the serial code runs fine. Also in order for the OpenMP code to run without immediately having a stack overflow I had to set the stack size in the linker options. The Linux version doesn't specify stack size. Here are my compiler options:
[bash]-- COMPILER --
/nologo /extend_source:132 /Qopenmp /module:"x64\Release OpenMP\\" /object:"x64\Release OpenMP\\" /c

-- LINKER --
/OUT:"x64\bin\Release OpenMP\efdc.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"E:\projects\code\EFDC\EFDC\x64\bin\release openmp\efdc.exe.intermediate.manifest" /SUBSYSTEM:CONSOLE /STACK:160000000 /IMPLIB:"E:\projects\code\EFDC\EFDC\x64\bin\release openmp\efdc.lib"[/bash]
The options are the same on Windows and Linux.
The Linux version is:
Intel Fortran Compiler for applications running on Intel 64, Version 10.1 Build 20080212 Package ID: l_fc_p_10.1.013
The Windows version is:
Intel Fortran Compiler Integration for Microsoft Visual Studio 2008, 10.1.3440.2008, Copyright (C) 2002-2008 Intel Corporation
Is this a known issue? Any suggestions for working around this?
Thanks,
Nils
0 Kudos
1 Reply
Steven_L_Intel1
Employee
393 Views
My first guess is that you have references to uninitialized variables, as enabling OpenMP causes the stack to be used for all allocations. This is the #1 cause of "failure to converge" and similar issues.

However, I will comment that your Fortran version is three and a half years old and is unsupported. Please install the current version and try again, though it is still likely you have uninitialized variables.
0 Kudos
Reply