Help request: Library management to install elk on Linux Sub-system for Windows
Brought to you by:
jkdewhurst,
sangeetasharma
Hi all,
I would like to install elk on Window's Ubuntu sub-system and I would like to use it in parallel. The problem is I don't completely understand the library management. Can you help me figure this out? Please correct me if I did something wrong and tell me if I need to provide more details.
This is what I added to the make.inc apart from copying the libxc.a and libxcf90.a files to elk/src:
I didn't change the LIB_LPK variable that says is for LAPACK and BLAS.
This is the error I had:
I also include sone ldconfig information:
Dear Oscar,
Building make.inc can be tricky, I had some headackes with it.
Do you have an Ubuntu in a virtual machine?
If so, you just follow Ubuntu instructions for compilation, linking and stuff, in general.
General note: gcc is better for elk, and MKL is better on Intel processors (surprisingly).
SRC_MPI and SRC_OBLAS are source flags, they point to f90 files and are usually used with stubs (i.e. to disable the respective feature).
Here is a pure gcc make.inc (without libwannier)
Here is a make.inc of my workhorse with gcc 7.4 and MKL, openMP + MPI (note that I use libwannier):
Best regards.
Andrew
Hi Andrew,
I don't have a virtual machine, I have Ubuntu as a Linux Sub-system for Windows. I followed the installation instructions from the manual, I only followed the linking instructions for
libxc
because it's the only one mentioned. Do I have to special file handlings for other libraries?I have AMD, so I am not using MKL. Here's more information on my computer:
And here's my
make.inc
, I deleted the BLAS and LAPACK stubs:And here's te error I got:
Thank you for your help
Best regards,
Oscar X. Guerrero
Hi, Oscar,
If you have a single machine, you don't have to use MPI, just OpenMP parallelism, as far as I know, is required.
Best regards,
Anton.
Dear Oscar,
SRC_MPI should point to a stub or be empty:
Same goes for SRC_OBLAS. Youl LIB_LPK line should be enouch to link OBLAS.
Generally, I do not think you should link .so like that.
As Anton F. correctly said, you do not need MPI on a single machine.
And, gcc is definitely better on an AMD machine.
Finally, try compiling elk with the included LAPACK and BLAS, with mpicc, just to get it running. Once that is done, you may consider adding external linear algebra libs and check the performance gain.
Best regards.
Andrew