org.apfloat.samples
Class PiDistributed.DistributedPiCalculator
java.lang.Object
org.apfloat.samples.Pi.ChudnovskyPiCalculator
org.apfloat.samples.PiParallel.ParallelPiCalculator
org.apfloat.samples.PiDistributed.DistributedPiCalculator
- All Implemented Interfaces:
- Serializable, Operation<Apfloat>
- Enclosing class:
- PiDistributed
protected static class PiDistributed.DistributedPiCalculator
- extends PiParallel.ParallelPiCalculator
Distributed version of the Chudnovskys'
binary splitting algorithm.
Uses multiple computers to calculate pi in parallel.
- See Also:
- Serialized Form
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PiDistributed.DistributedPiCalculator
public PiDistributed.DistributedPiCalculator(long precision,
int radix)
- Construct a distributed pi calculator with the specified precision and radix.
- Parameters:
precision
- The target precision.radix
- The radix to be used.
r
protected void r(long n1,
long n2,
ApfloatHolder T,
ApfloatHolder Q,
ApfloatHolder P,
ApfloatHolder F,
OperationExecutor[] nodes,
Pi.ChudnovskyProgressIndicator progressIndicator)
throws ApfloatRuntimeException
- Description copied from class:
PiParallel.ParallelPiCalculator
- Entry point for the parallel binary splitting algorithm.
- Overrides:
r
in class PiParallel.ParallelPiCalculator
- Parameters:
n1
- Start term.n2
- End term.T
- Algorithm parameter.Q
- Algorithm parameter.P
- Algorithm parameter.F
- Pointer to inverse square root parameter.nodes
- The operation executors to be used for the calculation.progressIndicator
- Class to print out the progress of the calculation.
- Throws:
ApfloatRuntimeException
getNodes
protected OperationExecutor[] getNodes()
- Get the available set of operation executor nodes.
This implementation returns
RemoteOperationExecutor
s,
which execute operations on the cluster's nodes.
- Overrides:
getNodes
in class PiParallel.ParallelPiCalculator
- Returns:
- The nodes of the cluster.
recombineNodes
protected OperationExecutor[] recombineNodes(OperationExecutor[] nodes,
int numberNeeded)
- Description copied from class:
PiParallel.ParallelPiCalculator
- Attempt to combine or split nodes to form the needed number
of nodes. The returned number of nodes is something between
the number of nodes input and the number of nodes requested.
The requested number of nodes can be less than or greater than
the number of input nodes.
- Overrides:
recombineNodes
in class PiParallel.ParallelPiCalculator
- Parameters:
nodes
- The operation executors to recombine.numberNeeded
- The requested number of operation executors.
- Returns:
- The set of recombined operation executors.