New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

QUIC-SVD fails if m=n. #717

Closed
zoq opened this Issue Jul 7, 2016 · 8 comments

Comments

Projects
None yet
4 participants
@zoq
Member

zoq commented Jul 7, 2016

The QUIC-SVD method doesn't work if m = n, however as pointed out in the paper QUIC-SVD: Fast SVD Using Cosine Trees:

Throughout this paper we assume m ≥ n, such that sampling rows gives bigger speedup than sampling columns.

it should work. One problem is that the CosineNodeSplit(); returns if numColumns < 2 so the upcoming operations result in an error:

// Split the node into left and right children.
currentNode->CosineNodeSplit();

// Obtain pointers to the left and right children of the current node.
CosineTree *currentLeft, *currentRight;
currentLeft = currentNode->Left();
currentRight = currentNode->Right();

Right now, I can't see an easy fix, without changing some bigger parts of the code. Maybe someone else has a simple idea? Maybe @siddharth-agrawal has an idea?

@siddharth-agrawal

This comment has been minimized.

Show comment
Hide comment
@siddharth-agrawal

siddharth-agrawal Jul 7, 2016

Member

@zoq Unfortunately, no. It's been two years since I wrote the code, so this is now effectively someone else's code for me. Maybe @rcurtin has an idea, he has an awesome memory!

Member

siddharth-agrawal commented Jul 7, 2016

@zoq Unfortunately, no. It's been two years since I wrote the code, so this is now effectively someone else's code for me. Maybe @rcurtin has an idea, he has an awesome memory!

@rcurtin

This comment has been minimized.

Show comment
Hide comment
@rcurtin

rcurtin Jul 7, 2016

Member

I don't have an awesome memory, I just have lots of logs that I have to refer to... :)

I'll look into this when I have a chance, hopefully in the next week or so.

Member

rcurtin commented Jul 7, 2016

I don't have an awesome memory, I just have lots of logs that I have to refer to... :)

I'll look into this when I have a chance, hopefully in the next week or so.

@rcurtin rcurtin self-assigned this Jul 7, 2016

@rcurtin

This comment has been minimized.

Show comment
Hide comment
@rcurtin

rcurtin Jul 20, 2016

Member

When you say that it doesn't work, do you mean that it crashes or that its results are not good? If you have a test dataset and code I can use, that will help me figure out what is wrong.

It seems like there is at least a problem with the termination condition for building the tree, like you pointed out.

Member

rcurtin commented Jul 20, 2016

When you say that it doesn't work, do you mean that it crashes or that its results are not good? If you have a test dataset and code I can use, that will help me figure out what is wrong.

It seems like there is at least a problem with the termination condition for building the tree, like you pointed out.

@zoq

This comment has been minimized.

Show comment
Hide comment
@zoq

zoq Jul 20, 2016

Member

It crashes, here is a simple test case:

BOOST_AUTO_TEST_CASE(QUICSVDSameDimensionTest)
{
  arma::mat dataset = arma::randn<arma::mat>(10, 10);

  // Obtain the SVD using default parameters.
  arma::mat u, v, sigma;
  svd::QUIC_SVD quicsvd(dataset, u, v, sigma);
}
Member

zoq commented Jul 20, 2016

It crashes, here is a simple test case:

BOOST_AUTO_TEST_CASE(QUICSVDSameDimensionTest)
{
  arma::mat dataset = arma::randn<arma::mat>(10, 10);

  // Obtain the SVD using default parameters.
  arma::mat u, v, sigma;
  svd::QUIC_SVD quicsvd(dataset, u, v, sigma);
}
@rcurtin

This comment has been minimized.

Show comment
Hide comment
@rcurtin

rcurtin Aug 7, 2016

Member

I believe that I've fixed this in 5bd1e7c; the issue was basically that the cosine nodes would not split at all when there were two points, so I changed the minimum number of points. In addition, the nodes would not split properly when there were only two points: the code (and the original equations in the paper) would cause both points to be in the left child, leaving an empty right child (which caused a failure).

I also found a minor error in 0be5c05, which I fixed. I added the test you suggested to quic_svd_test.cpp.

If my fix didn't work, please reopen and I'll try again. :)

Member

rcurtin commented Aug 7, 2016

I believe that I've fixed this in 5bd1e7c; the issue was basically that the cosine nodes would not split at all when there were two points, so I changed the minimum number of points. In addition, the nodes would not split properly when there were only two points: the code (and the original equations in the paper) would cause both points to be in the left child, leaving an empty right child (which caused a failure).

I also found a minor error in 0be5c05, which I fixed. I added the test you suggested to quic_svd_test.cpp.

If my fix didn't work, please reopen and I'll try again. :)

@rcurtin rcurtin closed this Aug 7, 2016

@rcurtin rcurtin added the R: fixed label Aug 7, 2016

@rcurtin rcurtin added this to the mlpack 2.0.4 milestone Aug 7, 2016

@KungFuJesus

This comment has been minimized.

Show comment
Hide comment
@KungFuJesus

KungFuJesus Sep 1, 2016

Your fix worked for small matrices, however sizable ones still crash, whether they are square or not. I am using MKL for BLAS & LAPACK implementations, though that should not matter. Here's my test code:

#include <stdio.h>
#include <stdlib.h>

#include <mlpack/core.hpp>
#include <mlpack/methods/quic_svd/quic_svd.hpp>

int main(int argc, char *argv[])
{
    using namespace mlpack;
    using namespace mlpack::svd;

    size_t numR = atoi(argv[1]);
    size_t numC = atoi(argv[2]);

    arma::mat dataset(numR, numC, arma::fill::randn);
    arma::mat u, v, sigma;

    QUIC_SVD quicsvd(dataset, u, v, sigma);

    return 0;
}

adam@Crushinator:~$ ./test.out 101 132

ntel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
*** Error in `./test.out': free(): invalid pointer: 0x0000000000d88660 ***
======= Backtrace: =========
/usr/lib/libc.so.6(+0x70c4b)[0x7fca368e1c4b]
/usr/lib/libc.so.6(+0x76fe6)[0x7fca368e7fe6]
/usr/lib/libc.so.6(+0x777de)[0x7fca368e87de]
/usr/local/lib/libmlpack.so.2(ZN6mlpack3svd8QUIC_SVD10ExtractSVDERN4arma3MatIdEES5_S5+0xd15)[0x7fca37f3d575]
/usr/local/lib/libmlpack.so.2(_ZN6mlpack3svd8QUIC_SVDC2ERKN4arma3MatIdEERS4_S7_S7_dd+0x16e)[0x7fca37f3ee8e]
./test.out[0x4028d1]
/usr/lib/libc.so.6(__libc_start_main+0xf1)[0x7fca36891291]
./test.out[0x40243a]
======= Memory map: ========
00400000-0040a000 r-xp 00000000 08:02 824179 /home/adam/test.out
00609000-0060a000 r--p 00009000 08:02 824179 /home/adam/test.out
0060a000-0060b000 rw-p 0000a000 08:02 824179 /home/adam/test.out
00d02000-0129a000 rw-p 00000000 00:00 0 [heap]
7fca0c000000-7fca0c021000 rw-p 00000000 00:00 0
7fca0c021000-7fca10000000 ---p 00000000 00:00 0
7fca14000000-7fca14021000 rw-p 00000000 00:00 0
7fca14021000-7fca18000000 ---p 00000000 00:00 0
7fca18000000-7fca18486000 rw-p 00000000 00:00 0
7fca18486000-7fca1c000000 ---p 00000000 00:00 0
7fca1c000000-7fca1c486000 rw-p 00000000 00:00 0
7fca1c486000-7fca20000000 ---p 00000000 00:00 0
7fca2167a000-7fca21aff000 rw-p 00000000 00:00 0
7fca21f84000-7fca24000000 rw-p 00000000 00:00 0
7fca24000000-7fca24021000 rw-p 00000000 00:00 0
7fca24021000-7fca28000000 ---p 00000000 00:00 0
7fca280c6000-7fca2a6d4000 rw-p 00000000 00:00 0
7fca2a6d4000-7fca2a6d5000 ---p 00000000 00:00 0
7fca2a6d5000-7fca2aad5000 rw-p 00000000 00:00 0
7fca2aad5000-7fca2aad6000 ---p 00000000 00:00 0
7fca2aad6000-7fca2aed6000 rw-p 00000000 00:00 0
7fca2aed6000-7fca2aed7000 ---p 00000000 00:00 0
7fca2aed7000-7fca2b4d7000 rw-p 00000000 00:00 0
7fca2b4d7000-7fca2d53f000 r-xp 00000000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d53f000-7fca2d73f000 ---p 02068000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d73f000-7fca2d744000 r--p 02068000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d744000-7fca2d74c000 rw-p 0206d000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d74c000-7fca2e043000 r-xp 00000000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e043000-7fca2e242000 ---p 008f7000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e242000-7fca2e243000 r--p 008f6000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e243000-7fca2e257000 rw-p 008f7000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e257000-7fca2e25c000 rw-p 00000000 00:00 0
7fca2e25c000-7fca2f7c3000 r-xp 00000000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2f7c3000-7fca2f9c3000 ---p 01567000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2f9c3000-7fca2f9c6000 r--p 01567000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2f9c6000-7fca2fb82000 rw-p 0156a000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2fb82000-7fca2fb88000 rw-p 00000000 00:00 0
7fca2fb88000-7fca2fc93000 r-xp 00000000 08:02 46803 /opt/intel/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64_lin/libiomp5.so
7fca2fc93000-7fca2fe92000 ---p 0010b000 08:02 46803 /opt/intel/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64_lin/libiomp5.so
7fca2fe92000-7fca2fe9d000 rw-p 0010a000 08:02 46803 /opt/intel/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64_lin/libiomp5.so
7fca2fe9d000-7fca2fecc000 rw-p 00000000 00:00 0
7fca2fecc000-7fca31661000 r-xp 00000000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca31661000-7fca31861000 ---p 01795000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca31861000-7fca31869000 r--p 01795000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca31869000-7fca3188a000 rw-p 0179d000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca3188a000-7fca318dd000 rw-p 00000000 00:00 0
7fca318dd000-7fca318e1000 r-xp 00000000 08:02 13199997 /usr/lib/libcap.so.2.25
7fca318e1000-7fca31ae0000 ---p 00004000 08:02 13199997 /usr/lib/libcap.so.2.25
7fca31ae0000-7fca31ae1000 rw-p 00003000 08:02 13199997 /usr/lib/libcap.so.2.25
7fca31ae1000-7fca31af5000 r-xp 00000000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31af5000-7fca31cf4000 ---p 00014000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31cf4000-7fca31cf5000 r--p 00013000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31cf5000-7fca31cf6000 rw-p 00014000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31cf6000-7fca31cf8000 rw-p 00000000 00:00 0
7fca31cf8000-7fca31d01000 r-xp 00000000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31d01000-7fca31f00000 ---p 00009000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31f00000-7fca31f01000 r--p 00008000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31f01000-7fca31f02000 rw-p 00009000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31f02000-7fca31f0c000 r-xp 00000000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca31f0c000-7fca3210c000 ---p 0000a000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca3210c000-7fca3210d000 r--p 0000a000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca3210d000-7fca3210e000 rw-p 0000b000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca3210e000-7fca3214d000 r-xp 00000000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3214d000-7fca3234c000 ---p 0003f000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3234c000-7fca3234d000 r--p 0003e000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3234d000-7fca3234e000 rw-p 0003f000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3234e000-7fca32388000 r-xp 00000000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32388000-7fca32587000 ---p 0003a000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32587000-7fca32588000 r--p 00039000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32588000-7fca32589000 rw-p 0003a000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32589000-7fca3258b000 r-xp 00000000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3258b000-7fca3278a000 ---p 00002000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3278a000-7fca3278b000 r--p 00001000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3278b000-7fca3278c000 rw-p 00002000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3278c000-7fca32823000 r-xp 00000000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32823000-7fca32a22000 ---p 00097000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32a22000-7fca32a26000 r--p 00096000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32a26000-7fca32a2a000 rw-p 0009a000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32a2a000-7fca32a30000 rw-p 00000000 00:00 0
7fca32a30000-7fca32aa7000 r-xp 00000000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32aa7000-7fca32ca7000 ---p 00077000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32ca7000-7fca32ca8000 r--p 00077000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32ca8000-7fca32cab000 rw-p 00078000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32cab000-7fca32cad000 rw-p 00000000 00:00 0
7fca32cad000-7fca33274000 r-xp 00000000 08:02 12963677 /usr/lib/libatlas.so
7fca33274000-7fca33473000 ---p 005c7000 08:02 12963677 /usr/lib/libatlas.so
7fca33473000-7fca3347c000 rw-p 005c6000 08:02 12963677 /usr/lib/libatlas.so
7fca3347c000-7fca3349d000 r-xp 00000000 08:02 12963700 /usr/lib/libptcblas.so
7fca3349d000-7fca3369c000 ---p 00021000 08:02 12963700 /usr/lib/libptcblas.so
7fca3369c000-7fca3369d000 rw-p 00020000 08:02 12963700 /usr/lib/libptcblas.so
7fca3369d000-7fca336a3000 r-xp 00000000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca336a3000-7fca338a2000 ---p 00006000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca338a2000-7fca338a3000 r--p 00005000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca338a3000-7fca338a4000 rw-p 00006000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca338a4000-7fca339d2000 r-xp 00000000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca339d2000-7fca33bd2000 ---p 0012e000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca33bd2000-7fca33bd3000 r--p 0012e000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca33bd3000-7fca33bd5000 rw-p 0012f000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca33bd5000-7fca33c95000 r-xp 00000000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33c95000-7fca33e94000 ---p 000c0000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33e94000-7fca33e96000 r--p 000bf000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33e96000-7fca33ea6000 rw-p 000c1000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33ea6000-7fca33eb9000 rw-p 00000000 00:00 0
7fca33eb9000-7fca33f10000 r-xp 00000000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca33f10000-7fca3410f000 ---p 00057000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca3410f000-7fca34110000 r--p 00056000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca34110000-7fca34111000 rw-p 00057000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca34111000-7fca34117000 r-xp 00000000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34117000-7fca34316000 ---p 00006000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34316000-7fca34317000 r--p 00005000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34317000-7fca34318000 rw-p 00006000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34318000-7fca34346000 r-xp 00000000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34346000-7fca34545000 ---p 0002e000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34545000-7fca34546000 r--p 0002d000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34546000-7fca34547000 rw-p 0002e000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34547000-7fca34564000 r-xp 00000000 08:02 12963701 /usr/lib/libptf77blas.so
7fca34564000-7fca34764000 ---p 0001d000 08:02 12963701 /usr/lib/libptf77blas.so
7fca34764000-7fca34765000 rw-p 0001d000 08:02 12963701 /usr/lib/libptf77blas.so
7fca34765000-7fca34cd7000 r-xp 00000000 08:02 12963704 /usr/lib/libptlapack.so.3.4.1
7fca34cd7000-7fca34ed6000 ---p 00572000 08:02 12963704 /usr/lib/libptlapack.so.3.4.1
7fca34ed6000-7fca34edc000 rw-p 00571000 08:02 12963704 /usr/lib/libptlapack.so.3.4.1
7fca34edc000-7fca34fe9000 rw-p 00000000 00:00 0
7fca34fe9000-7fca34fec000 r-xp 00000000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca34fec000-7fca351eb000 ---p 00003000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca351eb000-7fca351ec000 r--p 00002000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca351ec000-7fca351ed000 rw-p 00003000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca351ed000-7fca351f1000 r-xp 00000000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca351f1000-7fca353f0000 ---p 00004000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca353f0000-7fca353f1000 r--p 00003000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca353f1000-7fca353f2000 rw-p 00004000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca353f2000-7fca35462000 r-xp 00000000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35462000-7fca35661000 ---p 00070000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35661000-7fca35662000 r--p 0006f000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35662000-7fca35663000 rw-p 00070000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35663000-7fca356ad000 r-xp 00000000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca356ad000-7fca358ac000 ---p 0004a000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca358ac000-7fca358ad000 r--p 00049000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca358ad000-7fca358ae000 rw-p 0004a000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca358ae000-7fca358b0000 r-xp 00000000 08:02 473731 /usr/lib/libdl-2.24.so
7fca358b0000-7fca35ab0000 ---p 00002000 08:02 473731 /usr/lib/libdl-2.24.so
7fca35ab0000-7fca35ab1000 r--p 00002000 08:02 473731 /usr/lib/libdl-2.24.so
7fca35ab1000-7fca35ab2000 rw-p 00003000 08:02 473731 /usr/lib/libdl-2.24.so
7fca35ab2000-7fca35aca000 r-xp 00000000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35aca000-7fca35cc9000 ---p 00018000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35cc9000-7fca35cca000 r--p 00017000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35cca000-7fca35ccb000 rw-p 00018000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35ccb000-7fca35ccf000 rw-p 00000000 00:00 0
7fca35ccf000-7fca35cfc000 r-xp 00000000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35cfc000-7fca35efb000 ---p 0002d000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35efb000-7fca35efc000 r--p 0002c000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35efc000-7fca35efd000 rw-p 0002d000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35efd000-7fca35f04000 r-xp 00000000 08:02 473735 /usr/lib/librt-2.24.so
7fca35f04000-7fca36103000 ---p 00007000 08:02 473735 /usr/lib/librt-2.24.so
7fca36103000-7fca36104000 r--p 00006000 08:02 473735 /usr/lib/librt-2.24.so
7fca36104000-7fca36105000 rw-p 00007000 08:02 473735 /usr/lib/librt-2.24.so
7fca36105000-7fca3613e000 r-xp 00000000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca3613e000-7fca3633e000 ---p 00039000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca3633e000-7fca36340000 r--p 00039000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca36340000-7fca36341000 rw-p 0003b000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca36341000-7fca363e9000 r-xp 00000000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca363e9000-7fca365e8000 ---p 000a8000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca365e8000-7fca365ec000 r--p 000a7000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca365ec000-7fca365ed000 rw-p 000ab000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca365ed000-7fca365f0000 rw-p 00000000 00:00 0
7fca365f0000-7fca3666d000 r-xp 00000000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca3666d000-7fca3686d000 ---p 0007d000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca3686d000-7fca36870000 r--p 0007d000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca36870000-7fca36871000 rw-p 00080000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca36871000-7fca36a06000 r-xp 00000000 08:02 473677 /usr/lib/libc-2.24.so
7fca36a06000-7fca36c05000 ---p 00195000 08:02 473677 /usr/lib/libc-2.24.so
7fca36c05000-7fca36c09000 r--p 00194000 08:02 473677 /usr/lib/libc-2.24.so
7fca36c09000-7fca36c0b000 rw-p 00198000 08:02 473677 /usr/lib/libc-2.24.so
7fca36c0b000-7fca36c0f000 rw-p 00000000 00:00 0
7fca36c0f000-7fca36c25000 r-xp 00000000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36c25000-7fca36e24000 ---p 00016000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36e24000-7fca36e25000 r--p 00015000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36e25000-7fca36e26000 rw-p 00016000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36e26000-7fca36f29000 r-xp 00000000 08:02 473732 /usr/lib/libm-2.24.so
7fca36f29000-7fca37128000 ---p 00103000 08:02 473732 /usr/lib/libm-2.24.so
7fca37128000-7fca37129000 r--p 00102000 08:02 473732 /usr/lib/libm-2.24.so
7fca37129000-7fca3712a000 rw-p 00103000 08:02 473732 /usr/lib/libm-2.24.so
7fca3712a000-7fca372a2000 r-xp 00000000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca372a2000-7fca374a2000 ---p 00178000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca374a2000-7fca374ac000 r--p 00178000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca374ac000-7fca374ae000 rw-p 00182000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca374ae000-7fca374b2000 rw-p 00000000 00:00 0
7fca374b2000-7fca374ba000 r-xp 00000000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca374ba000-7fca376b9000 ---p 00008000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca376b9000-7fca376ba000 r--p 00007000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca376ba000-7fca376bb000 rw-p 00008000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca376bb000-7fca37a88000 r-xp 00000000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37a88000-7fca37c88000 ---p 003cd000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37c88000-7fca37c8e000 r--p 003cd000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37c8e000-7fca37c8f000 rw-p 003d3000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37c8f000-7fca37c9f000 rw-p 00000000 00:00 0
7fca37c9f000-7fca3803a000 r-xp 00000000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca3803a000-7fca3823a000 ---p 0039b000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca3823a000-7fca38248000 r--p 0039b000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca38248000-7fca3824c000 rw-p 003a9000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca3824c000-7fca38251000 rw-p 00000000 00:00 0
7fca38251000-7fca38274000 r-xp 00000000 08:02 473676 /usr/lib/ld-2.24.so
7fca383aa000-7fca383d5000 rw-p 00000000 00:00 0
7fca383d5000-7fca383f3000 r-xp 00000000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f3000-7fca383f4000 ---p 0001e000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f4000-7fca383f5000 r--p 0001e000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f5000-7fca383f6000 rw-p 0001f000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f6000-7fca38402000 rw-p 00000000 00:00 0
7fca3843f000-7fca38440000 rw-p 00000000 00:00 0
7fca38440000-7fca38441000 ---p 00000000 00:00 0
7fca38441000-7fca38473000 rw-p 00000000 00:00 0
7fca38473000-7fca38474000 r--p 00022000 08:02 473676 /usr/lib/ld-2.24.so
7fca38474000-7fca38475000 rw-p 00023000 08:02 473676 /usr/lib/ld-2.24.so
7fca38475000-7fca38476000 rw-p 00000000 00:00 0
7ffec36f6000-7ffec3717000 rw-p 00000000 00:00 0 [stack]
7ffec37ab000-7ffec37ad000 r--p 00000000 00:00 0 [vvar]
7ffec37ad000-7ffec37af000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted (core dumped)

KungFuJesus commented Sep 1, 2016

Your fix worked for small matrices, however sizable ones still crash, whether they are square or not. I am using MKL for BLAS & LAPACK implementations, though that should not matter. Here's my test code:

#include <stdio.h>
#include <stdlib.h>

#include <mlpack/core.hpp>
#include <mlpack/methods/quic_svd/quic_svd.hpp>

int main(int argc, char *argv[])
{
    using namespace mlpack;
    using namespace mlpack::svd;

    size_t numR = atoi(argv[1]);
    size_t numC = atoi(argv[2]);

    arma::mat dataset(numR, numC, arma::fill::randn);
    arma::mat u, v, sigma;

    QUIC_SVD quicsvd(dataset, u, v, sigma);

    return 0;
}

adam@Crushinator:~$ ./test.out 101 132

ntel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.

Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
Intel MKL ERROR: Parameter 6 was incorrect on entry to DLASWP.
*** Error in `./test.out': free(): invalid pointer: 0x0000000000d88660 ***
======= Backtrace: =========
/usr/lib/libc.so.6(+0x70c4b)[0x7fca368e1c4b]
/usr/lib/libc.so.6(+0x76fe6)[0x7fca368e7fe6]
/usr/lib/libc.so.6(+0x777de)[0x7fca368e87de]
/usr/local/lib/libmlpack.so.2(ZN6mlpack3svd8QUIC_SVD10ExtractSVDERN4arma3MatIdEES5_S5+0xd15)[0x7fca37f3d575]
/usr/local/lib/libmlpack.so.2(_ZN6mlpack3svd8QUIC_SVDC2ERKN4arma3MatIdEERS4_S7_S7_dd+0x16e)[0x7fca37f3ee8e]
./test.out[0x4028d1]
/usr/lib/libc.so.6(__libc_start_main+0xf1)[0x7fca36891291]
./test.out[0x40243a]
======= Memory map: ========
00400000-0040a000 r-xp 00000000 08:02 824179 /home/adam/test.out
00609000-0060a000 r--p 00009000 08:02 824179 /home/adam/test.out
0060a000-0060b000 rw-p 0000a000 08:02 824179 /home/adam/test.out
00d02000-0129a000 rw-p 00000000 00:00 0 [heap]
7fca0c000000-7fca0c021000 rw-p 00000000 00:00 0
7fca0c021000-7fca10000000 ---p 00000000 00:00 0
7fca14000000-7fca14021000 rw-p 00000000 00:00 0
7fca14021000-7fca18000000 ---p 00000000 00:00 0
7fca18000000-7fca18486000 rw-p 00000000 00:00 0
7fca18486000-7fca1c000000 ---p 00000000 00:00 0
7fca1c000000-7fca1c486000 rw-p 00000000 00:00 0
7fca1c486000-7fca20000000 ---p 00000000 00:00 0
7fca2167a000-7fca21aff000 rw-p 00000000 00:00 0
7fca21f84000-7fca24000000 rw-p 00000000 00:00 0
7fca24000000-7fca24021000 rw-p 00000000 00:00 0
7fca24021000-7fca28000000 ---p 00000000 00:00 0
7fca280c6000-7fca2a6d4000 rw-p 00000000 00:00 0
7fca2a6d4000-7fca2a6d5000 ---p 00000000 00:00 0
7fca2a6d5000-7fca2aad5000 rw-p 00000000 00:00 0
7fca2aad5000-7fca2aad6000 ---p 00000000 00:00 0
7fca2aad6000-7fca2aed6000 rw-p 00000000 00:00 0
7fca2aed6000-7fca2aed7000 ---p 00000000 00:00 0
7fca2aed7000-7fca2b4d7000 rw-p 00000000 00:00 0
7fca2b4d7000-7fca2d53f000 r-xp 00000000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d53f000-7fca2d73f000 ---p 02068000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d73f000-7fca2d744000 r--p 02068000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d744000-7fca2d74c000 rw-p 0206d000 08:02 69046 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_avx2.so
7fca2d74c000-7fca2e043000 r-xp 00000000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e043000-7fca2e242000 ---p 008f7000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e242000-7fca2e243000 r--p 008f6000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e243000-7fca2e257000 rw-p 008f7000 08:02 71966 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_lp64.so
7fca2e257000-7fca2e25c000 rw-p 00000000 00:00 0
7fca2e25c000-7fca2f7c3000 r-xp 00000000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2f7c3000-7fca2f9c3000 ---p 01567000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2f9c3000-7fca2f9c6000 r--p 01567000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2f9c6000-7fca2fb82000 rw-p 0156a000 08:02 72210 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_intel_thread.so
7fca2fb82000-7fca2fb88000 rw-p 00000000 00:00 0
7fca2fb88000-7fca2fc93000 r-xp 00000000 08:02 46803 /opt/intel/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64_lin/libiomp5.so
7fca2fc93000-7fca2fe92000 ---p 0010b000 08:02 46803 /opt/intel/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64_lin/libiomp5.so
7fca2fe92000-7fca2fe9d000 rw-p 0010a000 08:02 46803 /opt/intel/compilers_and_libraries_2016.3.210/linux/compiler/lib/intel64_lin/libiomp5.so
7fca2fe9d000-7fca2fecc000 rw-p 00000000 00:00 0
7fca2fecc000-7fca31661000 r-xp 00000000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca31661000-7fca31861000 ---p 01795000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca31861000-7fca31869000 r--p 01795000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca31869000-7fca3188a000 rw-p 0179d000 08:02 71314 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_core.so
7fca3188a000-7fca318dd000 rw-p 00000000 00:00 0
7fca318dd000-7fca318e1000 r-xp 00000000 08:02 13199997 /usr/lib/libcap.so.2.25
7fca318e1000-7fca31ae0000 ---p 00004000 08:02 13199997 /usr/lib/libcap.so.2.25
7fca31ae0000-7fca31ae1000 rw-p 00003000 08:02 13199997 /usr/lib/libcap.so.2.25
7fca31ae1000-7fca31af5000 r-xp 00000000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31af5000-7fca31cf4000 ---p 00014000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31cf4000-7fca31cf5000 r--p 00013000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31cf5000-7fca31cf6000 rw-p 00014000 08:02 473734 /usr/lib/libresolv-2.24.so
7fca31cf6000-7fca31cf8000 rw-p 00000000 00:00 0
7fca31cf8000-7fca31d01000 r-xp 00000000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31d01000-7fca31f00000 ---p 00009000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31f00000-7fca31f01000 r--p 00008000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31f01000-7fca31f02000 rw-p 00009000 08:02 364937 /usr/lib/libltdl.so.7.3.1
7fca31f02000-7fca31f0c000 r-xp 00000000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca31f0c000-7fca3210c000 ---p 0000a000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca3210c000-7fca3210d000 r--p 0000a000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca3210d000-7fca3210e000 rw-p 0000b000 08:02 340580 /usr/lib/libnuma.so.1.0.0
7fca3210e000-7fca3214d000 r-xp 00000000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3214d000-7fca3234c000 ---p 0003f000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3234c000-7fca3234d000 r--p 0003e000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3234d000-7fca3234e000 rw-p 0003f000 08:02 477624 /usr/lib/libquadmath.so.0.0.0
7fca3234e000-7fca32388000 r-xp 00000000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32388000-7fca32587000 ---p 0003a000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32587000-7fca32588000 r--p 00039000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32588000-7fca32589000 rw-p 0003a000 08:02 684094 /usr/lib/libhwloc.so.5.7.1
7fca32589000-7fca3258b000 r-xp 00000000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3258b000-7fca3278a000 ---p 00002000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3278a000-7fca3278b000 r--p 00001000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3278b000-7fca3278c000 rw-p 00002000 08:02 473736 /usr/lib/libutil-2.24.so
7fca3278c000-7fca32823000 r-xp 00000000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32823000-7fca32a22000 ---p 00097000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32a22000-7fca32a26000 r--p 00096000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32a26000-7fca32a2a000 rw-p 0009a000 08:02 330973 /usr/lib/openmpi/libopen-pal.so.13.0.3
7fca32a2a000-7fca32a30000 rw-p 00000000 00:00 0
7fca32a30000-7fca32aa7000 r-xp 00000000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32aa7000-7fca32ca7000 ---p 00077000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32ca7000-7fca32ca8000 r--p 00077000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32ca8000-7fca32cab000 rw-p 00078000 08:02 331025 /usr/lib/openmpi/libopen-rte.so.12.0.3
7fca32cab000-7fca32cad000 rw-p 00000000 00:00 0
7fca32cad000-7fca33274000 r-xp 00000000 08:02 12963677 /usr/lib/libatlas.so
7fca33274000-7fca33473000 ---p 005c7000 08:02 12963677 /usr/lib/libatlas.so
7fca33473000-7fca3347c000 rw-p 005c6000 08:02 12963677 /usr/lib/libatlas.so
7fca3347c000-7fca3349d000 r-xp 00000000 08:02 12963700 /usr/lib/libptcblas.so
7fca3349d000-7fca3369c000 ---p 00021000 08:02 12963700 /usr/lib/libptcblas.so
7fca3369c000-7fca3369d000 rw-p 00020000 08:02 12963700 /usr/lib/libptcblas.so
7fca3369d000-7fca336a3000 r-xp 00000000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca336a3000-7fca338a2000 ---p 00006000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca338a2000-7fca338a3000 r--p 00005000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca338a3000-7fca338a4000 rw-p 00006000 08:02 219675 /usr/lib/libboost_chrono.so.1.60.0
7fca338a4000-7fca339d2000 r-xp 00000000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca339d2000-7fca33bd2000 ---p 0012e000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca33bd2000-7fca33bd3000 r--p 0012e000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca33bd3000-7fca33bd5000 rw-p 0012f000 08:02 477447 /usr/lib/libgfortran.so.3.0.0
7fca33bd5000-7fca33c95000 r-xp 00000000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33c95000-7fca33e94000 ---p 000c0000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33e94000-7fca33e96000 r--p 000bf000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33e96000-7fca33ea6000 rw-p 000c1000 08:02 330995 /usr/lib/openmpi/libmpi.so.12.0.3
7fca33ea6000-7fca33eb9000 rw-p 00000000 00:00 0
7fca33eb9000-7fca33f10000 r-xp 00000000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca33f10000-7fca3410f000 ---p 00057000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca3410f000-7fca34110000 r--p 00056000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca34110000-7fca34111000 rw-p 00057000 08:02 331015 /usr/lib/openmpi/libmpi_mpifh.so.12.0.1
7fca34111000-7fca34117000 r-xp 00000000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34117000-7fca34316000 ---p 00006000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34316000-7fca34317000 r--p 00005000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34317000-7fca34318000 rw-p 00006000 08:02 330999 /usr/lib/openmpi/libmpi_usempi_ignore_tkr.so.6.2.0
7fca34318000-7fca34346000 r-xp 00000000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34346000-7fca34545000 ---p 0002e000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34545000-7fca34546000 r--p 0002d000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34546000-7fca34547000 rw-p 0002e000 08:02 331007 /usr/lib/openmpi/libmpi_usempif08.so.11.1.1
7fca34547000-7fca34564000 r-xp 00000000 08:02 12963701 /usr/lib/libptf77blas.so
7fca34564000-7fca34764000 ---p 0001d000 08:02 12963701 /usr/lib/libptf77blas.so
7fca34764000-7fca34765000 rw-p 0001d000 08:02 12963701 /usr/lib/libptf77blas.so
7fca34765000-7fca34cd7000 r-xp 00000000 08:02 12963704 /usr/lib/libptlapack.so.3.4.1
7fca34cd7000-7fca34ed6000 ---p 00572000 08:02 12963704 /usr/lib/libptlapack.so.3.4.1
7fca34ed6000-7fca34edc000 rw-p 00571000 08:02 12963704 /usr/lib/libptlapack.so.3.4.1
7fca34edc000-7fca34fe9000 rw-p 00000000 00:00 0
7fca34fe9000-7fca34fec000 r-xp 00000000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca34fec000-7fca351eb000 ---p 00003000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca351eb000-7fca351ec000 r--p 00002000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca351ec000-7fca351ed000 rw-p 00003000 08:02 219674 /usr/lib/libboost_system.so.1.60.0
7fca351ed000-7fca351f1000 r-xp 00000000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca351f1000-7fca353f0000 ---p 00004000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca353f0000-7fca353f1000 r--p 00003000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca353f1000-7fca353f2000 rw-p 00004000 08:02 219703 /usr/lib/libboost_timer.so.1.60.0
7fca353f2000-7fca35462000 r-xp 00000000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35462000-7fca35661000 ---p 00070000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35661000-7fca35662000 r--p 0006f000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35662000-7fca35663000 rw-p 00070000 08:02 760094 /usr/lib/libsuperlu.so.5.2.0
7fca35663000-7fca356ad000 r-xp 00000000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca356ad000-7fca358ac000 ---p 0004a000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca358ac000-7fca358ad000 r--p 00049000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca358ad000-7fca358ae000 rw-p 0004a000 08:02 760634 /usr/lib/libarpack.so.2.0.0
7fca358ae000-7fca358b0000 r-xp 00000000 08:02 473731 /usr/lib/libdl-2.24.so
7fca358b0000-7fca35ab0000 ---p 00002000 08:02 473731 /usr/lib/libdl-2.24.so
7fca35ab0000-7fca35ab1000 r--p 00002000 08:02 473731 /usr/lib/libdl-2.24.so
7fca35ab1000-7fca35ab2000 rw-p 00003000 08:02 473731 /usr/lib/libdl-2.24.so
7fca35ab2000-7fca35aca000 r-xp 00000000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35aca000-7fca35cc9000 ---p 00018000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35cc9000-7fca35cca000 r--p 00017000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35cca000-7fca35ccb000 rw-p 00018000 08:02 473658 /usr/lib/libpthread-2.24.so
7fca35ccb000-7fca35ccf000 rw-p 00000000 00:00 0
7fca35ccf000-7fca35cfc000 r-xp 00000000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35cfc000-7fca35efb000 ---p 0002d000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35efb000-7fca35efc000 r--p 0002c000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35efc000-7fca35efd000 rw-p 0002d000 08:02 477530 /usr/lib/libgomp.so.1.0.0
7fca35efd000-7fca35f04000 r-xp 00000000 08:02 473735 /usr/lib/librt-2.24.so
7fca35f04000-7fca36103000 ---p 00007000 08:02 473735 /usr/lib/librt-2.24.so
7fca36103000-7fca36104000 r--p 00006000 08:02 473735 /usr/lib/librt-2.24.so
7fca36104000-7fca36105000 rw-p 00007000 08:02 473735 /usr/lib/librt-2.24.so
7fca36105000-7fca3613e000 r-xp 00000000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca3613e000-7fca3633e000 ---p 00039000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca3633e000-7fca36340000 r--p 00039000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca36340000-7fca36341000 rw-p 0003b000 08:02 219685 /usr/lib/libboost_serialization.so.1.60.0
7fca36341000-7fca363e9000 r-xp 00000000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca363e9000-7fca365e8000 ---p 000a8000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca365e8000-7fca365ec000 r--p 000a7000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca365ec000-7fca365ed000 rw-p 000ab000 08:02 219709 /usr/lib/libboost_unit_test_framework.so.1.60.0
7fca365ed000-7fca365f0000 rw-p 00000000 00:00 0
7fca365f0000-7fca3666d000 r-xp 00000000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca3666d000-7fca3686d000 ---p 0007d000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca3686d000-7fca36870000 r--p 0007d000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca36870000-7fca36871000 rw-p 00080000 08:02 219701 /usr/lib/libboost_program_options.so.1.60.0
7fca36871000-7fca36a06000 r-xp 00000000 08:02 473677 /usr/lib/libc-2.24.so
7fca36a06000-7fca36c05000 ---p 00195000 08:02 473677 /usr/lib/libc-2.24.so
7fca36c05000-7fca36c09000 r--p 00194000 08:02 473677 /usr/lib/libc-2.24.so
7fca36c09000-7fca36c0b000 rw-p 00198000 08:02 473677 /usr/lib/libc-2.24.so
7fca36c0b000-7fca36c0f000 rw-p 00000000 00:00 0
7fca36c0f000-7fca36c25000 r-xp 00000000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36c25000-7fca36e24000 ---p 00016000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36e24000-7fca36e25000 r--p 00015000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36e25000-7fca36e26000 rw-p 00016000 08:02 477409 /usr/lib/libgcc_s.so.1
7fca36e26000-7fca36f29000 r-xp 00000000 08:02 473732 /usr/lib/libm-2.24.so
7fca36f29000-7fca37128000 ---p 00103000 08:02 473732 /usr/lib/libm-2.24.so
7fca37128000-7fca37129000 r--p 00102000 08:02 473732 /usr/lib/libm-2.24.so
7fca37129000-7fca3712a000 rw-p 00103000 08:02 473732 /usr/lib/libm-2.24.so
7fca3712a000-7fca372a2000 r-xp 00000000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca372a2000-7fca374a2000 ---p 00178000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca374a2000-7fca374ac000 r--p 00178000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca374ac000-7fca374ae000 rw-p 00182000 08:02 477675 /usr/lib/libstdc++.so.6.0.22
7fca374ae000-7fca374b2000 rw-p 00000000 00:00 0
7fca374b2000-7fca374ba000 r-xp 00000000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca374ba000-7fca376b9000 ---p 00008000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca376b9000-7fca376ba000 r--p 00007000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca376ba000-7fca376bb000 rw-p 00008000 08:02 575713 /usr/lib/libarmadillo.so.7.400.2
7fca376bb000-7fca37a88000 r-xp 00000000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37a88000-7fca37c88000 ---p 003cd000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37c88000-7fca37c8e000 r--p 003cd000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37c8e000-7fca37c8f000 rw-p 003d3000 08:02 72352 /opt/intel/compilers_and_libraries_2016.3.210/linux/mkl/lib/intel64_lin/libmkl_rt.so
7fca37c8f000-7fca37c9f000 rw-p 00000000 00:00 0
7fca37c9f000-7fca3803a000 r-xp 00000000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca3803a000-7fca3823a000 ---p 0039b000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca3823a000-7fca38248000 r--p 0039b000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca38248000-7fca3824c000 rw-p 003a9000 08:02 823397 /usr/local/lib/libmlpack.so.2.0
7fca3824c000-7fca38251000 rw-p 00000000 00:00 0
7fca38251000-7fca38274000 r-xp 00000000 08:02 473676 /usr/lib/ld-2.24.so
7fca383aa000-7fca383d5000 rw-p 00000000 00:00 0
7fca383d5000-7fca383f3000 r-xp 00000000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f3000-7fca383f4000 ---p 0001e000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f4000-7fca383f5000 r--p 0001e000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f5000-7fca383f6000 rw-p 0001f000 08:02 486315 /usr/lib/libudev.so.1.6.5
7fca383f6000-7fca38402000 rw-p 00000000 00:00 0
7fca3843f000-7fca38440000 rw-p 00000000 00:00 0
7fca38440000-7fca38441000 ---p 00000000 00:00 0
7fca38441000-7fca38473000 rw-p 00000000 00:00 0
7fca38473000-7fca38474000 r--p 00022000 08:02 473676 /usr/lib/ld-2.24.so
7fca38474000-7fca38475000 rw-p 00023000 08:02 473676 /usr/lib/ld-2.24.so
7fca38475000-7fca38476000 rw-p 00000000 00:00 0
7ffec36f6000-7ffec3717000 rw-p 00000000 00:00 0 [stack]
7ffec37ab000-7ffec37ad000 r--p 00000000 00:00 0 [vvar]
7ffec37ad000-7ffec37af000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted (core dumped)

@rcurtin

This comment has been minimized.

Show comment
Hide comment
@rcurtin

rcurtin Sep 1, 2016

Member

Hi there, thanks for the report (nice hostname by the way, I like it). I can't seem to reproduce this with regular BLAS/LAPACK. I suspect this may be a different issue than the original issue here; would you mind opening a new issue so we can debug it there? Also, if you can get me the versions of MKL, Armadillo, and mlpack (probably git master?) you're using, I can try and reproduce and then debug. Based on the way this looks I would not be surprised if it is an Armadillo or MKL bug (but I am not sure yet).

Member

rcurtin commented Sep 1, 2016

Hi there, thanks for the report (nice hostname by the way, I like it). I can't seem to reproduce this with regular BLAS/LAPACK. I suspect this may be a different issue than the original issue here; would you mind opening a new issue so we can debug it there? Also, if you can get me the versions of MKL, Armadillo, and mlpack (probably git master?) you're using, I can try and reproduce and then debug. Based on the way this looks I would not be surprised if it is an Armadillo or MKL bug (but I am not sure yet).

@KungFuJesus

This comment has been minimized.

Show comment
Hide comment
@KungFuJesus

KungFuJesus Sep 1, 2016

Sure thing, filed here: #774

KungFuJesus commented Sep 1, 2016

Sure thing, filed here: #774

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment