[DFTB-Plus-User] Fwd: Parallel OpenMP with the DFTB+ API
Bálint Aradi
aradi at uni-bremen.de
Thu Nov 28 13:38:04 CET 2019
Dear David,
I am happy to hear, that it works now as supposed!
Best regards,
Bálint
On 28.11.19 13:04, David Furman wrote:
> OK. Problem solved!
> After looking at the linker line for my code, I noticed that it links
> against lapack and blas as well (needed for some other packages), but I
> forgot to remove these for the DFTB+ API compilation.
> After removing the links to lapack and blas, and leaving only the mkl
> libraries, everything works as expected.
>
> Thanks for the help!
>
> David
>
> ---------- Forwarded message ---------
> From: *David Furman* <sirok4 at gmail.com <mailto:sirok4 at gmail.com>>
> Date: Wed, Nov 27, 2019 at 9:27 PM
> Subject: Re: [DFTB-Plus-User] Parallel OpenMP with the DFTB+ API
> To: Bálint Aradi <aradi at uni-bremen.de <mailto:aradi at uni-bremen.de>>
>
>
> Hi Bálint,
> Thanks for reaching out!
>
> Following the manual, I compiled DFTB+ API via `make api` and linked to
> the /mkl_intel_lp/, /mkl_intel_thread/ and /mkl_core/ libraries. (I also
> tried linking to libiomp5 which did not help).
>
> When I execute my code which is interfaced to the DFTB+ API, I can see
> (in the DFTB+ output file) that the correct number of threads is
> recognized (OpenMP threads: 6),
> but there is no effect whatsoever, regardless of the number of threads I
> use.
> The same dftb_in.hsd file, when is run directly with DFTB+ executable
> (which was compiled alongside the API library), does benefit from the
> increased number of threads.
>
> Doing `ldd mycode` results in the following:
> linux-vdso.so.1 => (0x00007ffff7290000)
> libmkl_intel_lp64.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64/libmkl_intel_lp64.so
> (0x00007f6f47758000)
> libmkl_intel_thread.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64/libmkl_intel_thread.so
> (0x00007f6f451eb000)
> libmkl_core.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64/libmkl_core.so
> (0x00007f6f40eba000)
> libiomp5.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/compiler/lib/intel64/libiomp5.so
> (0x00007f6f40ac4000)
> libstdc++.so.6 =>
> /usr/local/chemistry/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/7.3.0/libstdc++.so.6
> (0x00007f6f4072c000)
> libm.so.6 => /lib64/libm.so.6 (0x0000003be3800000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003be3c00000)
> libc.so.6 => /lib64/libc.so.6 (0x0000003be3400000)
> libgcc_s.so.1 =>
> /usr/local/chemistry/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/lib64/libgcc_s.so.1
> (0x00007f6f404fe000)
> libdl.so.2 => /lib64/libdl.so.2 (0x0000003be4000000)
> /lib64/ld-linux-x86-64.so.2 (0x000055d981518000)
>
> While the same command for the standalone DFTB+ (compiled alongside the
> DFTB+ API libray) results in:
> linux-vdso.so.1 => (0x00007ffd9f784000)
> libmkl_intel_lp64.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64/libmkl_intel_lp64.so
> (0x00007f4f83897000)
> libmkl_intel_thread.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64/libmkl_intel_thread.so
> (0x00007f4f8132a000)
> libmkl_core.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/mkl/lib/intel64/libmkl_core.so
> (0x00007f4f7cff9000)
> libiomp5.so =>
> /usr/local/shared/intel/compilers_and_libraries_2019.5.281/linux/compiler/lib/intel64/libiomp5.so
> (0x00007f4f7cc03000)
> libm.so.6 => /lib64/libm.so.6 (0x0000003be3800000)
> libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003be3c00000)
> libc.so.6 => /lib64/libc.so.6 (0x0000003be3400000)
> libgcc_s.so.1 =>
> /usr/local/chemistry/gcc/7.3.0/lib/gcc/x86_64-pc-linux-gnu/lib64/libgcc_s.so.1
> (0x00007f4f7c9d5000)
> libdl.so.2 => /lib64/libdl.so.2 (0x0000003be4000000)
> /lib64/ld-linux-x86-64.so.2 (0x000055be98040000)
>
> The same behavior is reproducible with different systems (from small to
> large systems).
> So, at the moment, I'm not sure what can cause the difference in
> "performance"... it's as if the mkl threading libraries have absolutely
> no effect...
>
>
>
> On Tue, Nov 26, 2019 at 3:37 PM Bálint Aradi <aradi at uni-bremen.de
> <mailto:aradi at uni-bremen.de>> wrote:
>
> Dear David,
>
> > Simply doing 'export OMP_NUM_THREADS=6' and running my code is just
> > using 1 thread. I did manage to run DFTB+ directly on 6 threads with
> > the above command though...
>
> Actually, that should work exactly this way. Are you sure, you linked
> the right (threaded) lapack/blas libraries to your application, when you
> linked it with the library?
>
> Note: When you compile DFTB+ with API support (-DWITH_API) and install
> it (via `make install`), it will create
> _install/lib/pkgconfig/dftbplus.pc. This file contains the flags which
> were used to link the DFTB+ standalone. If that standalone shows proper
> threading behaviour, an application using the library (which was
> produced during the same build) should show it as well, provided you use
> the same flags.
>
> Best regards,
>
> Bálint
>
> --
> Dr. Bálint Aradi
> Bremen Center for Computational Materials Science, University of Bremen
> http://www.bccms.uni-bremen.de/cms/people/b-aradi/
>
>
>
>
> --
>
> David Furman, PhD, MRSC*
> *Herchel Smith Research Fellow Department of Chemistry
> University of Cambridge Lensfield Road
> CB2 1EW
>
>
>
> --
>
> David Furman, PhD, MRSC*
> *Herchel Smith Research Fellow Department of Chemistry
> University of Cambridge Lensfield Road
> CB2 1EW
>
>
> _______________________________________________
> DFTB-Plus-User mailing list
> DFTB-Plus-User at mailman.zfn.uni-bremen.de
> https://mailman.zfn.uni-bremen.de/cgi-bin/mailman/listinfo/dftb-plus-user
>
--
Dr. Bálint Aradi
Bremen Center for Computational Materials Science, University of Bremen
http://www.bccms.uni-bremen.de/cms/people/b-aradi/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: OpenPGP digital signature
URL: <http://mailman.zfn.uni-bremen.de/pipermail/dftb-plus-user/attachments/20191128/c4280e49/attachment.sig>
More information about the DFTB-Plus-User
mailing list