By design the main algorithm is sequential. But there are other places we can look to improve by work sharing. Mostly in the utils module, where we iterate over all triangle faces.
I took a quick look at throwing rayon par_iters where our iters exist, but that blew up the time on my machine. I have 28 work threads, so I don't know if that's just rayon not allocating correctly and I had too much setup overhead, or that the iterators are just poorly implemented for parallelism. In any case, further investigation than a 5 minute plug and play is required.
By design the main algorithm is sequential. But there are other places we can look to improve by work sharing. Mostly in the
utils
module, where we iterate over all triangle faces.I took a quick look at throwing rayon
par_iter
s where ouriter
s exist, but that blew up the time on my machine. I have 28 work threads, so I don't know if that's just rayon not allocating correctly and I had too much setup overhead, or that the iterators are just poorly implemented for parallelism. In any case, further investigation than a 5 minute plug and play is required.