OpendTect
6.6
|
Sorting in parallel. Code is still experimental. More...
Public Types | |
typedef od_int64 | idx_type |
typedef idx_type | size_type |
Public Types inherited from Task | |
enum | Control { Run , Pause , Stop } |
Public Types inherited from ObjectWithName | |
typedef OD::String | name_type |
Public Member Functions | |
ParallelSorter (T *vals, idx_type *, size_type) | |
ParallelSorter (T *vals, size_type) | |
Public Member Functions inherited from ParallelTask | |
virtual | ~ParallelTask () |
bool | execute () |
virtual bool | executeParallel (bool parallel) |
void | setProgressMeter (ProgressMeter *) |
Must be called before execute() More... | |
int64_t | totalNr () const |
Public Member Functions inherited from Task | |
virtual | ~Task () |
virtual void | controlWork (Control) |
virtual void | enableWorkControl (bool=true) |
Must be called before execute() More... | |
virtual uiRetVal | errorWithDetails () const |
virtual Control | getState () const |
virtual uiString | uiMessage () const |
will be message() again in 7.x More... | |
virtual uiString | uiNrDoneText () const |
will be nrDoneText() in 7.x More... | |
bool | workControlEnabled () const |
Public Member Functions inherited from NamedCallBacker | |
NamedCallBacker (const char *nm=0) | |
NamedCallBacker (const NamedCallBacker &) | |
virtual Notifier< NamedCallBacker > & | objectToBeDeleted () const |
bool | operator== (const NamedCallBacker &oth) const |
bool | operator== (const NamedObject &oth) const |
Public Member Functions inherited from CallBacker | |
CallBacker () | |
CallBacker (const CallBacker &) | |
virtual | ~CallBacker () |
bool | attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const |
bool | attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const |
void | detachAllNotifiers () const |
Call from the destructor of your inherited object. More... | |
void | detachCB (const NotifierAccess &, const CallBack &) const |
void | detachCB (const NotifierAccess *notif, const CallBack &cb) const |
virtual bool | isCapsule () const |
bool | isNotifierAttached (const NotifierAccess *) const |
Only for debugging purposes, don't use. More... | |
void | stopReceivingNotifications () const |
Public Member Functions inherited from NamedObject | |
NamedObject (const char *nm=nullptr) | |
NamedObject (const NamedObject &oth) | |
virtual | ~NamedObject () |
virtual BufferString | getName () const |
bool | getNameFromPar (const IOPar &) |
virtual const name_type & | name () const |
NamedObject & | operator= (const NamedObject &) |
bool | operator== (const NamedObject &oth) const |
virtual void | setName (const char *nm) |
Public Member Functions inherited from ObjectWithName | |
virtual | ~ObjectWithName () |
bool | hasName (const char *nm) const |
bool | hasName (const name_type &nm) const |
void | putNameInPar (IOPar &) const |
Protected Member Functions | |
bool | doFinish (bool) |
bool | doPrepare (int) |
bool | doWork (od_int64, od_int64, int) |
int | minThreadSize () const |
od_int64 | nrDone () const |
May be -1, i.e. class does not report nrdone. More... | |
od_int64 | nrIterations () const |
Protected Member Functions inherited from ParallelTask | |
ParallelTask (const char *nm=0) | |
ParallelTask (const ParallelTask &) | |
void | addToNrDone (int64_t increment) |
int64_t | calculateThreadSize (int64_t totalnr, int nrthreads, int thread) const |
virtual int | maxNrThreads () const |
void | quickAddToNrDone (int64_t loopidx) |
void | resetNrDone () |
virtual bool | stopAllOnFailure () const |
Protected Member Functions inherited from Task | |
Task (const char *nm=nullptr) | |
virtual bool | shouldContinue () |
Protected Member Functions inherited from NamedCallBacker | |
void | sendDelNotif () const |
Static Protected Member Functions | |
static bool | mergeLists (const T *vals, T *res, idx_type start0, idx_type start1, idx_type start2, idx_type stop, size_type &totalsz) |
Protected Attributes | |
Threads::Barrier | barrier_ |
T * | buf_ |
Threads::ConditionVar | condvar_ |
T * | curvals_ |
idx_type * | idxs_ |
TypeSet< idx_type > | newstarts_ |
const size_type | nrvals_ |
TypeSet< idx_type > | starts_ |
ArrPtrMan< T > | tmpbuffer_ |
size_type | totalnr_ |
T * | vals_ |
Protected Attributes inherited from Task | |
Control | control_ |
Threads::ConditionVar * | workcontrolcondvar_ |
Protected Attributes inherited from NamedCallBacker | |
Threads::Atomic< bool > | delalreadytriggered_ |
Notifier< NamedCallBacker > | delnotif_ |
Protected Attributes inherited from NamedObject | |
BufferString | name_ |
Additional Inherited Members | |
Static Public Member Functions inherited from ParallelTask | |
static uiString | sPosFinished () |
static uiString | sTrcFinished () |
Static Public Member Functions inherited from Task | |
static uiString | stdNrDoneText () |
static uiString | uiStdNrDoneText () |
Static Public Member Functions inherited from CallBacker | |
static void | createReceiverForCurrentThread () |
static void | removeReceiverForCurrentThread () |
Sorting in parallel. Code is still experimental.
The basic principle is:
Merge pairs of subsets iteratively until there are only one subset left.
<>
typedef od_int64 ParallelSorter< T >::idx_type |
typedef idx_type ParallelSorter< T >::size_type |
|
inline |
|
inline |
|
inlineprotectedvirtual |
Called after all doWork have finished.
success | indicates whether all doWork returned true. |
Reimplemented from ParallelTask.
|
inlineprotectedvirtual |
Called once, before any doWork is called.
Reimplemented from ParallelTask.
|
inlineprotected |
|
inlinestaticprotected |
|
inlineprotectedvirtual |
Reimplemented from ParallelTask.
|
inlineprotectedvirtual |
May be -1, i.e. class does not report nrdone.
Reimplemented from ParallelTask.
|
inlineprotectedvirtual |
Implements ParallelTask.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2022