Giter Site home page Giter Site logo

hdbscan's People

Contributors

wangyiqiu avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

hdbscan's Issues

Parallel dendrogram algorithm

Hi @wangyiqiu, in your paper you talk about a parallel version of the dendrogram algorithm (the one splitting edges into light and heavy). I can't seem to find this in this code repo, as I only see the standard serial union-find algorithm. Am I missing something?

Cannot find the output file

int main(int argc, char* argv[]) {
//commandLine P(argc,argv,"[-o <outFile>] [-r <rounds>] [-p <0/1 perturb points>] <inFile>");
commandLine P(argc,argv,"[-m <minPts value>] <inFile>");
char* iFile = P.getArgument(0);
size_t minPts = P.getOptionIntValue("-m",1);
char* oFile = P.getOptionValue("-o");

As I understood those lines, there is no default value for the output file path, so I try to run hdbscan like this:

./hdbscan -m 5 -o ~/projects/hdbscan_out.csv ~/projects/hdbscan_inp.csv

It logs some info in the terminal, but I cannot find any output file.

using in windows

how to pack the files if i want to use hdbscan in visual studio 2022 in windows ?

Segmentation fault

Hey, I wrote OCaml bindings for this library and while testing with random variables I got segmentation fault error.

I tried with the Python binding, the same error occurs.

Here is the data that can reproduce the error:

points = np.array([
    [2.8982, -2.7502],
    [2.0700, 4.6681],
    [-3.3455, -0.8006],
    [0.7183, 4.6198],
    [-0.7986, -1.7616],
    [4.1368, 1.7246],
    [3.7679, 4.1976],
    [3.2638, 2.1536],
    [1.8979, 1.6000],
    [2.7282, -3.5276],
    [-2.4856, 2.7415]])

gdb tells me it fails on following line:

pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo
::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}::operator()(unsigned long) const (
parent=<optimized out>, __closure=<optimized out>) at parBuf.h:154
154                              all[vecSizes[p] + buf->m_parentSizes[parent] + elem] = buf->m_parent[parent][elem];

I've began debugging it and trying to understand where the error might come from but I decided to submit an issue if you might have an answer or a hint.

"Segmentation fault" while running the code

When we tried to run the code on the CPU, It is throwing a "Segmentation fault (core dumped)", We ran the code on the below machine details:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Thread(s) per core: 1
Core(s) per socket: 24
Socket(s): 2
NUMA node(s): 2
Vendor ID: GenuineIntel
CPU family: 6
Model: 85
Model name: Intel(R) Xeon(R) Gold 6252 CPU @ 2.10GHz
Stepping: 7
CPU MHz: 2100.000
BogoMIPS: 4200.00
L1d cache: 32K
L1i cache: 32K
L2 cache: 1024K
L3 cache: 36608K
NUMA node0 CPU(s): 0-23
NUMA node1 CPU(s): 24-47

It is the latest error that we are getting, we ran the same code 2 weeks back, and we didn't see any errors and ran the code successfully. Please let us know if any extra details are required.

segmentation_fault_error

Better C++ API

Hi, this library seems to have great performance so I wanted to integrate it into my real time C++ application. However, with all the very custom data types that you use, I have been staring at it for over an hour and I have gotten nowhere. It would be really nice if you could provide an interface with some more standard or simpler data types as inputs and outputs. I think a lot more people would then be able to use this project, which you have spent so much time on.

Edit: I see now that that the types you use are not so complicated to use, but still, a little more of a wrapper or at least some more guiding docs would go a long way

Software not compiling

I have tried to compile the source and I get this error:

make[2]: *** [pybindings/CMakeFiles/pyhdbscan.dir/build.make:63: pybindings/CMakeFiles/pyhdbscan.dir/pyhdbscan.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:191: pybindings/CMakeFiles/pyhdbscan.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Segmentation fault (second)

This is a continuation of #3.

I tried once again on origin repository on two machines (Linux Mint 20.2, X5675 CPU, 40GB RAM and CentOS Stream 9, Dual X5670, 64GB RAM). On the first machine (mint) as previously script works with data generated by make_blobs and fails with the data posted in #3. To my surprise on the second machine the script fails immediately both on data generated by make_blobs and above matrix.

Mint (I tried both clang and gcc on this system):

build-tree-time = 2.90871e-05
core-dist-time = 7.20024e-05
---
 beta = 2
 rho = -0.1 -- 2.10524
---
 beta = 4
 rho = 2.10524 -- 3.64498
 edges = 8
 mst-edges = 5
--Type <RET> for more, q to quit, c to continue without paging--

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007fff48b008f4 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}, unsigned long, bool) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
(gdb) bt
#0  0x00007fff48b008f4 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}, unsigned long, bool) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#1  0x00007fff48b00ab5 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}, unsigned long, bool) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#2  0x00007fff48b00a55 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}, unsigned long, bool) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#3  0x00007fff48b00ab5 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const::{lambda(unsigned long)#1}, unsigned long, bool) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#4  0x00007fff48b00d35 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#5  0x00007fff48b00e0a in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#6  0x00007fff48b00e0a in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#7  0x00007fff48b00e0a in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#8  0x00007fff48b00e0a in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#9  0x00007fff48ba9a0c in parlay::sequence<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>, parlay::allocator<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >, std::is_same<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>, char>::value> pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long) ()
   from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#10 0x00007fff48d63a36 in parlay::sequence<std::tuple<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT::floatT>, parlay::allocator<std::tuple<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT::floatT> >, std::is_same<std::tuple<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT::floatT>, char>::value> pargeo::hdbscanInternal::filterWspdParallel<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >, pargeo::edgeUnionFind<long> >(double, double, double&, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >*, pargeo::edgeUnionFind<long>*, parlay::sequence<double, parlay::allocator<double>, false>&, parlay::sequence<double, parlay::allocator<double>, false>&, parlay::sequence<double, parlay::allocator<double>, false>&, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#11 0x00007fff48d641d5 in parlay::sequence<pargeo::_weightedEdge<false, unsigned long, double>, parlay::allocator<pargeo::_weightedEdge<false, unsigned long, double> >, false> pargeo::hdbscan<2>(parlay::sequence<pargeo::_point<2, double, double, pargeo::_empty>, parlay::allocator<pargeo::_point<2, double, double, pargeo::_empty> >, std::is_same<pargeo::_point<2, double, double, pargeo::_empty>, char>::value>&, unsigned long) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#12 0x00007fff48a21109 in py_hdbscan(pybind11::array_t<double, 17>, unsigned long) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#13 0x00007fff48a25783 in pybind11::cpp_function::initialize<pybind11::array_t<double, 16> (*&)(pybind11::array_t<double, 17>, unsigned long), pybind11::array_t<double, 16>, pybind11::array_t<double, 17>, unsigned long, pybind11::name, pybind11::scope, pybind11::sibling, char [21], pybind11::arg, pybind11::arg>(pybind11::array_t<double, 16> (*&)(pybind11::array_t<double, 17>, unsigned long), pybind11::array_t<double, 16> (*)(pybind11::array_t<double, 17>, unsigned long), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [21], pybind11::arg const&, pybind11::arg const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call&) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#14 0x00007fff48a26146 in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) () from /home/pah/hdbscan-origin/build-gcc/pybindings/pyhdbscan.cpython-38-x86_64-linux-gnu.so
#15 0x00000000005f3989 in PyCFunction_Call ()
#16 0x00000000005f3e1e in _PyObject_MakeTpCall ()
#17 0x0000000000570266 in _PyEval_EvalFrameDefault ()
#18 0x000000000056939a in _PyEval_EvalCodeWithName ()
#19 0x000000000068d047 in PyEval_EvalCode ()
#20 0x000000000067e351 in ?? ()
#21 0x000000000067e3cf in ?? ()
#22 0x000000000067e471 in ?? ()
#23 0x000000000067e817 in PyRun_SimpleFileExFlags ()
#24 0x00000000006b6fe2 in Py_RunMain ()
#25 0x00000000006b736d in Py_BytesMain ()
#26 0x00007ffff7dd6083 in __libc_start_main (main=0x4eead0 <main>, argc=2, argv=0x7fffffffd988, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd978)
    at ../csu/libc-start.c:308
#27 0x00000000005fa5ce in _start ()

CentOS:

build-tree-time = 4.88758e-05
core-dist-time = 9.10759e-05
---
 beta = 2
 rho = -0.1 -- 0.552464
 edges = 1
 mst-edges = 1

Thread 1 "python3" received signal SIGSEGV, Segmentation fault.
0x00007fff6d9ebc7c in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pa
--Type <RET> for more, q to quit, c to continue without paging--
rgeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) con
st::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(parge
o::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) const:
:{lambda(unsigned long)#1}, unsigned long, bool) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
(gdb) bt
#0  0x00007fff6d9ebc7c in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)
 const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(p
argeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) co
nst::{lambda(unsigned long)#1}, unsigned long, bool) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#1  0x00007fff6d9ebe25 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)
 const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(p
argeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) co
nst::{lambda(unsigned long)#1}, unsigned long, bool) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#2  0x00007fff6d9ebdc5 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)
 const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(p
argeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) co
nst::{lambda(unsigned long)#1}, unsigned long, bool) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#3  0x00007fff6d9ebdc5 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)
 const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(p
argeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) co
nst::{lambda(unsigned long)#1}, unsigned long, bool) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#4  0x00007fff6d9ebe25 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)
 const::{lambda(unsigned long)#1}>(unsigned long, unsigned long, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(p
argeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long) co
nst::{lambda(unsigned long)#1}, unsigned long, bool) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#5  0x00007fff6d9ec396 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
--Type <RET> for more, q to quit, c to continue without paging--
#6  0x00007fff6d9ec467 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#7  0x00007fff6d9ec467 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#8  0x00007fff6d9ec467 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#9  0x00007fff6d9ec467 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#10 0x00007fff6d9ec467 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
   from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#11 0x00007fff6d9ec467 in void parlay::fork_join_scheduler::parfor_<pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>
>(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}>(unsigned long, unsigned l
ong, pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, p
argeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long)::{lambda(unsigned long)#1}, unsigned long, bool) ()
--Type <RET> for more, q to quit, c to continue without paging--
#12 0x00007fff6da8d068 in parlay::sequence<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>, parlay::allocator<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >, std::is_same<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double>, char>::value> pargeo::parBufCollect<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >(pargeo::parBuf<std::tuple<pargeo::_point<2, double, double, pargeo::_empty>*, pargeo::_point<2, double, double, pargeo::_empty>*, double> >**, unsigned long) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#13 0x00007fff6dc2d04e in parlay::sequence<std::tuple<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT::floatT>, parlay::allocator<std::tuple<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT::floatT> >, std::is_same<std::tuple<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT::floatT>, char>::value> pargeo::hdbscanInternal::filterWspdParallel<pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >, pargeo::edgeUnionFind<long> >(double, double, double&, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >*, pargeo::edgeUnionFind<long>*, parlay::sequence<double, parlay::allocator<double>, false>&, parlay::sequence<double, parlay::allocator<double>, false>&, parlay::sequence<double, parlay::allocator<double>, false>&, pargeo::kdNode<2, pargeo::_point<2, double, double, pargeo::_empty> >::objT*) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#14 0x00007fff6dc2d7b6 in parlay::sequence<pargeo::_weightedEdge<false, unsigned long, double>, parlay::allocator<pargeo::_weightedEdge<false, unsigned long, double> >, false> pargeo::hdbscan<2>(parlay::sequence<pargeo::_point<2, double, double, pargeo::_empty>, parlay::allocator<pargeo::_point<2, double, double, pargeo::_empty> >, std::is_same<pargeo::_point<2, double, double, pargeo::_empty>, char>::value>&, unsigned long) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#15 0x00007fff6d911f89 in py_hdbscan(pybind11::array_t<double, 17>, unsigned long) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#16 0x00007fff6d91645d in pybind11::cpp_function::initialize<pybind11::array_t<double, 16> (*&)(pybind11::array_t<double, 17>, unsigned long), pybind11::array_t<double, 16>, pybind11::array_t<double, 17>, unsigned long, pybind11::name, pybind11::scope, pybind11::sibling, char [21], pybind11::arg, pybind11::arg>(pybind11::array_t<double, 16> (*&)(pybind11::array_t<double, 17>, unsigned long), pybind11::array_t<double, 16> (*)(pybind11::array_t<double, 17>, unsigned long), pybind11::name const&, pybind11::scope const&, pybind11::sibling const&, char const (&) [21], pybind11::arg const&, pybind11::arg const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call&) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#17 0x00007fff6d916da6 in pybind11::cpp_function::dispatcher(_object*, _object*, _object*) () from /root/hdbscan/build/pybindings/pyhdbscan.cpython-39-x86_64-linux-gnu.so
#18 0x00007ffff7d7b572 in cfunction_call (func=0x7fff6ddc1220, args=<optimized out>, kwargs=<optimized out>) at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Objects/methodobject.c:543
#19 0x00007ffff7d6d6b4 in _PyObject_MakeTpCall (tstate=0x55555555cf90, callable=0x7fff6ddc1220, args=0x5555555b8180, nargs=2, keywords=0x0) at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Objects/call.c:191
#20 0x00007ffff7d6a12e in _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x5555555b8180, callable=<optimized out>, tstate=0x55555555cf90)
    at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Include/cpython/abstract.h:116
#21 _PyObject_VectorcallTstate (kwnames=0x0, nargsf=<optimized out>, args=0x5555555b8180, callable=<optimized out>, tstate=0x55555555cf90)
    at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Include/cpython/abstract.h:103
#22 PyObject_Vectorcall (kwnames=0x0, nargsf=<optimized out>, args=0x5555555b8180, callable=<optimized out>) at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Include/cpython/abstract.h:127
#23 call_function (kwnames=0x0, oparg=<optimized out>, pp_stack=<synthetic pointer>, tstate=0x55555555cf90) at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Python/ceval.c:5077
#24 _PyEval_EvalFrameDefault (tstate=<optimized out>, f=<optimized out>, throwflag=<optimized out>) at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Python/ceval.c:3520
#25 0x00007ffff7d6401d in _PyEval_EvalFrame (throwflag=0, f=0x5555555b8010, tstate=0x55555555cf90) at /usr/src/debug/python3.9-3.9.10-2.el9.x86_64/Include/internal/pycore_ceval.h:40
--Type <RET> for more, q to quit, c to continue without paging--run example.pyQuit

Compilers on Mint:

√ pybindings % gcc --version
gcc (Ubuntu 11.1.0-1ubuntu1~20.04) 11.1.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

√ pybindings % clang --version
Ubuntu clang version 13.0.1-++20220120110924+75e33f71c2da-1~exp1~20220120231001.58
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/local/bin

√ pybindings % python3 --version
Python 3.8.10

Compiler on CentOS:

[root@localhost pybindings]# gcc --version
gcc (GCC) 11.2.1 20220401 (Red Hat 11.2.1-10)
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[root@localhost pybindings]# python3 --version
Python 3.9.10

If there is anything you want me to try or any tool I can run to collect information about the hardware/OS let me know.

error

Under Windows system, MinGW-64 version, gcc version
image

After Using cmake .. -G "MinGW Makefiles" command, the make command will generate the following error
image

I found a similar problem in github
pybind/pybind11#4047

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.