MPQC
2.3.1
|
Distributes shell pairs either statically or dynamically. More...
#include <distshpair.h>
Classes | |
class | SharedData |
This is used to store data that must be shared between all cooperating shell pairs. More... | |
Public Member Functions | |
DistShellPair (const Ref< MessageGrp > &, int nthread, int mythread, const Ref< ThreadLock > &lock, const Ref< GaussianBasisSet > &bs1, const Ref< GaussianBasisSet > &bs2, bool dynamic, SharedData *shared=0) | |
The DistShellPair class is used to distribute shell pair indices among tasks. More... | |
void | init () |
Resets to the first shell pair. | |
void | set_debug (int d) |
How much stuff to print out. | |
void | set_print_percent (double p) |
How often to print status from node 0. | |
int | get_task (int &P, int &Q) |
Puts the current PQ shell pair into P and Q and returns 1. More... | |
Distributes shell pairs either statically or dynamically.
sc::DistShellPair::DistShellPair | ( | const Ref< MessageGrp > & | , |
int | nthread, | ||
int | mythread, | ||
const Ref< ThreadLock > & | lock, | ||
const Ref< GaussianBasisSet > & | bs1, | ||
const Ref< GaussianBasisSet > & | bs2, | ||
bool | dynamic, | ||
SharedData * | shared = 0 |
||
) |
The DistShellPair class is used to distribute shell pair indices among tasks.
Both static (round-robin) and dynamic methods are supported.
int sc::DistShellPair::get_task | ( | int & | P, |
int & | Q | ||
) |
Puts the current PQ shell pair into P and Q and returns 1.
When there are no more shell pairs to be processed by this processor, 0 is returned. Once we start doing get_tasks, we have to go to the end if dynamic load balancing is used.
P belongs to bs1, and Q belongs to bs2. If (bs1 == bs2) then P is greater or equal to Q.