Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.

How to write the makefile with mkl?

only1892
Beginner
1,151 Views

I am really struggling to find a way figure it out. I really appreciate if anybody can help me.

When I am using lapack and scalapack, my makefile looks like following and it working very well.

SCALAPACK_LIBS = /opt/openmpi/ifort-64/lib/libscalapack.a \
/opt/openmpi/ifort-64/lib/blacs_MPI-ifort-0.a \
/opt/openmpi/ifort-64/lib/blacsCinit_MPI-ifort-0.a \
/opt/openmpi/ifort-64/lib/blacsF77init_MPI-ifort-0.a \
/opt/openmpi/ifort-64/lib/blacs_MPI-ifort-0.a -llapack -lblas

But on another machine, I have to use MKL which I really have no idea how to change this part. I do not know which one corresponde to which in MKL.My MKL libs are

libmkl_intel_ilp64.a libmkl_p4n.so libmkl_vml_def.so libmkl_gf_lp64.so libmkl_blacs_intelmpi_lp64.a
libmkl_intel_ilp64.so libmkl_scalapack.a libmkl_vml_mc2.so libmkl_gnu_thread.a libmkl_blacs_lp64.a
libmkl_intel_lp64.a libmkl_scalapack_ilp64.a libmkl_vml_mc.so libmkl_gnu_thread.so libmkl_blacs_openmpi_ilp64.a
libmkl_intel_lp64.so libmkl_scalapack_lp64.a libmkl_vml_p4n.so libguide.a libmkl_blacs_openmpi_lp64.a
libmkl_intel_sp2dp.a libmkl_sequential.a libmkl_core.a libguide.so libmkl_cdft.a
libmkl_intel_sp2dp.so libmkl_sequential.so libmkl_core.so libiomp5.a libmkl_cdft_core.a
libmkl_intel_thread.a libmkl_solver.a libmkl_def.so libiomp5.so libmkl.so
libmkl_intel_thread.so libmkl_solver_ilp64.a libmkl_em64t.a libmkl_blacs_ilp64.a
libmkl_lapack.a libmkl_solver_ilp64_sequential.a libmkl_gf_ilp64.a libmkl_blacs_intelmpi20_ilp64.a
libmkl_lapack.so libmkl_solver_lp64.a libmkl_gf_ilp64.so libmkl_blacs_intelmpi20_lp64.a
libmkl_mc.so libmkl_solver_lp64_sequential.a libmkl_gf_lp64.a libmkl_blacs_intelmpi_ilp64.a

Can anybody give me suggestion.

Please treat me as a pig and make it step by step.

Thanks a lot,

Wayne

0 Kudos
3 Replies
Andrei_Moskalev__Int
1,151 Views
Try to use the following libraries:

Use this one libmkl_scalapack_lp64.ainstead oflibscalapack.a

Use this one libmkl_blacs_openmpi_lp64.ainstead of

/opt/openmpi/ifort-64/lib/blacs_MPI-ifort-0.a
/opt/openmpi/ifort-64/lib/blacsCinit_MPI-ifort-0.a
/opt/openmpi/ifort-64/lib/blacsF77init_MPI-ifort-0.a
/opt/openmpi/ifort-64/lib/blacs_MPI-ifort-0.a

Use instead of -llapack -lblas the follwoing libraries:

libmkl_intel_lp64.a -Wl,--start-group libmkl_sequential.aem64t/libmkl_core.a -Wl,--end-group lpthread

0 Kudos
only1892
Beginner
1,151 Views
Quoting - amoskale

Use instead of -llapack -lblas the follwoing libraries:

libmkl_intel_lp64.a -Wl,--start-group libmkl_sequential.a em64t/libmkl_core.a -Wl,--end-group lpthread

First thanks a lot,

What do you mean here? Are you missing something here?

0 Kudos
Andrei_Moskalev__Int
1,151 Views
Quoting - only1892

>>First thanks a lot,

>>What do you mean here? Are you missing something here?

I have described an example of linking. You should carefully read "Linking Your Application with Intel Math Kernel Library" chapter in MKL userguide to understand how to correct link MKL libraries. You chould choose linking model and choose appropriate libraries to link.

0 Kudos
Reply