Hi,
we recently experienced a crash when quitting the program in libiomp5md.dll, __kmp_cleanup_user_locks(). Since the architecture is quite complex, we simplified it down to a two-file project:
- a C++ driver, which loads a dll FORTRAN library
- a FORTRAN dll, which executes an OpenMP parallel DO loop, which contains a CRITICAL SECTION
I also have a VisualStudio project for this (see attached). Note that the driver explicitly loads libiomp5md.dll since, in the original architecture, there are many FORTRAN dll modules which are linked against libiomp5md.dll. By loading this into the driver we considerably reduced the "module switch" time. I mention that we are using ifort 13.1.3.0 for FORTRAN and VC2008 for C++.
Please let me know if there is solution for this, other than not explicitly loading libiomp5md.dll, or if this a bug on the INTEL side.
Thanks, Rak