-
Notifications
You must be signed in to change notification settings - Fork 55
Open
Description
The following code raises different segfaults depending on the process count (on a single node), when run on nell-2 tensor.
void innerprod(int nIter, int warmup, std::string filename, std::string tensorC, std::vector<int> dims, World& dw) {
Tensor<double> B(3, true /* is_sparse */, dims.data(), dw);
Tensor<double> C(3, true /* is_sparse */, dims.data(), dw);
Scalar<double> a(dw);
B.read_sparse_from_file(filename.c_str());
C.read_sparse_from_file(filename.c_str());
a[""] = B["ijk"] * C["ijk"];
}
When run with a single process, it segfaults with the following backtrace:
/g/g15/yadav2/ctf/src/redistribution/sparse_rw.cxx:948 (discriminator 7)
/g/g15/yadav2/ctf/src/tensor/untyped_tensor.cxx:1302
/g/g15/yadav2/ctf/examples/../include/../src/interface/tensor.cxx:609
/g/g15/yadav2/ctf/examples/../include/../src/interface/tensor.cxx:940
/g/g15/yadav2/ctf/examples/../include/../src/interface/tensor.cxx:952
/g/g15/yadav2/ctf/examples/spbench.cxx:199
/g/g15/yadav2/ctf/examples/spbench.cxx:317 (discriminator 7)
When run with 40 processes (1 process per core on my system): it segfaults with the following backtrace:
/g/g15/yadav2/ctf/src/contraction/contraction.cxx:119 (discriminator 3)
/g/g15/yadav2/ctf/src/interface/term.cxx:983
/g/g15/yadav2/ctf/src/interface/idx_tensor.cxx:227
/g/g15/yadav2/ctf/examples/../include/../src/interface/idx_tensor.h:262
/g/g15/yadav2/ctf/examples/spbench.cxx:209 (discriminator 6)
/usr/tce/packages/gcc/gcc-8.3.1/rh/usr/include/c++/8/bits/std_function.h:299
/usr/tce/packages/gcc/gcc-8.3.1/rh/usr/include/c++/8/bits/std_function.h:687
/g/g15/yadav2/ctf/examples/spbench.cxx:9 (discriminator 2)
/g/g15/yadav2/ctf/examples/spbench.cxx:208 (discriminator 1)
/g/g15/yadav2/ctf/examples/spbench.cxx:317 (discriminator 7)
??:0
??:0
Both the of "segfaults" are internal assertion failures, as it seems.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels