another unable to start

91 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

From my personal experience, Bruce, every time I thought there was a problem with the compiler it turned out to be my error.  Your problem will almost certainly turn out to be a subtle coding error.  The hardest to track down are Heisenbugs, which change their behaviour when you try to look at them.  These are always a manifestation of memory being accessed by mistake, and usually the cause is remote from the place where the error surfaces.

I like the Heisenbugs name.  It has been decades since I had such a bug but it seems to be just that kind.  The VS debugger was of no use as it bounced me all over the code.  I am currently considering using a NAG compiler, which has a better performance in error checking, to find the problem(s).  The idea is to use two compilers: one for code checking and another for making efficient code (a very big issue for code that takes days to run with 20+ threads).  I worry about how easy it will be to move code between the two compilers. Does anyone have experience with this approach?  or the NAG compiler?

Quote:

Bruce Weaver wrote:
I worry about how easy it will be to move code between the two compilers. Does anyone have experience with this approach?  or the NAG compiler?

That depends on how the code is written. If it is standard Fortran, all that you have to do is to construct two makefiles, no porting of source code necessary. Furthermore, seemingly innocuous changes to the source code can cause the bugs to hide or disappear, particularly so if the bug in question is in the compiler itself.

I have no experience with the NAG compiler.  You might also consider gfortran, which works well with the Code::Blocks IDE (also free).

Actually gfortran & g95 are not as good as catching errors as Intel Fortran but all about 50%. NAG & Silverfrost ftn95 come in at over 90% in this regard.  See https://www.fortran.uk/fortran-compiler-comparisons/win32-fortran-compil...

Intel is particularly bad at detecting uninitialized errors, which this forum thread has already exposed with the test program provided by mecej4: klobber.  Perhaps the Intel developers should address this issue.  I need to use Intel because of the speed, see :

https://www.fortran.uk/fortran-compiler-comparisons/polyhedron-benchmark...

but I sure wish they would make the debug mode much better at error detection.  I've used almost all the the compilers on the Polyhedron site at one time or another & I'm fond of the Intel one (&especially Amplifier) but this error detection issue is a problem.

 

If I could summarise what I have read from all these 56 posts:
There are a number of possibilities for the problems (plural) being reported in this thread.
Problems plural appears to be a key theme.

Two main problems being reported appear to be:
1) the program won't start
2) the program gives inconsistent results or crashes (it must have started?)

For Problem 1:
The likely explanation is .exe is using more than 2gb, although isn't this a problem of a 32 bit .exe ?
Or, the stack is made too big. Wouldn't this issue explode with OpenMP, which replicates the stack for each thread.
(I'm not sure of the stack size allotted for other threads in ifort?)
A solution approach can be to change large arrays to allocatable and place them in a module. This addresses both large common arrays and large stack demands.
Note also that all OpenMP private arrays will be replicated, which in some cases can have heavy stack demands. 
An alternative could be to make a large private array into a (larger!) shared allocatable array, with the last subscript being the thread id. (need 64-bit .exe for this)

For Problem 2:
The results are not reproduceable. This is to be expected with OpenMP.
Suggestions are variables are not being initialised, which is more difficult with OpenMP if Firstprivate clause is not correctly used.
There has not been a suggestion of race-condition, which could be a clear possibility.
Also, make sure all routines are threadsafe, with no local static variables that need to be private.

As has been recommended, first try to "get a single thread version running". This looks to be a good start.
The attempt to change all large arrays to allocatable could also help.
Audit all static arrays and variables for possible multi-thread use, including in all libraries and utility routines. Making module arrays private adds to the complexity.
Using a different compiler with better (even different) error checking can help.

The 2GB limit on code, stack and static data also applies to 64-bit.

Steve (aka "Doctor Fortran") - Retired from Intel

Quote:

Bruce Weaver wrote:
... Intel is particularly bad at detecting uninitialized errors, ....  Perhaps the Intel developers should address this issue.  I need to use Intel because of the speed ... but I sure wish they would make the debug mode much better at error detection.

It is certainly feasible to use one compiler for finding and fixing bugs, and another for speeding up the fixed program. Many people use more than one compiler, using each for the task that it is good at.

The problem of not finding the .exe files seems to be abated by some of the earlier suggestions.  They are still occurring on my co-worker's machine so I will have to try to duplicate whatever the fix(es) is/are.  The .exe files are only about 0.5MB.  All the large arrays are shared and amount to about 400MB in the test case but I've used as much as 16GB of files (on-disk size, about 5 GB of stored numbers) so I'm not sure how they fit in the 2GB limit.  Steve? I guess that the 2GB limit does not apply to allocatable arrays.

It seems to crash as it is trying to write to disk some of the time.  Restarting the program seems to help it many times. As Steve suggested I've lowered the stack size (initially raised to the limit based on previous discussions on the Forum).  The data arrays are allocated in modules ...does this really help the stack/heap size issue?  I have run as many as 24 threads with large data sets.  There are no significant private arrays.  The results are extremely statistical and are quite duplicatable w/ OpenMP.  I have not checked about threadsafe in a while so I should do that. 

There are only two versions of the answer: one that is correct and one which is very similar but is wrong.  I think the uninitialized variable/array suggestion is the most likely at the moment. 

Another symptom cropped up yesterday. One version, which involves a large array causes OpenMP to drop down to one (or, weirdly, two) threads.  The same exact code employs all the requested threads on the co-worker's computer. I have not had a chance to fully explore that but it gave the wrong version of the answer in the only run we tested.  We were busy beating the code for other of these symptoms that I've been reporting here.  My co-worker is using VS and Intel 2013 as opposed to my updated 2019 and VS 2015.

mecej4:

I've started with NAG compiler testing.  It correctly finds the uninitialized variable of your test program during runtime.

My old version of IVF (11.072) initialises x(:) to 0 in sub3(s), and therefore produces the intended answer.  gfortran does not initialise x(:) to 0, and therefore produces garbage.  It seems that Intel Fortran once did automatic initialisation, what is the current behaviour?

Neither compiler catches the uninitialised variables at runtime.  Tut tut.

AARRGHHH! Now I've lost the ability to create a debug exe again!   Here is the end of the build log:

SASi2.8a - 0 error(s), 0 warning(s)

compiler:

/nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c

linker:

/OUT:"x64\Debug\SASi2.8a.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"x64\Debug\SASi2.8a.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\x64\Debug\SASi2.8a.pdb" /SUBSYSTEM:CONSOLE /STACK:100000000 /IMPLIB:"Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\x64\Debug\SASi2.8a.lib"

But no .exe in x64\Debug\ .  Works ok in release.  It is like the linker is never invoked.  After I build, when I go to execute, says it needs to recompile, then it immediately says it can't find the executable (of course, it doesn't exit in the debug directory).  It seems the linker is not invoked.  Again seems to work in older directories. 

 

The linker may not be invoked if VS thinks the project is up to date. Please attach a zip of buildlog.htm. I also suggest you check your antivirus software to see if it treated the EXE as a virus - many do that for newly created EXEs.

Steve (aka "Doctor Fortran") - Retired from Intel

Hi Steve: The build log is at the top of my last post.  note my last paragraph, it recompiles (or tries to) but doesn't link.

That's not the build log - maybe pieces of it. I want to see the whole thing.

Steve (aka "Doctor Fortran") - Retired from Intel

that's the whole thing.  Another clue to the problem but I don't know how to interpret it.

here is the output window:

Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_vsl.f90 : warning: Module 'x64\Debug\mkl_vsl.mod' is created by both 'Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_vsl.f90' and 'Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_include_file.f90'.
Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_vsl.f90 : warning: Module 'x64\Debug\mkl_vsl_type.mod' is created by both 'Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_vsl.f90' and 'Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_include_file.f90'.
1>------ Build started: Project: SASi2.8a, Configuration: Debug x64 ------
1>Compiling with Intel(R) Visual Fortran Compiler 19.0.1.144 [Intel(R) 64]...
1>Tattles.f90
1>mkl_include_file.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>SASiCommons_module_h.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>H_module.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Star_atm_info_module_h.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Gaussian_module.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Randombw_module.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>ConOpacity_module.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Star_ln_info_module_h.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Pst_module_h.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Collpho_module_h.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Collpho_module_h.f90(383): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value.   [THETA]
1>SASi.2.8.8.f90
1>ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location
1>ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring
1>
1>Build log written to  "file://Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\x64\Debug\BuildLog.htm"
1>SASi2.8a - 0 error(s), 12 warning(s)
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========

 

It is the same as the build log:

Compiling with Intel(R) Visual Fortran Compiler 19.0.1.144 [Intel(R) 64]... ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qopt-report-file /Qguide:2 /Qguide-file /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Tattles.f90" ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_include_file.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\SASiCommons_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\H_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Star_atm_info_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Gaussian_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Randombw_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\ConOpacity_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Star_ln_info_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Pst_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Collpho_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Collpho_module_h.f90(383): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [THETA] subroutine collpho2(ln,z,theta,lam,rng) -------------------------^ ifort /nologo /debug:full /Od /QxHost /Qparallel /heap-arrays0 /Qopenmp /warn:interfaces /Qopt-report:5 /Qguide:2 /Qguide-file:"x64\Debug\SASi2.8a.gap" /module:"x64\Debug\\" /object:"x64\Debug\\" /Fd"x64\Debug\vc140.pdb" /traceback /check:all /libs:dll /threads /dbglibs /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\SASi.2.8.8.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort: command line warning #10327: '/Qguide' requires an optimization level of '/O2' or higher; ignoring SASi2.8a - 0 error(s), 12 warning(s)

For comparison, here is the release build log for exactly the same code:

Compiling with Intel(R) Visual Fortran Compiler 19.0.1.144 [Intel(R) 64]... ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Tattles.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\mkl_include_file.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\SASiCommons_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\H_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Star_atm_info_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Gaussian_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Randombw_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\ConOpacity_module.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Star_ln_info_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Pst_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Collpho_module_h.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\Collpho_module_h.f90(383): warning #6843: A dummy argument with an explicit INTENT(OUT) declaration is not given an explicit value. [THETA] subroutine collpho2(ln,z,theta,lam,rng) -------------------------^ ifort /nologo /debug:full /O2 /QxHost /Qparallel /heap-arrays0 /Qopenmp /Qopt-report:5 /align:rec16byte /align:zcommons /align:array256byte /module:"x64\Release\\" /object:"x64\Release\\" /Fd"x64\Release\vc140.pdb" /check:uninit /libs:dll /threads /4Yportlib /Qmkl:parallel /c /Qopt-report-format:vs /Qlocation,link,"C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\\bin\amd64" /Qm64 "Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\SASi.2.8.8.f90" ifort: remark #10397: optimization reports are generated in *.optrpt files in the output location Linking... Link /OUT:"x64\Release\SASi2.8a.exe" /INCREMENTAL:NO /NOLOGO /MANIFEST /MANIFESTFILE:"x64\Release\SASi2.8a.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /SUBSYSTEM:CONSOLE /LARGEADDRESSAWARE /IMPLIB:"Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\x64\Release\SASi2.8a.lib" -qm64 /qoffload-ldopts="-mkl=parallel" "x64\Release\Tattles.obj" "x64\Release\mkl_include_file.obj" "x64\Release\SASiCommons_module_h.obj" "x64\Release\H_module.obj" "x64\Release\Star_atm_info_module_h.obj" "x64\Release\Gaussian_module.obj" "x64\Release\Randombw_module.obj" "x64\Release\ConOpacity_module.obj" "x64\Release\Star_ln_info_module_h.obj" "x64\Release\Pst_module_h.obj" "x64\Release\Collpho_module_h.obj" "x64\Release\SASi.2.8.8.obj" Embedding manifest... mt.exe /nologo /outputresource:"Q:\SASi\SASi.2.8a\SASi2.8a\SASi2.8a\x64\Release\SASi2.8a.exe;#1" /manifest "x64\Release\SASi2.8a.exe.intermediate.manifest" SASi2.8a - 0 error(s), 1 warning(s)

 

This is why I included the release and debug command lines.  I can only guess it has something to do with them.

Please ZIP the Debug buildlog.htm and attach it to a reply here. I am not interested in the contents of the output window.

Steve (aka "Doctor Fortran") - Retired from Intel

yeah, it is hard to read all run together.  I didn't know it would be easier in a zip file.

Attachments: 

AttachmentSize
Downloadapplication/zip BuildLog.zip1.49 KB

Ok, that helps. I see you are using /Qguide - that's no longer supported and you should remove that (and /Qguide-file) from your options.

Would you please attach the .vfproj file for this project?

Steve (aka "Doctor Fortran") - Retired from Intel

sure

Attachments: 

AttachmentSize
Downloadapplication/octet-stream SASi2.8a.vfproj5.06 KB

It is indeed the setting for Guided Auto Parallel that is blocking linking. Now that I recall, if you had this enabled it would compile only, not linking. In the project properties, go to Diagnostics and set Guided Auto Parallelism to Disable.

I thought this feature was deleted but it's just "deprecated".

Steve (aka "Doctor Fortran") - Retired from Intel

Hi Steve: That solved that problem.  I'll check with the other fellow who is having similar problems & see if that is his problem, too.

Hi to all who commented on my issues,

After a few months of thrashing (with some interruptions), I now have what appears to be stable code that I can proceed to develop with.  The last piece was an error in understanding/remembering a result in my regression testing.  It was a mishmash of issues, none of which turned out to be the highly suspect uninitialized variable error.  NAG identified a couple but they were inconsequential.  The regression error was not properly testing across different machines.  While the code, after Steve pointed out some of the really annoying aspects of the compiler configuration and path issues, works correctly on my Intel E5 machine, it does not on my i7-6950X, on which I was doing my development.  Fortran 2019 v3 on the I7 machine fails on the identical source and configuration parameters that works on the older E5 machine.  I thought I had tested that but apparently I was wrong.

This was complicated by the Heap arrays compilation parameter default being blank rather than zero, the stack size that cannot be set within 5% or so of the maximum, the failure of the install to set the path for the mkl libraries, and the Guided Auto Parallel issue -- all discussed by Steve above.  There were some more as well.  I think these issues should be addressed with warnings, at least, probably where possible in the notes that appear at the bottom of the properties pages when an option is highlighted.  At least in the compiler manual, where many of the descriptions are so barebones all you can fathom is that invoking it will cause the compiler to do it whatever it is.  These compiler option bugs should just plain be fixed.  Although I've written a couple of simple interpreters, I don't know anything about the internals of serious compilers but I've never before (since the 1960s) used a compiler with so many bugs/traps in the options. (with the possible exception of a GE 605 which was weird in many possible ways). 

Converting to NAG was harder than expected as several Intel non-standard capabilities had crept in, in particular conditional compilation meta-commands and the statistical package of the MKL which we used because the code is very sensitive to the quality of the random number generator(s).  Basically, I want to write fairly complicated astrophysics code, not become an expert in the idiosyncrasies of the compiler and its options.  It is hard enough to get my physics right; it is much harder if I don't trust the compiler!

Anyway, thanks to all that chimed in, especially Steve; I'm sure I'll be back

--Bruce

 

Bruce,

I wish to thank you for taking the time to write your final feedback. Too often is the case that once a problem is solve, we get no response back, or too little feedback, from the person having the problem. Thank you.

BTW if you need someone to review and/or comment on your astrophysics code, I'd be willing to help. You can send me a private message to get contact information. The simulation package I've developed, which was based on an excellent but old F77 model, now is more modern F90, fully parallelized (OpenMP), visualization package, and has integrated the JPL SPICE mission data files which are used to populate the initial data for planetary/satellites/asteroids. The simulation from that point advances the states of the planetary bodies as well as the things I am modeling. My research area wasn't specifically about planetary bodies, but rather about the dynamics of tethers. Think of Space Elevator and the issues of how to deploy them. This model, is capable of factoring in the light speed travel time of gravitational influences (assuming gravity waves/flux propagate at light speed). While I am not suggesting you use this model, I may have some insight as to how you can implement equivalent functionality in your code.

Jim Dempsey

Jim, Bruce can't send you a private message unless you send him one first. As a "Black Belt", you have that privilege, but Bruce does not.

Steve (aka "Doctor Fortran") - Retired from Intel

Thanks Steve, I now notice that I cannot sent private message either. That appears to have changed.

Jim

Bruce,

Are you William Bruce Weaver at Monterey?

Jim Dempsey

yes

I sent an email with contact information to mira. I hope they forward it to you.

Jim

Interesting - I can't send PMs either! I will have to ask about that.

Steve (aka "Doctor Fortran") - Retired from Intel

Quote:

Steve Lionel (Ret.) wrote:
Interesting - I can't send PMs either! I will have to ask about that.

Yes PM's get disabled some time back, it would be interesting to know the thinking behind that. Sometimes you see a member that seems to have some mutual interests but there is no means of contact other than to make disclosures of your personal contact  information in what is a public forum.

Back when I was still working for Intel they disabled PMs for users, then re-enabled them for Blackbelts. I can still exchange PMs if I have an existing discussion, but can't start a new one now. I didn't notice when that went away, and have sent an inquiry to IDZ staff about it. My guess is that it wasn't intentional.

Steve (aka "Doctor Fortran") - Retired from Intel

In Bruce's case it was relatively easy for me to identify him based on the content of his messages. This is not always the case for lesser known individuals. While I do not think this forum is the place for private messaging as it may be abused, I do think it would be appreciated if a user could at least click on a button that would send their contact information from IDZ directly to them. A message need not be included. This would permit Intel to avoid hosting a message board with content they do not want, and permit the users to connect with one another on subjects not pertinent to this forum.

Jim Dempsey

It could sort of be like Facebook or LinkedIn where user A requests contact with user B, with a short message attached. User B has the choice to accept or ignore the request.

However, knowing what I do about IDZ, I have significant doubts that such a feature would ever be developed here, as there is heavy dependency on whatever open-source platform du jour the forums are based on. While I was with Intel this changed at least three times, and I have heard that another switch is in the works. I've been asked to provide some input on this, and I will include my thoughts on the value of private messaging.

I don't doubt that general PMs were disabled because of their heavy use by spammers; the IDZ forums suffered greatly from spam over the years, and while forum posts are relatively easy to spot and remove, PMs are not. There are of course various ways to reduce abuse, but spammers excel in finding ways around them.

Steve (aka "Doctor Fortran") - Retired from Intel

The suggestion used in post #85 precludes the spammer from sending any message other than by creating a user account on IDZ with the "message" being the user handle and/or email address in contact info. The spam accounts could easily be identified programmicaly.

Jim Dempsey

I am once again seeing "Send Author A Message". I received an acknowledgement of my inquiry to IDZ staff but not an actual response yet.

Steve (aka "Doctor Fortran") - Retired from Intel

Doesn't show up on mine. Also, if you click your name link next to your photo, the next page is all goofed up. This may be an IE version 11 thing, as opening in Fire Fox it looks ok.

Jim

Not so final, it turned out.

As I indicated in quote #75, I thought I was pretty much done with this thread but one (final?) bug crawled out from under the rock.  Another compiler switch that I spent a couple days on.  The symptom was that after running a random number of, but typically few million, iterations -- which is just getting started with my code-- , it would blow off, in release mode, typically w/o a traceback albeit requested.  Too many photons under the bridge to write debugging out to the disk before files became too large.  It worked fine in debug mode.  It turned out that selecting any optimization mode other than none, caused the problem.  So then, if I turned on the available individual optimizations with the general optimization level off, the code continued to work.  (It took me awhile to discover that turning on the individual optimizations w/o checking the custom optimization box accomplished nothing.  Perhaps a note on each of the individual optimizations?).

This seems to be yet another issue with the compiler switches.  Does anyone have an idea about what optimization level settings do that the individual optimizations don't?  Again, all the optimization levels except 'none', had the same problem but I have not been able to find any individual optimization that will cause the problem.

I suggest Intel compiler folks use a more complete regression testing set for the compiler options.  But for me, any experiences and solutions for this issue?

thanks again, Bruce

I am not sure there isn't a hidden switch for this, but as an alternative add the option to enable an output listing file (Output property page).

A sample program here with Release build (/O2)

...
COMPILER OPTIONS BEING USED

  /align:noall                          /align:nonone
  /align:nocommons                      /align:nodcommons
  /align:noqcommons                     /align:nozcommons
  /align:records                        /align:nosequence
  /align:norec1byte                     /align:norec2byte
  /align:norec4byte                     /align:norec8byte
  /align:norec16byte                    /align:norec32byte
  /align:norec64byte                    /align:noarray8byte
  /align:noarray16byte                  /align:noarray32byte
  /align:noarray64byte                  /align:noarray128byte
  /align:noarray256byte                 /altparam
  /assume:accuracy_sensitive            /assume:nobscc
  /assume:nobuffered_io                 /assume:nobuffered_stdout
  /assume:nobyterecl                    /assume:nocontiguous_assumed_shape
  /assume:nocontiguous_pointer          /assume:nocc_omp
  /assume:nocstring                     /assume:nodummy_aliases
  /assume:nofpe_summary                 /assume:noieee_fpe_flags
  /assume:nominus0                      /assume:noold_boz
  /assume:old_complex_align             /assume:old_unit_star
  /assume:old_ldout_format              /assume:noold_logical_assign
  /assume:noold_logical_ldio            /assume:old_maxminloc
  /assume:old_xor                       /assume:noprotect_allocates
  /assume:protect_constants             /assume:noprotect_parens
  /assume:split_common                  /assume:source_include
  /assume:nostd_intent_in               /assume:std_minus0_rounding
  /assume:nostd_mod_proc_name           /assume:std_value
  /assume:realloc_lhs                   /assume:nounderscore
  /assume:no2underscores                /assume:norecursion
  /noauto                               /auto_scalar
  /nobintext                            /ccdefault:default
  /check:noarg_temp_created             /check:noassume
  /check:nobounds                       /check:nocontiguous
  /check:noformat                       /check:nooutput_conversion
  /check:nooverflow                     /check:nopointers
  /check:noshape                        /check:nostack
  /check:nouninitialized                /Qcoarray-num-procs:0
  /noQcoarray-config-file               /convert:native
  /cross_reference                      /D:__INTEL_COMPILER=1900
  /D:__INTEL_COMPILER_UPDATE=0          /D:_WIN32
  /D:_M_AMD64=100                       /D:_M_X64=100
  /D:_WIN64=1                           /D:_MSC_VER=1800
  /D:_MSC_FULL_VER=180040629            /D:_MSC_EXTENSIONS
  /D:_MT                                /D:_DLL
  /D:__INTEL_COMPILER_BUILD_DATE=20181018  /D:__INTEL_OFFLOAD
  /D:__SSE2__                           /D:__SSE2_MATH__

Page 9           Source Listing                  L2NORM
2019-05-15 15:49                                 c:\test\HIT\HIT\HIT.f90

  /D:__SSE3__                           /D:__SSSE3__
  /D:__SSE4_1__                         /D:__SSE4_2__
  /D:__SSE__                            /D:__SSE_MATH__
  /D:__MMX__                            /D:__AVX__
  /double_size:64                       /nod_lines
  /noQdyncom                            /error_limit:30
  /nof66                                /nof77rtl
  /nofast                               /fpscomp:nofilesfromcmd
  /fpscomp:nogeneral                    /fpscomp:noioformat
  /fpscomp:noldio_spacing               /fpscomp:nolibs
  /fpscomp:nologicals                   /nofpconstant
  /fpe3                                 /noftz
  /fp_model:noprecise                   /fp_model:fast
  /fp_model:nostrict                    /fp_model:nosource
  /fp_model:nodouble                    /fp_model:noextended
  /fp_model:novery_fast                 /fp_model:noexcept
  /fp_model:nono_except                 /heap_arrays:0
  /nothreadprivate_compat               /free
  /debug0                               /iface:noc
  /iface:nocref                         /iface:nocvf
  /iface:default                        /iface:nostdcall
  /iface:nostdref                       /iface:nomixed_str_len_arg
  /iface:nono_mixed_str_len_arg         /Qinit:noarrays
  /Qinit:nohuge                         /Qinit:noinfinity
  /Qinit:nominus_huge                   /Qinit:nominus_infinity
  /Qinit:nominus_tiny                   /Qinit:nonan
  /Qinit:nosnan                         /Qinit:notiny
  /Qinit:nozero                         /nointconstant
  /integer_size:32                      /libdir:automatic
  /libdir:user                          /module:x64\Release\
  /names:                               /nonoinclude
  /noobject                             /Qoffload-build:host
  /Qopenmp-simd                         /O2
  /nopad_source                         /real_size:32
  /norecursive                          /reentrancy:threaded
  /Qvec:simd                            /show:fullpath
  /show:noinclude                       /show:map
  /show:options                         /nosyntax_only
  /nothreadcom                          /noU
  /novms                                /warn:noall
  /warn:nonone                          /warn:alignments
  /warn:nodeclarations                  /warn:general
  /warn:noignore_bounds                 /warn:noignore_loc
  /warn:nointerfaces                    /warn:noshape
  /warn:notruncated_source              /warn:uncalled
  /warn:uninitialized                   /warn:nounused
  /warn:usage                           /nowrap-margins

Jim Dempsey

Pages

Leave a Comment

Please sign in to add a comment. Not a member? Join today