Ticket #10330 (closed: fixed)

Opened 6 years ago

Last modified 5 years ago

Get ThreadPool working under OS X + clang

Reported by: Steven Hahn Owned by: Steven Hahn
Priority: major Milestone: Release 3.4
Component: Framework Keywords:
Cc: Blocked By:
Blocking: Tester: Pete Peterson

Description

clang lacks openmp and currently runs everything serially. The ThreadPool class only depends minimally on openmp (determining the number of processors and managing logging from individual threads) and therefore may be easy to get working with clang.

Change History

comment:1 Changed 6 years ago by Steven Hahn

Refs #10330. ThreadPool should no longer depend on openmp

Changeset: 66365f3ceb4bf6029ffd18134228edd298b93d7d

comment:2 Changed 6 years ago by Steven Hahn

Refs #10330. replaced PARALLEL_CRITICAl with mutexed getters/setters.

Changeset: 32e94a2f7258fc7384d117e9a7909cdc0a270219

comment:3 Changed 6 years ago by Steven Hahn

Refs #10330. make tof limits private. fix typo

Changeset: 0919e6188fcae7911f5faef4496a44380dc7ad86

comment:4 Changed 6 years ago by Steven Hahn

Refs #10330. Cleaned up formatting and switched Mutex to FastMutex

Changeset: d819805ba1990649171478787ab807339083a71f

comment:5 Changed 6 years ago by Steven Hahn

Refs #10330. Fixed comment

Changeset: 18f4fcc87d0f6aabe68184106d02acad6ecbed88

comment:6 Changed 6 years ago by Steven Hahn

Refs #10330. Only use openmp optimized sort when openmp is present

Changeset: c389d085920e258cac96e0bcab03b2b0e9cf56f7

comment:7 Changed 6 years ago by Steven Hahn

Refs #10330. Threadpool respects MaxCores value from ConfigService

Changeset: ff63c4522c6e14c919d29660eed0ab41a35e50ef

comment:8 Changed 6 years ago by Steven Hahn

Refs #10330. Too many getters/setters, using mutex around block

Changeset: df8e9269d13e85585f6dd62f387edbf186541739

comment:9 Changed 6 years ago by Steven Hahn

Refs #10330. Fix merge conflict in LoadEventNexus.cpp

Changeset: b22b3cbdada1a905be2eb2089f93d880fab3a4d5

comment:10 Changed 6 years ago by Steven Hahn

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

This is being verified as pull request #47.

comment:11 Changed 6 years ago by anonymous

Can one of the admins verify this patch?

comment:12 Changed 6 years ago by Ross Whitfield

test this please

comment:13 Changed 6 years ago by Stuart Campbell

test this please

comment:14 Changed 6 years ago by Ross Whitfield

retest this please

comment:15 Changed 6 years ago by Stuart Campbell

retest this please

comment:16 Changed 6 years ago by Stuart Campbell

test this please

comment:17 Changed 6 years ago by Steven Hahn

Refs #10330. used scopedlock in place of raw mutex

Changeset: 19e8992fba469576c5f8254718f7bc9b555c291a

comment:18 Changed 6 years ago by Steven Hahn

test this please

comment:19 Changed 6 years ago by Pete Peterson

  • Status changed from verify to verifying
  • Tester set to Pete Peterson

comment:20 Changed 6 years ago by Pete Peterson

The things that have both PARALLEL_CRITICAL and ThreadPool are:

  • LoadEventNexus.cpp (already done)
  • MultiThreaded.h
  • BinMD.cpp
  • ConvertToDiffractionMDWorkspace.cpp
  • ResolutionConvolvedCrossSection.cpp

comment:21 Changed 6 years ago by Steven Hahn

Refs #10330. BinMD uses macro instead of threadpool

Changeset: f793d154df72ec78c48bdfac4eefc8d397b61165

comment:22 Changed 6 years ago by Steven Hahn

test this please

comment:23 Changed 6 years ago by Martyn Gigg

Swap PARALLEL_CRITICAL for a Poco::FastMutex.

It will have the same effect but not require the look to run under OpenMP Refs #10330

Changeset: eb513f28a13397a56862905c749fb5912ebf3aa4

comment:24 Changed 6 years ago by Martyn Gigg

Remove OMP from custom macros

They have nothing to do with OpenMP so avoid any ambiguity. Refs #10330

Changeset: 3e07fb0e68c60590a94dda673ae62b864a7e1a8d

comment:25 Changed 6 years ago by Martyn Gigg

test this please

comment:26 Changed 6 years ago by Steven Hahn

  • Status changed from verifying to closed

Merge branch 'master' into feature/10330_threadpool_working_with_clang

Full changeset: c4408e0a4e433069de59303a2c0587483acd2887

comment:27 Changed 6 years ago by Steven Hahn

Merge branch 'master' into feature/10330_threadpool_working_with_clang

Full changeset: aa11bcbd7cbb5ed3b406d1954d504908fff3ee56

comment:28 Changed 6 years ago by Steven Hahn

Merge branch 'master' into feature/10330_threadpool_working_with_clang

Full changeset: 2fb161cab75cf1c3d216fb53dde3d534952435f1

comment:29 Changed 6 years ago by Pete Peterson

Merge remote-tracking branch 'origin/feature/10330_threadpool_working_with_clang'

Full changeset: 4f04309cc299d11d73fdf789b39946b60c0a8550

comment:30 Changed 6 years ago by Nick Draper

  • Milestone changed from Backlog to Release 3.4

moved to r 3.4 as tickets are closed

comment:31 Changed 5 years ago by Nick Draper

Somehow these slipped through without a resolution. Set to Fixed.

comment:32 Changed 5 years ago by Stuart Campbell

This ticket has been transferred to github issue 11172

Note: See TracTickets for help on using tickets.