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

Large DLLs for both Dynamic Linking and Static Linking to IMSL Issues

George_C_1
Beginner
500 Views

I've recently upgraded IVF to Intel Parallel Studio XE 2018 Update 4 to take advantage of the new IMSL 6.

However, the resulting IVF DLLs are referenced to "IMSLMKL_DLL.DLL" when using the dynamic-link. Also, the size of the DLL is as large as the the one for using the static-linked.

Strangely, one of my other IVF DLL doesn't seems to be affected, still with reasonable sizes for the static and dynamic-linked options to IMSL.

Please advise.

0 Kudos
7 Replies
Steve_Lionel
Honored Contributor III
500 Views

Link maps are your friend.

0 Kudos
George_C_1
Beginner
500 Views

Hi Steve,

It's great to hear from you!

Can you elaborate more on "Link Maps"? or , point me to a resource so that I can give it a try? Thanks!

Cheers

George

 

0 Kudos
Steve_Lionel
Honored Contributor III
500 Views

In the Linker property page, I think General, set "Generate link map" to Yes. Build the project, then look for projectname.map in the output folder. This is a text file and among other things it shows all the things that contribute to the DLL or EXE. If you need help interpreting it, rename it to a .txt file and attach (not paste!) it to a reply here.

0 Kudos
George_C_1
Beginner
500 Views

Steve,

I created the MAP file from the Linker and rename it to a text file. See attached.

Please help me to interpret it. Thanks!

Cheers

George

 

0 Kudos
George_C_1
Beginner
500 Views

Actually, the project in question is the one attached here.

Thanks!

0 Kudos
Steve_Lionel
Honored Contributor III
500 Views

According to these link maps, both projects are linking against the static library versions of IMSL and MKL.  How are you referencing IMSL?

0 Kudos
George_C_1
Beginner
500 Views

Hi Steve,

I've trying to reference to IMSL either by static or dynamic linking. Some of my IMSL calls may now use MKL function calls.

Just realize that IMSL 7.0 has increased the sizes of re-distribution DLLs (IMSL.DLL, IMSLMKL_DLL.DLL).  So I select the static linking to reduce the overall file size for redistribution (for this case, dynamic: 107 MB , static: 29 MB) 

Thanks bunch for all your big help,

George

George

 

0 Kudos
Reply