Intel® oneAPI Math Kernel Library
Ask questions and share information with other developers who use Intel® Math Kernel Library.
Announcements
FPGA community forums and blogs on community.intel.com are migrating to the new Altera Community and are read-only. For urgent support needs during this transition, please visit the FPGA Design Resources page or contact an Altera Authorized Distributor.

PDGESVD segmentation fault

Basden__Alastair
Beginner
768 Views
Hi,
I'm using PDGESVD, from scalapack in MKL, and sometimes it gives a segmentation fault. However, other times, it gives the right result. Are there any known bugs in PDGESVD that could cause this? This usually only happens for larger arrays, eg 16k x 16k or larger.

I'm using it with openmpi.

The following occurs while the call to pdgesvd is being computed.
[mc:08133] *** Process received signal ***
[mc:08133] Signal: Segmentation fault (11)
[mc:08133] Signal code: (-6)
[mc:08133] Failing at address: 0x1f400001fc5
[mc:08133] [ 0] /lib/libpthread.so.0 [0x2b8d4bb66100]
[mc:08133] [ 1] /lib/libpthread.so.0(raise+0x2b) [0x2b8d4bb65fcb]
[mc:08133] [ 2] /opt/intel/mkl/10.0.1.014/lib/em64t/libguide.so [0x2b8d4ba2a661]

Thanks...

0 Kudos
3 Replies
Basden__Alastair
Beginner
768 Views
Hi,
perhaps someone more knowledgeable can comment for me...
Could this problem be down to using more than 2GB memory?
I have been linking with lp64 libraries, but maybe I should be using ilp64?
I'm using C, so is this as simple as changing my ints to MKL_INT and then compiling with -DMKL_ILP64 and linking to the ilp64 versions?
My current links are:
-lmkl_scalapack_lp64 -lmkl_blacs_openmpi_lp64 -lmkl_lapack -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lguide -lpthread
Do I just change these to ilp64? What abot eg mkl_lapack mkl_intel_thread mkl_core and guide?

I use /opt/openmpi/bin/mpicc to do the compiling.

Thanks...
0 Kudos
TimP
Honored Contributor III
768 Views
If your int arrays need to exceed 8GB, then you must switch your int types to 64-bit, using mkl ilp64.
0 Kudos
Basden__Alastair
Beginner
768 Views
Hi,
I've moved my int types to MKL_INT, and recompiled with -DMKL_ILP64, using the *_ilp64 libraries. However, now the call to sl_init_ is crashing, giving:
[mac1:18030] *** Process received signal ***
[mac1:18030] Signal: Segmentation fault (11)
[mac1:18030] Signal code: Address not mapped (1)
[mac1:18030] Failing at address: 0x1100000000

The 3 inputs are now type MKL_INT (and the crash still happens if they are int). Is this correct? I can't find sl_init in the header files anywhere... (though the library is in libmkl_scalapack_ilp64.a I think).

It works fine with the lp64 version.

Thanks...
0 Kudos
Reply