MADNESS  version 0.9
Public Member Functions | List of all members
madness::BinSorter< T, inserterT > Class Template Reference

A parallel bin sort across MPI processes. More...

#include <binsorter.h>

Inheritance diagram for madness::BinSorter< T, inserterT >:
Inheritance graph
[legend]
Collaboration diagram for madness::BinSorter< T, inserterT >:
Collaboration graph
[legend]

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 uniqueidTid () const
 Returns the globally unique object ID. More...
 
Worldget_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 > >
Worldworld
 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...
 

Detailed Description

template<typename T, typename inserterT>
class madness::BinSorter< T, inserterT >

A parallel bin sort across MPI processes.

Constructor & Destructor Documentation

template<typename T , typename inserterT >
madness::BinSorter< T, inserterT >::BinSorter ( World world,
inserterT  inserter,
int  bufsize = 0 
)
inline

Constructs the sorter object.

Parameters
[in]worldThe world object that must persist during the existence of this object
[in]inserterUser provides this routine to process an item of data on remote end
[in]bufizeSize 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().

template<typename T , typename inserterT >
virtual madness::BinSorter< T, inserterT >::~BinSorter ( )
inlinevirtual

Member Function Documentation

template<typename T , typename inserterT >
void madness::BinSorter< T, inserterT >::finish ( )
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().

template<typename T , typename inserterT >
void madness::BinSorter< T, inserterT >::insert ( ProcessID  p,
const T &  value 
)
inline

Application calls this to add a value to the bin for process p.


The documentation for this class was generated from the following file: