Linking NWChem against Intel's MKL

From NWChem

You are viewing a single post from the thread title above
Jump to: navigation, search

Click here for full thread
  • Huub Forum:Admin, Forum:Mod, NWChemDeveloper, bureaucrat, sysop
    Profile
    Send PM
Forum Regular
Threads 1
Posts 185
Hi DouDou,

I think that actually MKL is probably being used. However, you might not be able to see that easily for two reasons:
1. In the usual test jobs the BLAS calls take very little time. So using a much more efficient BLAS library will still not change the CPU time much, probably too little to see.
2. The presence of -llapack and -lblas is correct. Those libraries are included as MKL does not necessarily provide all LAPACK and BLAS routines. The routine that are not found in MKL are then picked up from the LAPACK and BLAS implementations in the source code. For this to work properly the LAPACK and BLAS libraries have to be listed after the MKL libraries, which you can easily see is correct on your link line.

My recommendation is to use a tool like ldd on the binary and check that the binary was actually linked against the libraries you want. Alternatively you try and use the debugger on the binary and have it stop the program in for example dgemm (a BLAS routine) and see what the debugger says about where that routine comes from. Alternatively (but more work) you can put some print statements in the source code of the BLAS routines in NWChem. If the MKL versions are used you should not see anything from those print statements.

I am sorry that it is not so easy to see what libraries the code uses, but if you really want to know there are ways to find out but it takes a little work.

Best wishes,

Huub


Who's here now Members 0 Guests 0 Bots/Crawler 0


AWC's: 2.5.10 MediaWiki - Stand Alone Forum Extension
Forum theme style by: AWC