- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Dear sir or madam:
Hi, I need to use mkl pardiso to help me solve problem in 64bit linux system. Because I use 64bit-integer (ILP64 interface layer), I need to make use the function, compile command and library to link is correct. However, I get a little confuse about pardiso_64 function.
From the Description: You can use it together with the usual LP64 interfaces for the rest of Intel MKL functionality. In other words, if you use 64-bit integer version (pardiso_64), you do not need to re-link your applications with ILP64 libraries. Take into account that pardiso_64 may perform slower than regular pardiso on reordering and symbolic factorization phase.
From the Note: pardiso_64 is supported only in the 64-bit libraries. If pardiso_64 is called from the 32-bit libraries, it returns error =-12.
I know that I should compile my main.cpp program using the following command:
g++ -std=c++11 -O2 -DMKL_ILP64 main.cpp -lmkl_intel_ilp64 -lmkl_core -lmkl_intel_thread -liomp5
And in the main.cpp
mkl_set_num_threads(std::thread::hardware_concurrency());
void*pt[64];
MKL_INT mtype{6};
std::vector<MKL_INT>iparm(64);
pardisoinit(pt,&mtype,iparm.data());
iparm.at(34)=1;
But which function I should call next, just pardiso or pardiso_64?
Moreover, I use mkl11.1 and gcc4.8.2
Thank you very much
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
The pardiso_64 entry point is provided for use in situations where the LP64 libraries are being used (i.e., 32-bit integer arguments passed to other MKL routines), but 64-bit integer arguments are to be passed to Pardiso.
If you are already using ILP64. the default integer size is 64 bits, and it should make no difference whether you call pardiso() or pardiso_64().
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page