imagej / imagej/imagej-ops

Connectivity Op should be multithreaded

Open
#600 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.