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

CANNOT use cluster_sparse_solver in linux!

Mehdi_M_1
Beginner
528 Views

Hi everyone,

 

I have developed a code which uses cluster_sparse_solver. I can compile it (static) in my PC, which has WINDOWS10 OS.

But, I can not compile it in linux!!

 

I use the following commands for compilation:

 

$MKLPATH=$MKLROOT/lib/intel64

$MKLINCLUDE=$MKLROOT/include

 

and then

 

$mpiifort USEFULLS.f90 CONSTANTS.f90 PRE_PROCESSOR_3D.f90 DATATYPES.f90 VEL_SUBS.f90 SPARSE_SUB.f90 -L$MKLPATH -I$MKLINCLUDE/ -I$MKLINCLUDE/intel64/lp64 parallel00.f90 -Wl,--start-group $MKLROOT/lib/intel64/libmkl_intel_lp64.a $MKLROOT/lib/intel64/libmkl_intel_thread.a $MKLROOT/lib/intel64/libmkl_core.a $MKLROOT/lib/intel64/libmkl_blacs_intelmpi_lp64.a -Wl,--end-group -liomp5 -lpthread -lm -ldl -o t1

 

But, I see the following error message:

 

parallel00.f90(17): error #7002: Error in opening the compiled module file. Check INCLUDE paths. [MKL_CLUSTER_SPARSE_SOLVER]

USE MKL_CLUSTER_SPARSE_SOLVER

------------^

parallel00.f90(61): error #6457: This derived type name has not been declared. [MKL_CLUSTER_SPARSE_SOLVER_HANDLE]

TYPE(MKL_CLUSTER_SPARSE_SOLVER_HANDLE) :: PT(64)

-------------^

parallel00.f90(268): error #6404: This name does not have a type, and must have an explicit type. [PT]

PT(:)%dummy = 0

--------^

parallel00.f90(268): error #6514: Substring or array slice notation requires CHARACTER type or array. [PT]

PT(:)%dummy = 0

--------^

parallel00.f90(268): error #6460: This is not a field name that is defined in the encompassing structure. [DUMMY]

PT(:)%dummy = 0

---------------^

parallel00.f90(268): error #6158: The structure-name is invalid or is missing. [PT]

PT(:)%dummy = 0

--------^

compilation aborted for parallel00.f90 (code 1)

 

Does anyone have any suggestion to solve this problem? Shall I compile MKL_CLUSTER_SPARSE_SOLVER.f90 in the include directory or it is not necessary? (I should say that even this compilation is not possible in my linux system, but I can do it in WINDOWS OS)

 

Best regards

Mehdi

0 Kudos
3 Replies
Gennady_F_Intel
Moderator
528 Views
0 Kudos
Mehdi_M_1
Beginner
528 Views

Hello Gennady,

Thanks for your attention to my question.

Actually, I have tried to compile mkl_cluster_sparse_solver.f90 separately:

1- On the windows system on my laptop I was successful.

2- I have also, another PC in university. In that PC (Windows 10 OS) I could not compile the  mkl_cluster_sparse_solver.f90 file, because the root is write protected (for students, not administrator) . But, I copied the INCLUDE directory to other place and compiled the mkl_cluster_sparse_solver.f90 there. Then I used the mentioned directory as the new address of INCLUDE directory and the problem was solve. (I mean: -I "new address for copy on INCLUDE folder")

3- But, I would like to compile and run my program in a cluster (Linux OS). In the mentioned system, I was not able to compile mkl_cluster_sparse_solver.f90, in root because it is write protected. So, I copied it on lnclude_copy. In this case also I get an error which is very strange:

[mehdi@frontend include_copy]$ ifort mkl_cluster_sparse_solver.f90  (press enter)

/opt/intel/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64_lin/for_main.o: In function `main':
for_main.c:(.text+0x2a): undefined reference to `MAIN__'

Best regards

Mehdi

0 Kudos
Mehdi_M_1
Beginner
528 Views

Gennady F. (Intel) wrote:

pls take a look at this thread https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/...

Hello Gennady,

Thanks for your attention to my question.

Actually, I have tried to compile mkl_cluster_sparse_solver.f90 separately:

1- On the windows system on my laptop I was successful.

2- I have also, another PC in university. In that PC (Windows 10 OS) I could not compile the  mkl_cluster_sparse_solver.f90 file, because the root is write protected (for students, not administrator) . But, I copied the INCLUDE directory to other place and compiled the mkl_cluster_sparse_solver.f90 there. Then I used the mentioned directory as the new address of INCLUDE directory and the problem was solve. (I mean: -I "new address for copy on INCLUDE folder")

3- But, I would like to compile and run my program in a cluster (Linux OS). In the mentioned system, I was not able to compile mkl_cluster_sparse_solver.f90, in root because it is write protected. So, I copied it on lnclude_copy. In this case also I get an error which is very strange:

[mehdi@frontend include_copy]$ ifort mkl_cluster_sparse_solver.f90  (press enter)

/opt/intel/compilers_and_libraries_2017.4.196/linux/compiler/lib/intel64_lin/for_main.o: In function `main':
for_main.c:(.text+0x2a): undefined reference to `MAIN__'

Best regards

Mehdi

0 Kudos
Reply