Connectivity Op should be multithreaded
- Dominant language
- Java
- Stars
- 94
- Forks
- 44
- PR merge metrics
- No merged PRs in 30d
Description
https://github.com/imagej/imagej-ops/blob/010510b4ccd9a8892ba65c17f3c80459dbc163ca/src/main/java/net/imagej/ops/topology/eulerCharacteristic/EulerCharacteristic26NFloating.java#L223
This loop runs in a single thread, but could easily be multithreaded via a multithreading class or parallel Streams. BoneJ1 used a multithreading class where each thread iterated over z slices, getting the next z slice index from an AtomicInteger and summing the threads' sums at the end.
https://github.com/bonej-org/bonej/blob/master/src/org/doube/bonej/Connectivity.java
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with the loop at src/main/java/net/imagej/ops/topology/eulerCharacteristic/EulerCharacteristic26NFloating.java#L223 and compare the approach with BoneJ's Connectivity.java. Determine how z-slice work can be shared across threads and how the per-thread sums should be combined. Done means the operation is multithreaded while preserving the existing connectivity result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- computer-vision, performance
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100