This class provides the interface for running multiple calculations in
parallel, either locally on multiple processors, or on a cluster of networked
computers.

## class RemoteCalculationSetup

Data structure for storing setup of remote distributed calculation.

initialize(host, protocol, directory)

## class Calculation

Class Calculation is extended with the possibilty of running a remote calculation

remote_calculation(remote_setup, what, options)

Runs the calculation on a remote mashine accessed by protocol
specified in remote_setup.
The calculation directory, along with serialized calculation
object and some additional information, are copied to remote
machine. The calculation is then executed by running separate
program 'remotecuby'.

## class DistributedCalculation

Class managing the distributed calculations.

###
Initialize

initialize(calculations, settings, sort = true)

Constructor of Distributed calculations. It determines from
the settings whether the calculations are run locally or
over the network and prepares everything.

Unless specified otherwise, the calculations array is sorted
so that longer calculations go first.

Arguments:

- calculations: Array of Calculation
- settings: a Settings object

###
Run the calculations

run(what = [], options = {})

Runs all the calculations on resources specified, using the
LoadBalancer internal queue system.