「view this page in B3 βῆτα server」

Revisions №59683

branch: master 「№59683」
Commited by: Andrew Leaver-Fay
GitHub commit link: 「627468cc8b930cd9」 「№2413」
Difference from previous tested commit:  code diff
Commit date: 2017-09-07 09:15:19

Merge pull request #2413 from RosettaCommons/aleaverfay/jd3_multithreaded_jd_take3 I've extracted the rather complex logic of asking the JobQueen for the next job to run out of the MPIWorkPoolJobDistributor and into a new class, the JobExtractor. I've replaced the original logic from the MPIWorkPoolJobDistributor with the JobExtractor class, and that looks like it works just fine. So writing the (single-process) MultiThreadedJobDistributor then becomes very easy: pop a job from the Extractor, put it into a work-queue, let a thread pool get to it when the next thread becomes available. This implementation makes use of the Apache2-licensed C++ Thread Pool Library (CTPL); it works incredibly smoothly.