Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.

Showing results for

- Intel Community
- Software
- Software Development SDKs and Libraries
- Intel® oneAPI Math Kernel Library
- Using cluster_sparse_solver with 64 bit integers

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page

Ivan_K_6

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-21-2015
01:50 PM

38 Views

Using cluster_sparse_solver with 64 bit integers

I am trying to use `cluster_sparse_solver` with 64-bit integers (longs) for extended matrix sizes.

The first thing that I have tried is compiling my code with `-DMKL_ILP64`, which changed the `MKL_INT` type size, but had `cluster_sparse_solver` return `-2` (insufficient memory, as per docs here: https://software.intel.com/en-us/node/521694). I assume this means that under the hood, `cluster_sparse_solver` is casting `MKL_INT` into an `int` (or is linked with standard integer size), which results in a bogus number, which in turn results in the error.

I know that the call sequence for `cluster_sparse_solver` is similar to `PARDISO` (is based on it?), and I assume that `cluster_sparse_solver` used to be called `CPARDISO`. If I am correct, `PARDISO` should support extended integer sizes.

I wonder if there is an easy way to have `cluster_sparse_solver` work with larger integers.

The version of MKL in question is mkl 11.2u3, which was bundled with composer_xe 2015 3.187. My compiler flags are: `-m64 -mkl -lm -openmp -lmkl_blacs_intelmpi_ilp64 -lmkl_scalapack_ilp64 -DMKL_ILP64`

Thanks!

Link Copied

2 Replies

Gennady_F_Intel

Moderator

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-24-2015
01:44 AM

38 Views

Ivan,

yes, cluster_sparse_solver works with ILP64 API - you need explicitly link your application with ILP64 binaries ( you may better to use MKL Linker adviser - https://software.intel.com/en-us/articles/intel-mkl-link-line-advisor/ to take which libraries you need to link. Into your case – you tried to use option –mkl, This option says compiler to link with LP64 interfaces by the default.

Ivan_K_6

Beginner

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Email to a Friend
- Report Inappropriate Content

08-24-2015
07:20 AM

38 Views

In my case, it was necessary to change `-lmkl` to `-lmkl_intel_ilp64 -lmkl_core`.

Thank you very much, Gennady!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page

For more complete information about compiler optimizations, see our Optimization Notice.