Skip to content

Conversation

@nigels-com
Copy link
Contributor

@nigels-com nigels-com commented Jun 18, 2025

As a follow-up to our previous discussion for PR #236

The idea here to allow additional concurrent threads.

It's necessary to block and wait for the completion of the right child node.
But it seems reasonable and advantageous to allow an additional thread to start working while this one is done doing work.
It's just waiting until it can finalise some administration.

I've changed jobs and don't have the tools and data to test this change in detail.
So I would like to be clear that this change is essentially untried and untested.
I did take a look at MRPT/nanoflann-benchmark but I don't have Matlab or the datasets, looks like I'd need some help or advice getting going there.

But I am curious to know if this provides an additional performance improvement via additional CPU utilisation.
I am a little concerned this could result in a large number of (blocked) threads, beyond what's reasonable?

I'll leave this with you, to evaluate or not, at your discretion.

@jlblancoc
Copy link
Owner

Again, thanks!

In a quick test using KITTI dataset clouds, I found no significant differences in kd-tree build time:

image

But I don't discard that using >10M pointclouds the effect is noticeable. I will test it.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants