Ticket #5552 (closed: worksforme)

Opened 8 years ago

Last modified 5 years ago

Run Conv To MD fully multithread

Reported by: Alex Buts Owned by: Alex Buts
Priority: major Milestone: Release 2.3
Component: VATES Keywords:
Cc: Blocked By:
Blocking: Tester: Nick Draper

Description

Current implementation runs multhread the box splitting operations only.

Running conversion multi-threaded too would involve either writing thread pool returning values, or some other way of returning specific number of points, processed by a thread (e.g. mutexes)

Change History

comment:1 Changed 8 years ago by Alex Buts

refs #5240 MDBoxToChange.h class is more or less functional

also relates to refs #5552

Changeset: 6291ea48ce4532232bcff7484f966b5da74e929d

comment:2 Changed 8 years ago by Alex Buts

refs #5552 Couple of classes/changes to support list of changed cell

not yet working/completed

Changeset: b43baf46e851613dceee88594eaac9f6ed9c90d9

comment:3 Changed 8 years ago by Alex Buts

refs #5552 fixing merging error

Changeset: 69d5b4bd22241e3a1ea2c838c0bc06b78fbd67e5

comment:4 Changed 8 years ago by Alex Buts

refs #5552 trying to fix unix error

Changeset: fbe85cad64e8528c4cac85118253907b5a3e2673

comment:5 Changed 8 years ago by Alex Buts

refs #5552 trying to deal with Unix error

Changeset: cb81e40105055246a60db09ee8d7a891f9435c46

comment:6 Changed 8 years ago by Alex Buts

refs #5552 fixing unix error

Changeset: 859e01e3f487f0fb22d8ac546a4ea211e9815d55

comment:7 Changed 8 years ago by Alex Buts

refs #5552 trying to fix Unix warning

Changeset: 7a50e2ebdf7e4e2a93e31bf709b2ccdeee8a7b16

comment:8 Changed 8 years ago by Alex Buts

refs #5552 check if revert decreases number of errors

Changeset: b1994d0f531c46ed8c2f7d8ea3d3332a5b0add17

comment:9 Changed 8 years ago by Alex Buts

refs #5552 Peak tests have been hopefully fixed

Changeset: 75543ee9863c39c5b0d91206d6db44abd74f0f17

comment:10 Changed 8 years ago by Martyn Gigg

Re-enable the MDGridBox tests. Refs #5552

Leaving them commented out caused the performance test to fail because the CxxTest parser has still told there is a test. The test seems to actual work anyway...

Changeset: 2af99554bc44716b6956aa9d6411b866e8d84a89

comment:11 Changed 8 years ago by Russell Taylor

Re #5552. A safer way of locking the mutex.

In particular, trying to unlock it after the return statement is not going to work out well. This might also get this compiling with gcc 4.7.

Changeset: fb50c37287b23c517ddf353db75282dcfad5284c

comment:12 Changed 8 years ago by Nick Draper

  • Milestone changed from Release 2.2 to Release 2.3

Moved at the end of release 2.2

comment:13 Changed 8 years ago by Alex Buts

refs #5240 MDBoxToChange.h class is more or less functional

also relates to refs #5552

Changeset: 6291ea48ce4532232bcff7484f966b5da74e929d

comment:14 Changed 8 years ago by Alex Buts

refs #5552 Couple of classes/changes to support list of changed cell

not yet working/completed

Changeset: b43baf46e851613dceee88594eaac9f6ed9c90d9

comment:15 Changed 8 years ago by Alex Buts

refs #5552 fixing merging error

Changeset: 69d5b4bd22241e3a1ea2c838c0bc06b78fbd67e5

comment:16 Changed 8 years ago by Alex Buts

refs #5552 trying to fix unix error

Changeset: fbe85cad64e8528c4cac85118253907b5a3e2673

comment:17 Changed 8 years ago by Alex Buts

refs #5552 trying to deal with Unix error

Changeset: cb81e40105055246a60db09ee8d7a891f9435c46

comment:18 Changed 8 years ago by Alex Buts

refs #5552 fixing unix error

Changeset: 859e01e3f487f0fb22d8ac546a4ea211e9815d55

comment:19 Changed 8 years ago by Alex Buts

refs #5552 trying to fix Unix warning

Changeset: 7a50e2ebdf7e4e2a93e31bf709b2ccdeee8a7b16

comment:20 Changed 8 years ago by Alex Buts

refs #5552 check if revert decreases number of errors

Changeset: b1994d0f531c46ed8c2f7d8ea3d3332a5b0add17

comment:21 Changed 8 years ago by Alex Buts

refs #5552 Peak tests have been hopefully fixed

Changeset: 75543ee9863c39c5b0d91206d6db44abd74f0f17

comment:22 Changed 8 years ago by Martyn Gigg

Re-enable the MDGridBox tests. Refs #5552

Leaving them commented out caused the performance test to fail because the CxxTest parser has still told there is a test. The test seems to actual work anyway...

Changeset: 2af99554bc44716b6956aa9d6411b866e8d84a89

comment:23 Changed 8 years ago by Russell Taylor

Re #5552. A safer way of locking the mutex.

In particular, trying to unlock it after the return statement is not going to work out well. This might also get this compiling with gcc 4.7.

Changeset: fb50c37287b23c517ddf353db75282dcfad5284c

comment:24 Changed 8 years ago by Alex Buts

  • Status changed from new to accepted

comment:25 Changed 8 years ago by Alex Buts

  • Status changed from accepted to verify
  • Resolution set to worksforme

The profiling of the code (see performance and profiling script for ticket #5710 ) have shown that conversion itself takes about 10% of the total conversion time where 90% time spent on memory allocation/deallocation/rearrangement which is substantially single threaded. In addition to that, on similar task, this code is approximately as fast (~10% faster) as ConvertToDifractionWorkspace which does the same job as this code for elastic instruments and runs all parts of the conversion fully multithreaded.

Better multi-threading performance can be achieved by substantial changes to WS structure (e.g. ticket #5809 which currently put on hold).

This code does conversion single threaded and adding to MD WS multithreaded and it is probably wise to left it this way until substantial changes to MDWorkspace structure are implemented.

Last edited 8 years ago by Alex Buts (previous) (diff)

comment:26 Changed 8 years ago by Nick Draper

  • Status changed from verify to verifying
  • Tester set to Nick Draper

comment:27 Changed 8 years ago by Nick Draper

  • Status changed from verifying to closed

accepted

comment:28 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 6397

Note: See TracTickets for help on using tickets.