org.jppf.server.scheduler.bundle.impl
Class ProportionalBundler

java.lang.Object
  extended by org.jppf.server.scheduler.bundle.AbstractBundler
      extended by org.jppf.server.scheduler.bundle.proportional.AbstractProportionalBundler
          extended by org.jppf.server.scheduler.bundle.impl.ProportionalBundler
All Implemented Interfaces:
Bundler

public class ProportionalBundler
extends AbstractProportionalBundler

This bundler implementation computes bundle sizes propertional to the mean execution time for each node to the power of n, where n is an integer value specified in the configuration file as "proportionality factor".
The scope of this bundler is all nodes, which means that it computes the size for all nodes, unless an override is specified by the nodes.
The mean execution time is computed as a moving average over a number of tasks, specified in the bundling algorithm profile configuration as "minSamplesToAnalyse"
This algorithm is well suited for relatively small networks (a few dozen nodes at most). It generates an overhead everytime the performance data for a node is updated. In the case of a small network, this overhead is not large enough to impact the overall performance significantly.

Author:
Laurent Cohen

Field Summary
 
Fields inherited from class org.jppf.server.scheduler.bundle.proportional.AbstractProportionalBundler
bundleSize, dataHolder
 
Fields inherited from class org.jppf.server.scheduler.bundle.AbstractBundler
bundlerNumber, profile, timestamp
 
Constructor Summary
ProportionalBundler(LoadBalancingProfile profile)
          Creates a new instance with the initial size of bundle as the start size.
 
Method Summary
 Bundler copy()
          Make a copy of this bundler
protected  int maxSize()
          Get the max bundle size that can be used for this bundler.
 
Methods inherited from class org.jppf.server.scheduler.bundle.proportional.AbstractProportionalBundler
dispose, feedback, getBundleSize, getDataHolder, normalize, setBundleSize, setup
 
Methods inherited from class org.jppf.server.scheduler.bundle.AbstractBundler
getBundlerNumber, getProfile, getTimestamp
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ProportionalBundler

public ProportionalBundler(LoadBalancingProfile profile)
Creates a new instance with the initial size of bundle as the start size.

Parameters:
profile - the parameters of the auto-tuning algorithm, grouped as a performance analysis profile.
Method Detail

copy

public Bundler copy()
Make a copy of this bundler

Returns:
a Bundler instance.
See Also:
Bundler.copy()

maxSize

protected int maxSize()
Get the max bundle size that can be used for this bundler.

Specified by:
maxSize in class AbstractBundler
Returns:
the bundle size as an int.
See Also:
AbstractBundler.maxSize()


Copyright © 2005-2010 JPPF Team.