|
MPQC
3.0.0-alpha
|
Distributes sets of shells either statically or dynamically. More...
#include <chemistry/qc/basis/distsh.h>
Classes | |
| class | SharedData |
| This is used to store data that must be shared between all cooperating shell sets. More... | |
Public Member Functions | |
| DistShell (const Ref< MessageGrp > &, int nthread, int mythread, const Ref< ThreadLock > &lock, const Ref< GaussianBasisSet > &bs, bool dynamic, int max_nfunctions=-1, int max_nshell=1, SharedData *shared=0) | |
| The DistShell class is used to distribute sets of shells to compute tasks. More... | |
| void | init () |
| Resets to the first shell. | |
| 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. More... | |
| int | get_task (int &I, int &N) |
| Copies "payload" (I is the first shell of the shell set, in the increasing-size order, and N is the number of shells) and returns 1. More... | |
| int | shell_index (int i) const |
| maps shell index from the work ordering (as reported to get_task() ) to its index within the basis set | |
Distributes sets of shells either statically or dynamically.
| sc::DistShell::DistShell | ( | const Ref< MessageGrp > & | , |
| int | nthread, | ||
| int | mythread, | ||
| const Ref< ThreadLock > & | lock, | ||
| const Ref< GaussianBasisSet > & | bs, | ||
| bool | dynamic, | ||
| int | max_nfunctions = -1, |
||
| int | max_nshell = 1, |
||
| SharedData * | shared = 0 |
||
| ) |
The DistShell class is used to distribute sets of shells to compute tasks.
Both static (round-robin) and dynamic methods are supported.
| int sc::DistShell::get_task | ( | int & | I, |
| int & | N | ||
| ) |
Copies "payload" (I is the first shell of the shell set, in the increasing-size order, and N is the number of shells) and returns 1.
When there are no more shells to be processed by this processor, 0 is returned.
| void sc::DistShell::set_print_percent | ( | double | p | ) |
How often to print status from node 0.
If p > 100.0, then no printing will be done.