UCL / STIR

Software for Tomographic Image Reconstruction
http://stir.sourceforge.net/
Other
104 stars 89 forks source link

More openMP: find_min/max() and sum() #1449

Closed KrisThielemans closed 3 weeks ago

KrisThielemans commented 4 weeks ago

Originally in #1430, but as that needs more work, creating a separate PR. Sadly, in most cases (except LAFOV), the functions that I parallelised were pretty fast already.

There's more work to do += etc, as it might be a bad idea to parallelise this for VectorWithOffset, as then the nD-Array functions could create a lot of threads. I guess it needs specialisation for Array<1,elemT>.

Will likely be rebased on top of #1442 once that is merged, although I could merge as well as it's independent.

@markus-jehl I haven't parallelised is_contiguous, as that's also a bit more work, see e.g. https://stackoverflow.com/questions/9793791/parallel-openmp-loop-with-break-statement. Alternatively, we introduce an extra member (if it turns out to be worth it, as that'd occur a lot in current nD Arrays).

KrisThielemans commented 4 weeks ago

Same linking problem for clang as in https://github.com/UCL/STIR/pull/1430#issuecomment-2143564633

markus-jehl commented 3 weeks ago

all good!