cb-geo / lem-container

Docker image for Lattice Element Method
0 stars 0 forks source link

Singularity image with GPU support #3

Closed kks32 closed 6 years ago

kks32 commented 7 years ago

Imported a Docker image (with CUDA libraries intalled) into a Singularity image, then I compiled lem using this image. Here is the output:

 -- The CXX compiler identification is GNU 6.3.1
 <snip>
 -- Found Threads: TRUE
 -- Found CUDA: /usr/local/cuda (found version "8.0")
 -- Boost version: 1.60.0
 -- Found the following Boost libraries:
 --   system
 --   filesystem
 -- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
 <snip>
 100% tests passed, 0 tests failed out of 1
 
 Total Test time (real) =   0.56 sec

As you can see the build process detected the CUDA libraries and successfully generate the binary. Printing the dependencies I get the following list:

linux-vdso.so.1 (0x00007fffadc70000)
libvoro++.so.0 => /lib64/libvoro++.so.0 (0x00007fdf31b95000)
  <snip>
libdl.so.2 => /lib64/libdl.so.2 (0x00007fdf2d3d3000)
librt.so.1 => /lib64/librt.so.1 (0x00007fdf2d1cb000)
libcublas.so.8.0 => /usr/local/cuda/lib64/libcublas.so.8.0 (0x00007fdf2a186000)
libcusparse.so.8.0 => /usr/local/cuda/lib64/libcusparse.so.8.0 (0x00007fdf2766b000)
libboost_filesystem.so.1.60.0 => /lib64/libboost_filesystem.so.1.60.0 (0x00007fdf27455000)
  <snip>
libblkid.so.1 => /lib64/libblkid.so.1 (0x00007fdef735c000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fdef7126000)
libfreebl3.so => /lib64/libfreebl3.so (0x00007fdef6f23000)

But I get Segmentation fault using the CG_GPU solver:

 [2017-09-08 15:00:34.961] [IO] [info] Starting: LEM analysis
 [2017-09-08 15:00:35.139] [Mesh] [trace] Read mesh nodes: 177 ms
 [2017-09-08 15:00:44.333] [Mesh] [info] Node set created with: -x
 [2017-09-08 15:00:44.333] [Mesh] [info] Node set created with: +x
 [2017-09-08 15:00:44.333] [Mesh] [info] Node set created with: -y
 [2017-09-08 15:00:44.334] [Mesh] [info] Node set created with: +y
 [2017-09-08 15:00:44.334] [Mesh] [info] Node set created with: -z
 [2017-09-08 15:00:44.334] [Mesh] [info] Node set created with: +z
 [2017-09-08 15:00:44.334] [Mesh] [trace] Assigned neighbours: 9195 ms
 [2017-09-08 15:00:49.852] [Mesh] [trace] Created lattices: 5517 ms
 [2017-09-08 15:00:49.853] [Mesh] [warning] Create fluid mesh instance: type must be boolean, but is null
 [2017-09-08 15:00:54.326] [LEM] [warning] No node pairs to break: type must be string, but is null
 [2017-09-08 15:00:54.326] [LEM] [warning] No nodes to break: type must be string, but is null
 [2017-09-08 15:00:54.326] [LEM] [warning] No elements to break: type must be string, but is null
 /home/msv/csgrid/lem-build/lem.sh: line 8: 28245 Segmentation fault      (core dumped) /home/msv/csgrid/lem-build/build/lem $@

Using the following command to execute lem:

 $ singularity exec --nv lem-cuda.img lem.sh -s CG_GPU -d /workdir/ -i lem_log.json
kks32 commented 7 years ago

@js947 When I try to run on Wilkes using singularity run --nv --bind $(pwd):/lem lem.img /lem/run.sh , I get the following error:

/lem/build/lem: error while loading shared libraries: libvtkDomainsChemistryOpenGL2-7.1.so.1: cannot open shared object file: No such file or directory
# /lem/run.sh
#!/bin/bash
cd /lem/build
cmake -DCMAKE_BUILD_TYPE=Release ..
make clean && make -j8
/lem/build/lem -d 3 -f /lem/benchmarks/uniaxial_tension_test_50/ -s CG_GPU -i lem.json

But the image works locally.

js947 commented 7 years ago

Can't reproduce the libvtkDomainsChemistryOpenGL2 issue... but running gives me a segv:

[2017-09-18 11:28:40.447] [IO] [info] Starting: LEM analysis
[2017-09-18 11:28:40.758] [Mesh] [trace] Read mesh nodes: 310 ms
[2017-09-18 11:28:49.636] [Mesh] [info] Node set created with: -x
[2017-09-18 11:28:49.636] [Mesh] [info] Node set created with: +x
[2017-09-18 11:28:49.637] [Mesh] [info] Node set created with: -y
[2017-09-18 11:28:49.637] [Mesh] [info] Node set created with: +y
[2017-09-18 11:28:49.637] [Mesh] [info] Node set created with: -z
[2017-09-18 11:28:49.638] [Mesh] [info] Node set created with: +z
[2017-09-18 11:28:49.638] [Mesh] [trace] Assigned neighbours: 8879 ms
[2017-09-18 11:28:56.970] [Mesh] [trace] Created elements: 7332 ms
[2017-09-18 11:28:56.971] [Mesh] [warning] Create fluid mesh instance: type must be boolean, but is null
[2017-09-18 11:28:57.360] [Mesh] [info] Mean element cross-section area: 0.479559 and sd: 0.3512
[2017-09-18 11:28:59.561] [LEM] [warning] No node pairs to break: type must be string, but is null
[2017-09-18 11:28:59.561] [LEM] [warning] No nodes to break: type must be string, but is null
[2017-09-18 11:28:59.561] [LEM] [warning] No elements to break: type must be string, but is null
./lem-test.sh: line 14:  6722 Segmentation fault      (core dumped) ~/lem/build/lem -d 3 -f ~/lem-benchmarks/uniaxial_tension_test_50/ -s CG_GPU -i lem_disp.json
kks32 commented 7 years ago

Running lem without the container image gives segv slightly later: https://pastebin.com/4WW29UfW

kks32 commented 7 years ago

The errors were due to mpirun, and when that was disabled, the Singularity image is working!

kks32 commented 7 years ago

I still get the segmentation fault with the new image: https://pastebin.com/7bcq6sK2

I've tested 2 approach: (1) importing the docker image and (2) bootstraping the singularity image. Here is a brief list of the problems I’ve got:

1) During compilation I get the following warnings (I think it’s safe to ignore then):

 <snip>
 -- Found CUDA: /usr/local/cuda (found version "8.0")
 CMake Warning at cmake/FindBoost.cmake:744 (message):
   Imported targets not available for Boost version 106300
 Call Stack (most recent call first):
   cmake/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
   cmake/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
   CMakeLists.txt:78 (find_package)

 CMake Warning at cmake/FindBoost.cmake:744 (message):
   Imported targets not available for Boost version 106300
 Call Stack (most recent call first):
   cmake/FindBoost.cmake:848 (_Boost_COMPONENT_DEPENDENCIES)
   cmake/FindBoost.cmake:1435 (_Boost_MISSING_DEPENDENCIES)
   CMakeLists.txt:78 (find_package)

 -- Boost version: 1.63.0

 <snip>

2) and when executing LEM with the CUDA solver I get gegmentation fault — I’m sending the debug log attached.

I thought the problem could be in my environment, so I ran the GPU example from the Singularity Docs (http://singularity.lbl.gov/docs-exec#a-gpu-example) and everything went fine.

 2017-09-19 11:46:40.391368: I tensorflow/core/common_runtime/gpu/gpu_device.cc:955] Found device 3 with properties:
 name: GeForce GTX TITAN X
 major: 5 minor: 2 memoryClockRate (GHz) 1.076
 pciBusID 0000:0a:00.0
 Total memory: 11.92GiB
 Free memory: 11.80GiB
 2017-09-19 11:46:40.393064: I tensorflow/core/common_runtime/gpu/gpu_device.cc:976] DMA: 0 1 2 3
 2017-09-19 11:46:40.393092: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 0:   Y Y Y Y
 2017-09-19 11:46:40.393104: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 1:   Y Y Y Y
 2017-09-19 11:46:40.393116: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 2:   Y Y Y Y
 2017-09-19 11:46:40.393126: I tensorflow/core/common_runtime/gpu/gpu_device.cc:986] 3:   Y Y Y Y
 2017-09-19 11:46:40.393147: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX TITAN X, pci bus id: 0000:05:00.0)
 2017-09-19 11:46:40.393160: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:1) -> (device: 1, name: GeForce GTX TITAN X, pci bus id: 0000:06:00.0)
 2017-09-19 11:46:40.393172: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:2) -> (device: 2, name: GeForce GTX TITAN X, pci bus id: 0000:09:00.0)
 2017-09-19 11:46:40.393183: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1045] Creating TensorFlow device (/gpu:3) -> (device: 3, name: GeForce GTX TITAN X, pci bus id: 0000:0a:00.0)
 Initialized!
felipepina commented 7 years ago

@kks32 I’ve updated LEM, but I’m still getting Segmentation fault. I’ve tried with 2 test cases from LEM Benchmark: fracture_200 and compression.

 $ singularity exec --nv -B /data/csgrid/lem/data/lem-benchmarks/:/mnt lem-cuda-3.img lem/lem.sh -s CG_GPU -d 3 -f /mnt/fracture_200/ -i lem.json
 [2017-09-20 07:39:09.295] [IO] [info] Starting: Penny shaped fracture
 [2017-09-20 07:39:09.736] [Mesh] [trace] Read mesh nodes: 439 ms
 [2017-09-20 07:39:32.110] [Mesh] [info] Node set created with: -x
 [2017-09-20 07:39:32.110] [Mesh] [info] Node set created with: +x
 [2017-09-20 07:39:32.111] [Mesh] [info] Node set created with: -y
 [2017-09-20 07:39:32.111] [Mesh] [info] Node set created with: +y
 [2017-09-20 07:39:32.112] [Mesh] [info] Node set created with: -z
 [2017-09-20 07:39:32.112] [Mesh] [info] Node set created with: +z
 [2017-09-20 07:39:32.113] [Mesh] [trace] Assigned neighbours: 22376 ms
 [2017-09-20 07:39:43.888] [Mesh] [trace] Created elements: 11775 ms
 [2017-09-20 07:39:43.895] [Mesh] [debug] Pressure area: 10000
 [2017-09-20 07:39:44.769] [Mesh] [info] Mean element cross-section area: 1.08368 and sd: 1.41923
 [2017-09-20 07:39:55.634] [Mesh] [info] Accumulated strain energy for breaking 780  pre-exisiting fracture elements is: 0
 [2017-09-20 07:39:55.639] [LEM] [warning] No nodes to break: type must be string, but is null
 [2017-09-20 07:39:55.639] [LEM] [warning] No elements to break: type must be string, but is null
 [2017-09-20 07:39:55.677] [LEM] [info] Uniaxial stress controlled test
 [2017-09-20 07:39:55.678] [LEM] [warning] Uniaxial loading # steps before stiffness reassembly: key 'nreassemble_stiffness' not found using default 50
 [2017-09-20 07:39:56.386] [LEM] [info] Step: 0
 [2017-09-20 07:40:08.047] [LEM] [trace] Assemble matrices: 11661 ms
 [2017-09-20 07:40:08.047] [LEM] [error] Ignoring write elements as: key 'write_elements' not found
 [2017-09-20 07:40:08.047] [LEM] [trace] Write element database: 0 ms
 /home/msv/csgrid/lem/lem.sh: line 8: 31024 Segmentation fault      (core dumped) /home/msv/csgrid/lem/build/lem $@
 $ singularity exec --nv -B /data/csgrid/lem/data/lem-benchmarks/:/mnt lem-cuda-3.img lem/lem.sh -s CG_GPU -d 3 -f /mnt/compression/ -i lem.json
 [2017-09-20 07:40:56.657] [IO] [info] Starting: Uniaxial displacement controlled compression test 40x3x80 normal distribution
 [2017-09-20 07:40:56.760] [Mesh] [trace] Read mesh nodes: 102 ms
 [2017-09-20 07:41:04.057] [Mesh] [info] Node set created with: -x
 [2017-09-20 07:41:04.057] [Mesh] [info] Node set created with: +x
 [2017-09-20 07:41:04.058] [Mesh] [info] Node set created with: -y
 [2017-09-20 07:41:04.059] [Mesh] [info] Node set created with: +y
 [2017-09-20 07:41:04.059] [Mesh] [info] Node set created with: -z
 [2017-09-20 07:41:04.060] [Mesh] [info] Node set created with: +z
 [2017-09-20 07:41:04.060] [Mesh] [trace] Assigned neighbours: 7299 ms
 [2017-09-20 07:41:06.416] [Mesh] [trace] Created elements: 2356 ms
 [2017-09-20 07:41:06.416] [Mesh] [warning] Create fluid mesh instance: type must be boolean, but is null
 [2017-09-20 07:41:06.563] [Mesh] [info] Mean element cross-section area: 0.133056 and sd: 0.160405
 [2017-09-20 07:41:08.419] [LEM] [warning] No node pairs to break: type must be string, but is null
 [2017-09-20 07:41:08.419] [LEM] [warning] No nodes to break: type must be string, but is null
 [2017-09-20 07:41:08.419] [LEM] [warning] No elements to break: type must be string, but is null
 /home/msv/csgrid/lem/lem.sh: line 8: 31099 Segmentation fault      (core dumped) /home/msv/csgrid/lem/build/lem $@
kks32 commented 7 years ago

Seems to fail at different places! Are you running out of memory?

felipepina commented 7 years ago

Doesn't look like: just before it fails the fracture_200 test case uses around 15% of the 128GB available and the compression test case 2%.

kks32 commented 7 years ago

@felipepina Could you please try to add gdb to the Singularity image and do a strack trace? You can make the image you created --writable to add gdb.

felipepina commented 7 years ago

@kks32 here are the stack trace of the 2 test cases:

fracture_200

 #0  0x0000000000456395 in void Eigen::internal::call_assignment<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> >(Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&) ()
 #1  0x00000000004569ff in lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >::solve() ()
 #2  0x00000000004b94ec in lem::LEM<3u>::uniaxial_loading(bool) ()
 #3  0x00000000004bab43 in lem::LEM<3u>::solve() ()
 #4  0x00000000004450b1 in main ()

compression

 #0  0x00007ffff01e5c75 in cublasSetPointerMode_v2 () from /usr/local/cuda/lib64/libcublas.so.8.0
 #1  0x0000000000455d12 in Factory<lem::Solver<Eigen::SparseMatrix<double, 0, int>, MatrixTraits<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double>::Creator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >::create(unsigned int&&, double&&) ()
 #2  0x00000000004aa2c4 in lem::LEM<3u>::init_solver() ()
 #3  0x00000000004450a7 in main ()
felipepina commented 7 years ago

@kks32 here are more complete stack traces:

fracture_200

#0  0x0000000000683d58 in _mm_store_pd (__A=..., __P=0x7ffffffff000) at /usr/lib/gcc/x86_64-redhat-linux/7/include/emmintrin.h:165
#1  Eigen::internal::pstore<double, double __vector(2)>(double*, double __vector(2) const&) (to=0x7ffffffff000, from=...) at /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h:359
#2  0x00000000006ae607 in Eigen::internal::pstoret<double, double __vector(2), 16>(double*, double __vector(2) const&) (from=..., to=0x7ffffffff000) at /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h:474
#3  Eigen::internal::assign_op<double, double>::assignPacket<16, double __vector(2)>(double*, double __vector(2) const&) const (this=0x7fffffffa7cf, a=0x7ffffffff000, b=...)
    at /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h:28
#4  0x00000000006adb47 in Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::Matrix<double, -1, 1, 0, -1, 1> >, Eigen::internal::assign_op<double, double>, 0>::assignPacket<16, 0, double __vector(2)>(long) (this=0x7fffffffa6a0, index=2274) at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:658
#5  0x00000000006acce6 in Eigen::internal::dense_assignment_loop<Eigen::internal::generic_dense_assignment_kernel<Eigen::internal::evaluator<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >, Eigen::internal::evaluator<Eigen::Matrix<double, -1, 1, 0, -1, 1> >, Eigen::internal::assign_op<double, double>, 0>, 3, 0>::run (kernel=...) at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:416
#6  0x00000000006ac1c9 in Eigen::internal::call_dense_assignment_loop<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::internal::assign_op<double, double> > (
    dst=..., src=..., func=...) at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:741
#7  0x00000000006ab45d in Eigen::internal::Assignment<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::internal::assign_op<double, double>, Eigen::internal::Dense2Dense, void>::run (dst=..., src=..., func=...) at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:879
#8  0x00000000006aabcc in Eigen::internal::call_assignment_no_alias<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::internal::assign_op<double, double> > (
    dst=..., src=..., func=...) at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:836
#9  0x00000000006aa3b2 in Eigen::internal::call_assignment<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::internal::assign_op<double, double> >(Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >&, Eigen::Matrix<double, -1, 1, 0, -1, 1> const&, Eigen::internal::assign_op<double, double> const&, Eigen::internal::enable_if<!Eigen::internal::evaluator_assume_aliasing<Eigen::Matrix<double, -1, 1, 0, -1, 1>, Eigen::internal::evaluator_traits<Eigen::Matrix<double, -1, 1, 0, -1, 1> >::Shape>::value, void*>::type) (dst=..., src=..., func=...) at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:804
#10 0x00000000006a956b in Eigen::internal::call_assignment<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> >, Eigen::Matrix<double, -1, 1, 0, -1, 1> > (dst=..., src=...)
    at /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h:782
#11 0x00000000006a8a7b in Eigen::MatrixBase<Eigen::Map<Eigen::Matrix<double, -1, 1, 0, -1, 1>, 0, Eigen::Stride<0, 0> > >::operator=<Eigen::Matrix<double, -1, 1, 0, -1, 1> > (this=0x7fffffffa930, other=...)
    at /usr/include/eigen3/Eigen/src/Core/Assign.h:66
#12 0x00000000006b387e in lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >::solve (this=0x1fa171ff0) at /home/msv/csgrid/lem/include/cg_gpu.tcc:30
#13 0x0000000000000000 in ?? ()

compression

#0  0x00007ffff01b2c75 in cublasSetPointerMode_v2 () from /usr/local/cuda/lib64/libcublas.so.8.0
#1  0x00000000006b2333 in lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >::CGGPU (this=0x6babc4f0, max_iter=10000, tolerance=0.00050000000000000001) at /home/msv/csgrid/lem/include/cg_gpu.h:78
#2  0x00000000006b2128 in __gnu_cxx::new_allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >::construct<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, unsigned int, double> (this=0x7fffffffb377, __p=0x6babc4f0,
    __args#0=@0x7fffffffb63c: 10000, __args#1=@0x7fffffffb630: 0.00050000000000000001) at /usr/include/c++/7/ext/new_allocator.h:136
#3  0x00000000006b1ff8 in std::allocator_traits<std::allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > > >::construct<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, unsigned int, double> (__a=..., __p=0x6babc4f0,
    __args#0=@0x7fffffffb63c: 10000, __args#1=@0x7fffffffb630: 0.00050000000000000001) at /usr/include/c++/7/bits/alloc_traits.h:475
#4  0x00000000006b1e4e in std::_Sp_counted_ptr_inplace<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, std::allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >, (__gnu_cxx::_Lock_policy)2>::_Sp_counted_ptr_inplace<unsigned int, double> (this=0x6babc4e0, __a=...) at /usr/include/c++/7/bits/shared_ptr_base.h:526
#5  0x00000000006b1bbc in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, std::allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double> (
    this=0x7fffffffb568, __a=...) at /usr/include/c++/7/bits/shared_ptr_base.h:637
#6  0x00000000006b1aa2 in std::__shared_ptr<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double> (
    this=0x7fffffffb560, __tag=..., __a=...) at /usr/include/c++/7/bits/shared_ptr_base.h:1295
#7  0x00000000006b1a23 in std::shared_ptr<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >::shared_ptr<std::allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double> (this=0x7fffffffb560, __tag=..., __a=...)
    at /usr/include/c++/7/bits/shared_ptr.h:344
#8  0x00000000006b193d in std::allocate_shared<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, std::allocator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double> (__a=..., __args#0=@0x7fffffffb63c: 10000,
    __args#1=@0x7fffffffb630: 0.00050000000000000001) at /usr/include/c++/7/bits/shared_ptr.h:691
#9  0x00000000006b184a in std::make_shared<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> >, unsigned int, double> (__args#0=@0x7fffffffb63c: 10000, __args#1=@0x7fffffffb630: 0.00050000000000000001)
    at /usr/include/c++/7/bits/shared_ptr.h:707
#10 0x00000000006b17c9 in Factory<lem::Solver<Eigen::SparseMatrix<double, 0, int>, MatrixTraits<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double>::Creator<lem::CGGPU<Eigen::SparseMatrix<double, 0, int> > >::create (
    this=0xcc9520, args#0=@0x7fffffffb63c: 10000, args#1=@0x7fffffffb630: 0.00050000000000000001) at /home/msv/csgrid/lem/include/factory.h:48
#11 0x000000000074239d in Factory<lem::Solver<Eigen::SparseMatrix<double, 0, int>, MatrixTraits<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double>::create (
    this=0xaf2220 <Factory<lem::Solver<Eigen::SparseMatrix<double, 0, int>, MatrixTraits<Eigen::SparseMatrix<double, 0, int> > >, unsigned int, double>::instance()::factory>, key="CG_GPU", args#0=@0x7fffffffb63c: 10000,
    args#1=@0x7fffffffb630: 0.00050000000000000001) at /home/msv/csgrid/lem/include/factory.h:27
#12 0x000000000073d190 in lem::LEM<3u>::init_solver (this=0xccf0e0) at /home/msv/csgrid/lem/include/lem.tcc:106
#13 0x00000000007361b9 in main (argc=9, argv=0x7fffffffb838) at /home/msv/csgrid/lem/src/main.cc:34
kks32 commented 6 years ago

Closing as we are not able to reproduce the issue.