MADNESS
version 0.9
|
A parallel bin sort across MPI processes. More...
#include <binsorter.h>
Public Member Functions | |
BinSorter (World &world, inserterT inserter, int bufsize=0) | |
Constructs the sorter object. More... | |
virtual | ~BinSorter () |
void | finish () |
Invoke to complete the sort, flush all buffers, and ensure communication/processing is complete. More... | |
void | insert (ProcessID p, const T &value) |
Application calls this to add a value to the bin for process p. More... | |
Public Member Functions inherited from madness::WorldObject< BinSorter< T, inserterT > > | |
WorldObject (World &world) | |
Associates object with globally unique ID. More... | |
const uniqueidT & | id () const |
Returns the globally unique object ID. More... | |
World & | get_world () const |
Returns a reference to the world. More... | |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8) const |
detail::task_result_type < memfnT >::futureT | send (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9) const |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8,a9)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4,a5)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4,a5,a6)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8)". More... | |
detail::task_result_type < memfnT >::futureT | task (ProcessID dest, memfnT memfn, const a1T &a1, const a2T &a2, const a3T &a3, const a4T &a4, const a5T &a5, const a6T &a6, const a7T &a7, const a8T &a8, const a9T &a9, const TaskAttributes &attr=TaskAttributes()) const |
Sends task to derived class method "returnT (this->*memfn)(a1,a2,a3,a4,a5,a6,a7,a8,a9)". More... | |
virtual | ~WorldObject () |
Additional Inherited Members | |
Public Attributes inherited from madness::WorldObject< BinSorter< T, inserterT > > | |
World & | world |
Think globally act locally. More... | |
Protected Member Functions inherited from madness::WorldObject< BinSorter< T, inserterT > > | |
void | process_pending () |
To be called from derived constructor to process pending messages. More... | |
A parallel bin sort across MPI processes.
|
inline |
Constructs the sorter object.
[in] | world | The world object that must persist during the existence of this object |
[in] | inserter | User provides this routine to process an item of data on remote end |
[in] | bufize | Size of bin (in units of T) ... default value is as large as possible |
References madness::RMI::max_msg_len(), mpfr::min(), madness::WorldObject< BinSorter< T, inserterT > >::process_pending(), madness::World::size(), and std::tr1::T().
|
inlinevirtual |
References madness::World::size().
|
inline |
Invoke to complete the sort, flush all buffers, and ensure communication/processing is complete.
References madness::WorldGopInterface::fence(), madness::World::gop, and madness::World::size().
|
inline |
Application calls this to add a value to the bin for process p.