Community
cancel
Showing results for 
Search instead for 
Did you mean: 
roy_atlans
Beginner
174 Views

Does current MKL pardiso solver support MPI?

I am using Pardiso on one code for my program. it runs fine. Now as I would like to extend my code to distributed version(MPI), I wonder if pardiso supprots MPI. My MKL viersion is 10.3.6.

Thanks!

The errors while linking .o files I just got  are(I use mpif90):

/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_ok_to_fork'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_single'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_ordered'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_for_static_init_8'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_barrier'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_next_4'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_reduce_nowait'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_critical'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_fini_8'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_cmplx8_add'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_float4_add'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_serialized_parallel'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_critical'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_init_8'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `ompc_set_nested'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_fini_4'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_push_num_threads'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_reduce_nowait'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_for_static_init_4'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_serialized_parallel'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_flush'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_single'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_next_8'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_float8_add'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_dispatch_init_4'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_global_thread_num'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_end_ordered'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_fork_call'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_fixed8_add'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_for_static_fini'
/opt/intel/composer_xe_2011_sp1.8.273/mkl/lib/intel64/libmkl_intel_thread.so: undefined reference to `__kmpc_atomic_cmplx4_add'

0 Kudos
13 Replies
asd__asdqwe
Beginner
174 Views

Hello,

Pardiso works fine within a MPI environment, however it can't be used as a distributed solver (for that, you might want to check http://www.pardiso-project.org/). Concerning your errors, do you link against libiomp5 and activate OpenMP support (-openmp -liomp5) ? If you are using GNU compilers, that might be something like -fopenmp -lgomp.

roy_atlans
Beginner
174 Views

I am using mpif90 for the linking step, so the last linking command is some thing like:

mpif90 1.o 2.o 3.o -L$MKL_HOME/lib/intel64 -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -liomp5 -lm -o run.exe
I got the same error for -openmp -lgomp combination;

I got the following error for -openmp -liomp5 combination:
/usr/bin/ld: cannot find -liomp5

It seems to me that the compiler does not know the option -fopenmp

Gennady_F_Intel
Moderator
174 Views

Actually, there is some research version of pardiso for distributed version. Can you elaborate with us some more details about the task you are solving? In the case if some restricted info - you can use the private message for that.  Probably I can give you this package for evaluation. 

--Gennady

Paweł_J_
Beginner
174 Views

Hi,

I'm intrested in pardiso for distributed version. Is there any way to get this package for evaluation?

best,

Paweł J.

Gennady_F_Intel
Moderator
174 Views

yes, we are going to add this functionality to the 11.2 beta version. This beta would be released soon. the information about this release would be published on mkl forum.

Zhanghong_T_
Beginner
174 Views

Dear Gennady,

Does 11.3 added this new feature? Is there any reference to show how to use the PARDISO as distributed solver?

Thanks,

Tang Laoya

174 Views

Hi,

Sure, use this link https://software.intel.com/en-us/articles/intel-math-kernel-library-parallel-direct-sparse-solver-for-clusters in which we describe how to switch from pardiso to  cluster_sparse_solver

Thanks,

Alex

Gennady_F_Intel
Moderator
174 Views

moreover, since version 11.2 when we introduce this solver, now in the next version 11.3 u2 we have many of improvements. Please check this solver and let us know the feedback.

Zhanghong_T_
Beginner
174 Views

That's great! Thank you very much for your kindly reply.

Zhanghong_T_
Beginner
174 Views

Dear Gennady and Alex,

I am trying to test the example cl_solver_sym_f90.f90 in windows 7 64bit + VS2013 + intel Fortran 2016, and set the include path to:

C:\Program Files (x86)\Intel\MPI\4.1.3.047\em64t\include;C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2016\windows\mkl\include

The following errors displayed when build the project:

error #7002: Error in opening the compiled module file.  Check INCLUDE paths.   [MKL_CLUSTER_SPARSE_SOLVER]
error #6457: This derived type name has not been declared.   [MKL_CLUSTER_SPARSE_SOLVER_HANDLE]
error #6404: This name does not have a type, and must have an explicit type.   [PT]
error #6458: This name must be the name of a variable with a derived type (structure type).   [PT]
error #6830: The argument of the ALLOCATED intrinsic cannot be a constant or an expression.   [PT]

Is there anything I have missed?

Thanks

Zhanghong_T_
Beginner
174 Views

I used .f source file to link the project. After I changed the file name to .f90, the build is successed. Why the .f file can't work?

Thanks

TimP
Black Belt
174 Views

Changing a source file name from .f to .f90 changes default source format setting from f77 (fixed form column dependent) to f90 free form, nothing more.  The same setting applies to include files.

Zhanghong_T_
Beginner
174 Views

Oh, I see. Do you mean that I should include 'mkl_cluster_sparse_solver.f77' for .f or .for file and include 'mkl_cluster_sparse_solver.f90' for .f90 file?

Thanks

Reply