edu.byu.ece.edif.tools.replicate.nmr.tmr
Class PartialInputOutputFeedForwardNMR

java.lang.Object
  extended by edu.byu.ece.edif.tools.replicate.nmr.tmr.PartialInputOutputFeedForwardNMR

public class PartialInputOutputFeedForwardNMR
extends java.lang.Object

PartialInputOutputFeedForwardNMR Breaks down the input and output of the given EdifCell by inputs and outputs to SCCs.

Author:
Brian Pratt, Michael Wirthlin

Field Summary
protected static java.util.Set _ECIsRelatedToFB
           
protected static java.util.List _inputSets
           
protected static java.util.List _outputSets
           
private static int _replicationFactor
          Use to indicate replication
protected static java.util.Iterator _startGroupsIter
           
static int ALL
           
static boolean DEBUG
           
static int DEFAULT_COLLAPSE_TYPE
           
static int FEED_FORWARD
           
static int FEEDBACK
           
static int FEEDBACK_OUTPUT
           
static int INPUT_TO_FEEDBACK
           
static int NONE
           
static int SOME
           
 
Constructor Summary
PartialInputOutputFeedForwardNMR()
           
 
Method Summary
protected static boolean addFeedForwardECIsToNMR(java.util.Collection sccGroups, EdifCellInstanceCollectionGraph groupConn, ReplicationUtilizationTracker resourceTracker, boolean forward, ReplicationType replicationType, boolean override)
          Adds the feed-forward EdifCellInstances of the given group connectivity to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception.
static boolean addInputECIsToNMR(java.util.List sortedSCCs, EdifCellInstanceCollectionGraph groupConn, ReplicationUtilizationTracker resourceTracker, int inputAdditionType, ReplicationType replicationType, boolean override)
          Adds the input EdifCellInstances of the given sorted List of SCCs to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception.
protected static boolean addInputOrOutputECIsToNMR(java.util.List sortedSCCs, EdifCellInstanceCollectionGraph groupConn, ReplicationUtilizationTracker resourceTracker, int additionType, boolean doInput, ReplicationType replicationType, boolean override)
          Adds the input/output EdifCellInstances of the given sorted List of SCCs to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception.
static boolean addOutputECIsToNMR(java.util.List sortedSCCs, EdifCellInstanceCollectionGraph groupConn, ReplicationUtilizationTracker resourceTracker, int outputAdditionType, ReplicationType replicationType, boolean override)
          Adds the output EdifCellInstances of the given sorted List of SCCs to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception.
protected static boolean addSCCBadCutInstances(java.util.Collection sccInstances, java.util.Collection sccGroups, ReplicationUtilizationTracker resourceTracker, ReplicationType replicationType, boolean override)
          Adds instances that are part of the SCC bad cut groupings, but not part of the original SCCs to NMR.
protected static java.util.List collapseInputOrOutputGroupsOneString(EdifCellInstanceCollection startGroup, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn, boolean doInput, boolean type1)
          Collapses one "string" of inputs (ECIs) to this group into the group.
protected static void createReplicationStatus(int[] replicationStatus, boolean allFeedbackInstancesReplicated, int feedbackInstanceCount, boolean allInputToFeedbackInstancesReplicated, int inputToFeedbackInstanceCount, boolean allFeedbackOutputInstancesReplicated, int feedbackOutputInstanceCount, boolean allFeedForwardInstancesReplicated, int feedForwardInstanceCount)
          Creates an array representing the replication status of the partial NMR selection based on the different NMR sections.
static java.util.Collection getCellInstancesRelatedToFeedback()
           
protected static java.util.List getInputGroups(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn, int type)
          Collapse the input of the given InstanceGroup objects using the collapse type specified.
protected static java.util.List getInputGroupsBreadthDepthFirstOneLevel(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn)
          When no more input can be added, this method will return null.
protected static java.util.List getInputGroupsBreadthFirstOneLevel(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn)
          This method grabs the predecessor groups of the given Collection of groups.
protected static java.util.List getInputGroupsDepthFirstOneString(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn)
          When no more input can be added, this method will return null.
protected static java.util.List getInputOrOutputGroupsOneString(java.util.Collection startGroups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn, boolean doInput, boolean type)
          This is a helper method for the depth-first collapse.
static java.util.List getInputSets()
           
protected static java.util.List getOutputGroups(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn, int type)
          Collapse the output of the given InstanceGroup using the type specified.
protected static java.util.List getOutputGroupsBreadthDepthFirstOneLevel(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn)
          When no more output can be added, this method will return null.
protected static java.util.List getOutputGroupsBreadthFirstOneLevel(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn)
          This method grabs the successor groups of the given Collection of groups.
protected static java.util.List getOutputGroupsDepthFirstOneString(java.util.Collection groups, java.util.Collection visitedGroups, EdifCellInstanceCollectionGraph groupConn)
          When no more output can be added, this method will return null.
static java.util.List getOutputSets()
           
protected static void initGetGroups()
           
static void main(java.lang.String[] args)
           
static java.lang.String msToString(long milliseconds)
           
protected static boolean nmrInputOrOutputGroups(EdifCellInstanceCollectionGraph groupConn, ReplicationUtilizationTracker resourceTracker, int additionType, boolean doInput, java.util.HashSet visitedGroups, java.util.List groupsToNMR, ReplicationType replicationType, boolean override)
           
static int[] nmrSCCInputAndOutput(EdifCell cell, EdifCellInstanceGraph connectivity, EdifCellBadCutGroupings badCutGroupings, ReplicationUtilizationTracker resourceTracker, NMRArchitecture nmrArch, SCCDepthFirstSearch sccDFS, boolean nmrInput, boolean nmrOutput, boolean nmrFeedForward, int inputAdditionType, int outputAdditionType, ReplicationType replicationType, boolean override)
          Select the input and output to be replicated in the given EdifCell.
static int[] nmrSCCInputAndOutput(EdifCell cell, EdifCellInstanceGraph connectivity, ReplicationUtilizationTracker resourceTracker, NMRArchitecture nmrArch, SCCDepthFirstSearch sccDFS, boolean nmrInput, boolean nmrOutput, boolean nmrFeedForward, int inputAdditionType, int outputAdditionType, ReplicationType replicationType, boolean override)
          Select the input and output to be replicated in the given EdifCell.
static int[] nmrSCCInputAndOutput(EdifCell cell, EdifCellInstanceGraph ecic, ReplicationUtilizationTracker resourceTracker, NMRArchitecture nmrArch, SCCDepthFirstSearch sccs, ReplicationType replicationType, boolean override)
          Default to NMR both input and output, using input and output collapse types of Breadth First (type 3)
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_startGroupsIter

protected static java.util.Iterator _startGroupsIter

DEFAULT_COLLAPSE_TYPE

public static final int DEFAULT_COLLAPSE_TYPE
See Also:
Constant Field Values

FEEDBACK

public static final int FEEDBACK
See Also:
Constant Field Values

INPUT_TO_FEEDBACK

public static final int INPUT_TO_FEEDBACK
See Also:
Constant Field Values

FEEDBACK_OUTPUT

public static final int FEEDBACK_OUTPUT
See Also:
Constant Field Values

FEED_FORWARD

public static final int FEED_FORWARD
See Also:
Constant Field Values

NONE

public static final int NONE
See Also:
Constant Field Values

SOME

public static final int SOME
See Also:
Constant Field Values

ALL

public static final int ALL
See Also:
Constant Field Values

_inputSets

protected static java.util.List _inputSets

_outputSets

protected static java.util.List _outputSets

_ECIsRelatedToFB

protected static java.util.Set _ECIsRelatedToFB

DEBUG

public static boolean DEBUG

_replicationFactor

private static final int _replicationFactor
Use to indicate replication

See Also:
Constant Field Values
Constructor Detail

PartialInputOutputFeedForwardNMR

public PartialInputOutputFeedForwardNMR()
Method Detail

nmrSCCInputAndOutput

public static int[] nmrSCCInputAndOutput(EdifCell cell,
                                         EdifCellInstanceGraph ecic,
                                         ReplicationUtilizationTracker resourceTracker,
                                         NMRArchitecture nmrArch,
                                         SCCDepthFirstSearch sccs,
                                         ReplicationType replicationType,
                                         boolean override)
Default to NMR both input and output, using input and output collapse types of Breadth First (type 3)

Returns:
Status of replication

nmrSCCInputAndOutput

public static int[] nmrSCCInputAndOutput(EdifCell cell,
                                         EdifCellInstanceGraph connectivity,
                                         ReplicationUtilizationTracker resourceTracker,
                                         NMRArchitecture nmrArch,
                                         SCCDepthFirstSearch sccDFS,
                                         boolean nmrInput,
                                         boolean nmrOutput,
                                         boolean nmrFeedForward,
                                         int inputAdditionType,
                                         int outputAdditionType,
                                         ReplicationType replicationType,
                                         boolean override)
Select the input and output to be replicated in the given EdifCell.

Input and Output logic (to and from the feedback instances) can be added in different ways based on the inputAdditionType and outputAdditionType parameters. Default=3. 1: Depth First, 2: Depth-Breadth, 3: Breadth First

Limits on the input and output instances can also be set with the inputLimit and outputLimit parameters.

The results of the decomposition can be obtained as two Lists of Sets of EdifCellInstances through the getInputSets() and getOutputSets() methods. Each Set is a group of EdifCellInstances that must be added to the replication together because of architecture-specific limits.

Parameters:
cell - The given EdifCell
connectivity -
resourceTracker - The DeviceUtilizationTracker being used
nmrArch - The NMRArchitecture
sccDFS - The SCCDepthFirstSearch being used
nmrInput - Whether or not input ports should be replicated
nmrOutput - Whether or not output ports should be replicated
nmrFeedForward - Whether or not the feed forward section should be replicated
inputAdditionType - An integer indicating which of three different algorithms should be used to determine the order of instances added in the Input to Feedback section.
outputAdditionType - An integer indicating which of three different algorithms should be used to determine the order of instances added in the Feedback Output section.
Returns:
Status of replication, encoded as an array of int's.

nmrSCCInputAndOutput

public static int[] nmrSCCInputAndOutput(EdifCell cell,
                                         EdifCellInstanceGraph connectivity,
                                         EdifCellBadCutGroupings badCutGroupings,
                                         ReplicationUtilizationTracker resourceTracker,
                                         NMRArchitecture nmrArch,
                                         SCCDepthFirstSearch sccDFS,
                                         boolean nmrInput,
                                         boolean nmrOutput,
                                         boolean nmrFeedForward,
                                         int inputAdditionType,
                                         int outputAdditionType,
                                         ReplicationType replicationType,
                                         boolean override)
Select the input and output to be replicated in the given EdifCell.

Input and Output logic (to and from the feedback instances) can be added in different ways based on the inputAdditionType and outputAdditionType parameters. Default=3. 1: Depth First, 2: Depth-Breadth, 3: Breadth First

Limits on the input and output instances can also be set with the inputLimit and outputLimit parameters.

The results of the decomposition can be obtained as two Lists of Sets of EdifCellInstances through the getInputSets() and getOutputSets() methods. Each Set is a group of EdifCellInstances that must be added to the replication together because of architecture-specific limits.

Parameters:
cell - The given EdifCell
connectivity -
badCutGroupings - The EdifCellBadCutGroupings object for this graph
resourceTracker - The DeviceUtilizationTracker being used
nmrArch - The NMRArchitecture
sccDFS - The SCCDepthFirstSearch being used
nmrInput - Whether or not input ports should be replicated
nmrOutput - Whether or not output ports should be replicated
nmrFeedForward - Whether or not the feed forward section should be replicated
inputAdditionType - An integer indicating which of three different algorithms should be used to determine the order of instances added in the Input to Feedback section.
outputAdditionType - An integer indicating which of three different algorithms should be used to determine the order of instances added in the Feedback Output section.
Returns:
Status of replication, encoded as an array of int's.

addInputECIsToNMR

public static boolean addInputECIsToNMR(java.util.List sortedSCCs,
                                        EdifCellInstanceCollectionGraph groupConn,
                                        ReplicationUtilizationTracker resourceTracker,
                                        int inputAdditionType,
                                        ReplicationType replicationType,
                                        boolean override)
Adds the input EdifCellInstances of the given sorted List of SCCs to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception. This method will skip over "Hard Stop" Exceptions if encountered. (i.e. It will add all Instances before and after the non-replicatable Instance(s)).

The type of collapse (breadth-first, depth-first) is dependent on the inputAdditionType parameter.

Parameters:
sortedSCCs - A List of EdifCellInstanceCollection objects representing the SCCs. These should be in topological order.
groupConn - The EdifCellInstanceCollectionGraph object associated with this EdifCell that contains the sortedSCC groups
resourceTracker - The DeviceUtilizationTracker object to add the replicated Instances to
inputAdditionType - Which type of input collapse to perform
Returns:
Status of replication: true if ALL instance were replicated, false if some were skipped or wouldn't fit.

addOutputECIsToNMR

public static boolean addOutputECIsToNMR(java.util.List sortedSCCs,
                                         EdifCellInstanceCollectionGraph groupConn,
                                         ReplicationUtilizationTracker resourceTracker,
                                         int outputAdditionType,
                                         ReplicationType replicationType,
                                         boolean override)
Adds the output EdifCellInstances of the given sorted List of SCCs to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception. This method will skip over "Hard Stop" Exceptions if encountered. (i.e. It will add all Instances before and after the non-replicatable Instance(s)).

The type of collapse (breadth-first, depth-first) is dependent on the outputAdditionType parameter.

Parameters:
sortedSCCs - A List of EdifCellInstanceCollection objects representing the SCCs. These should be in topological order.
groupConn - The EdifCellInstanceCollectionGraph object associated with this EdifCell that contains the sortedSCC groups
resourceTracker - The DeviceUtilizationTracker object to add the replicated Instances to
outputAdditionType - Which type of output collapse to perform
Returns:
Status of replication: true if ALL instance were replicated, false if some were skipped or wouldn't fit.

getCellInstancesRelatedToFeedback

public static java.util.Collection getCellInstancesRelatedToFeedback()

getInputSets

public static java.util.List getInputSets()

getOutputSets

public static java.util.List getOutputSets()

addFeedForwardECIsToNMR

protected static boolean addFeedForwardECIsToNMR(java.util.Collection sccGroups,
                                                 EdifCellInstanceCollectionGraph groupConn,
                                                 ReplicationUtilizationTracker resourceTracker,
                                                 boolean forward,
                                                 ReplicationType replicationType,
                                                 boolean override)
Adds the feed-forward EdifCellInstances of the given group connectivity to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception. This method will skip over "Hard Stop" Exceptions if encountered. (i.e. It will add all Instances before and after the non-replicatable Instance(s)).

Parameters:
sccGroups - A Collection of EdifCellInstanceCollection objects representing the SCCs. These are needed to avoid feedback loops.
groupConn - The EdifCellInstanceCollectionGraph object associated with this EdifCell
resourceTracker - The DeviceUtilizationTracker object to add the replicated Instances to
forward - Indicates whether to start at the inputs (forward) or outputs (!forward)
Returns:
Status of replication: true if ALL instance were replicated, false if some were skipped or wouldn't fit.

addInputOrOutputECIsToNMR

protected static boolean addInputOrOutputECIsToNMR(java.util.List sortedSCCs,
                                                   EdifCellInstanceCollectionGraph groupConn,
                                                   ReplicationUtilizationTracker resourceTracker,
                                                   int additionType,
                                                   boolean doInput,
                                                   ReplicationType replicationType,
                                                   boolean override)
Adds the input/output EdifCellInstances of the given sorted List of SCCs to the DeviceUtilizationResouceTracker until that object throws an "Estimated Stop" Exception. This method will skip over "Hard Stop" Exceptions if encountered. (i.e. It will add all Instances before and after the non-replicatable Instance(s)).

The type of collapse (breadth-first, depth-first) is dependent on the _inputAdditionType/_outputAdditionType variables.

Parameters:
sortedSCCs - A List of EdifCellInstanceCollection objects representing the SCCs. These should be in topological order.
groupConn - The EdifCellInstanceCollectionGraph object associated with this EdifCell that contains the sortedSCC groups
resourceTracker - The DeviceUtilizationTracker object to add the replicated Instances to
additionType - Which type of input/output collapse to perform
doInput - Indicates whether to add the inputs to the SCCs or the outputs from the SCCs
Returns:
Status of replication: true if ALL instance were replicated, false if some were skipped or wouldn't fit.

addSCCBadCutInstances

protected static boolean addSCCBadCutInstances(java.util.Collection sccInstances,
                                               java.util.Collection sccGroups,
                                               ReplicationUtilizationTracker resourceTracker,
                                               ReplicationType replicationType,
                                               boolean override)
Adds instances that are part of the SCC bad cut groupings, but not part of the original SCCs to NMR.

Parameters:
sccInstances - Instances in the original SCC groups
sccGroups - SCC bad cut groupings
resourceTracker - DeviceUtilizationTracker to NMR instances
Returns:
Status of replication: true if ALL instance were replicated, false if some were skipped or wouldn't fit.

collapseInputOrOutputGroupsOneString

protected static java.util.List collapseInputOrOutputGroupsOneString(EdifCellInstanceCollection startGroup,
                                                                     java.util.Collection visitedGroups,
                                                                     EdifCellInstanceCollectionGraph groupConn,
                                                                     boolean doInput,
                                                                     boolean type1)
Collapses one "string" of inputs (ECIs) to this group into the group. Only pulls in the ECIs that feed into the startECI. The order of how the ECIs are brought in is partially dependent on the the type1 parameter.

Type 1 (Stack-based) does a depth-first search

Type 2 (Queue-based) does a depth/breadth-first - does a breadth-first search doing, but only considers the predecessors of the given ECI

Parameters:
startECI - The ECI to create the string of ECIs from
visitedGroups -
GroupConn -
doInput -
type1 - Determines whether to use a Stack or a Queue
Returns:
A List of "atomic" Sets of EdifCellInstances

createReplicationStatus

protected static void createReplicationStatus(int[] replicationStatus,
                                              boolean allFeedbackInstancesReplicated,
                                              int feedbackInstanceCount,
                                              boolean allInputToFeedbackInstancesReplicated,
                                              int inputToFeedbackInstanceCount,
                                              boolean allFeedbackOutputInstancesReplicated,
                                              int feedbackOutputInstanceCount,
                                              boolean allFeedForwardInstancesReplicated,
                                              int feedForwardInstanceCount)
Creates an array representing the replication status of the partial NMR selection based on the different NMR sections.

Parameters:
replicationStatus -
allFeedbackInstancesReplicated -
feedbackInstanceCount -
allInputToFeedbackInstancesReplicated -
inputToFeedbackInstanceCount -
allFeedbackOutputInstancesReplicated -
feedbackOutputInstanceCount -
allFeedForwardInstancesReplicated -
feedForwardInstanceCount -

getInputGroups

protected static java.util.List getInputGroups(java.util.Collection groups,
                                               java.util.Collection visitedGroups,
                                               EdifCellInstanceCollectionGraph groupConn,
                                               int type)
Collapse the input of the given InstanceGroup objects using the collapse type specified.

Returns:
A List of "atomic" Sets of EdifCellInstances

getInputGroupsDepthFirstOneString

protected static java.util.List getInputGroupsDepthFirstOneString(java.util.Collection groups,
                                                                  java.util.Collection visitedGroups,
                                                                  EdifCellInstanceCollectionGraph groupConn)
When no more input can be added, this method will return null.

Parameters:
group -
groupConn -
Returns:
An ordered List of EdifCellInstanceCollection objects, which contain EdifCellInstance objects

getInputGroupsBreadthDepthFirstOneLevel

protected static java.util.List getInputGroupsBreadthDepthFirstOneLevel(java.util.Collection groups,
                                                                        java.util.Collection visitedGroups,
                                                                        EdifCellInstanceCollectionGraph groupConn)
When no more input can be added, this method will return null.

Parameters:
group -
groupConn -
Returns:
An ordered List of EdifCellInstanceCollection objects, which contain EdifCellInstance objects

getInputGroupsBreadthFirstOneLevel

protected static java.util.List getInputGroupsBreadthFirstOneLevel(java.util.Collection groups,
                                                                   java.util.Collection visitedGroups,
                                                                   EdifCellInstanceCollectionGraph groupConn)
This method grabs the predecessor groups of the given Collection of groups. It returns a List of groups that should be the next "groups" parameter passed to this method, if the breadth-first search is to continue.

When no more input can be added, this method will return null.

Parameters:
group -
groupConn -
Returns:
An ordered List of EdifCellInstanceCollection objects, which contain EdifCellInstance objects. The order of the List, in this case, is random.

getInputOrOutputGroupsOneString

protected static java.util.List getInputOrOutputGroupsOneString(java.util.Collection startGroups,
                                                                java.util.Collection visitedGroups,
                                                                EdifCellInstanceCollectionGraph groupConn,
                                                                boolean doInput,
                                                                boolean type)
This is a helper method for the depth-first collapse. It keeps track of the EdifCellInstances to use as "startECI" parameters to the real method, so the caller doesn't have to keep track of them.

The startGroups parameter is only used the first time this method is called. It is ignored until the DFS has finished or _startGroupsIter has been reset to null.

Parameters:
type1 - The type of collapse to perform
Returns:
A List of "atomic" Sets of EdifCellInstances

getOutputGroups

protected static java.util.List getOutputGroups(java.util.Collection groups,
                                                java.util.Collection visitedGroups,
                                                EdifCellInstanceCollectionGraph groupConn,
                                                int type)
Collapse the output of the given InstanceGroup using the type specified.

Returns:
A List of "atomic" Sets of EdifCellInstances

getOutputGroupsDepthFirstOneString

protected static java.util.List getOutputGroupsDepthFirstOneString(java.util.Collection groups,
                                                                   java.util.Collection visitedGroups,
                                                                   EdifCellInstanceCollectionGraph groupConn)
When no more output can be added, this method will return null.

Parameters:
group -
groupConn -
Returns:
An ordered List of EdifCellInstanceCollection objects, which contain EdifCellInstance objects

getOutputGroupsBreadthDepthFirstOneLevel

protected static java.util.List getOutputGroupsBreadthDepthFirstOneLevel(java.util.Collection groups,
                                                                         java.util.Collection visitedGroups,
                                                                         EdifCellInstanceCollectionGraph groupConn)
When no more output can be added, this method will return null.

Parameters:
group -
groupConn -
Returns:
An ordered List of EdifCellInstanceCollection objects, which contain EdifCellInstance objects

getOutputGroupsBreadthFirstOneLevel

protected static java.util.List getOutputGroupsBreadthFirstOneLevel(java.util.Collection groups,
                                                                    java.util.Collection visitedGroups,
                                                                    EdifCellInstanceCollectionGraph groupConn)
This method grabs the successor groups of the given Collection of groups. It returns a List of groups that should be the next "groups" parameter passed to this method, if the breadth-first search is to continue.

When no more output can be added, this method will return null.

Parameters:
group -
groupConn -
Returns:
An ordered List of EdifCellInstanceCollection objects, which contain EdifCellInstance objects. The order of the List, in this case, is random.

initGetGroups

protected static void initGetGroups()

nmrInputOrOutputGroups

protected static boolean nmrInputOrOutputGroups(EdifCellInstanceCollectionGraph groupConn,
                                                ReplicationUtilizationTracker resourceTracker,
                                                int additionType,
                                                boolean doInput,
                                                java.util.HashSet visitedGroups,
                                                java.util.List groupsToNMR,
                                                ReplicationType replicationType,
                                                boolean override)
                                         throws OverutilizationEstimatedStopException
Parameters:
groupConn -
resourceTracker -
additionType -
doInput -
visitedGroups -
groupsToNMR -
Returns:
Status of replication: true if ALL instance were replicated, false if some were skipped or wouldn't fit.
Throws:
OverutilizationEstimatedStopException

main

public static void main(java.lang.String[] args)
                 throws OverutilizationException
Throws:
OverutilizationException

msToString

public static java.lang.String msToString(long milliseconds)