Ticket #1176 (closed task: fixed)

Opened 7 years ago

Last modified 5 years ago

OPS speed baseline

Reported by: bdezonia Owned by: bdezonia
Priority: major Milestone: imagej2-b11-docs
Component: ImgLib2 OPS Version:
Severity: serious Keywords:
Cc: Blocked By:
Blocking: #1343

Description (last modified by bdezonia) (diff)

Here are some statistics of a speed test I ran with OPS shortly before beta 1. Check later as code changes how these results hold up.

Take a 1024 x 1024 image 8 bit image. Run Process > Math > Set and choose a value like 58. Time the assigner.assign() call.

On Barry's mac:

Slices, seconds

1, 0.112
5, 0.222
20, 0.808
35, 1.506
50, 2.013
65, 2.520

Change History

comment:1 Changed 7 years ago by bdezonia

  • Description modified (diff)

Note that hacking the number of threads allocated to 1 in ImageAssignment you can see that the multithreaded algorithm is 33% faster when it is using 2 threads instead of one.

comment:2 Changed 7 years ago by bdezonia

  • Description modified (diff)

comment:3 Changed 7 years ago by bdezonia

  • Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0

comment:4 Changed 7 years ago by bdezonia

  • Milestone changed from imagej-2.0.0 to imagej-2.0.0-beta4

comment:5 Changed 7 years ago by bdezonia

  • Blocking 1343 added

comment:6 Changed 6 years ago by bdezonia

  • Milestone changed from imagej-2.0.0-beta4 to imagej-2.0.0-beta5

comment:7 Changed 6 years ago by bdezonia

Retested very shortly before beta 5. Results are virtually unchanged. This is good news as some changes were made to OPS that I expected would slow things down.

comment:8 Changed 6 years ago by bdezonia

  • Milestone changed from imagej2-b7-ndim-data to imagej2-unscheduled

comment:9 Changed 6 years ago by curtis

  • Milestone changed from imagej2-unscheduled to imagej2-b11-docs

comment:10 Changed 5 years ago by curtis

  • Status changed from new to closed
  • Resolution set to fixed

The new ImageJ OPS project, intended to fully replace ImgLib2 OPS and SciJava OPS, has already  done a lot of benchmarking. The flexible approach of ImageJ OPS allows ops to be multithreaded in very configurable and extensible ways. So I'd say we are really good to go from a performance perspective.

Note: See TracTickets for help on using tickets.