A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
mapping.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
New stable version with the add of the Maheve algorithm.
[mapping.git]
/
src
/
and
/
Mapping
/
Cluster.java
diff --git
a/src/and/Mapping/Cluster.java
b/src/and/Mapping/Cluster.java
index
4d59d3d
..
712f17c
100644
(file)
--- a/
src/and/Mapping/Cluster.java
+++ b/
src/and/Mapping/Cluster.java
@@
-14,12
+14,11
@@
public class Cluster implements Serializable
{
private static final long serialVersionUID = 1L;
-// private int nb_node ;
private String name ;
private ArrayList<GNode> nodes ;
private ArrayList<GNode> freenodes ;
private String site ;
-
// private int indic
e ;
+
private int moreNod
e ;
/**
@@
-27,56
+26,14
@@
public class Cluster implements Serializable
*/
public Cluster()
{
-// nb_node = 0 ;
name = "" ;
nodes = new ArrayList<GNode>() ;
freenodes = new ArrayList<GNode>() ;
site = "" ;
-
// indic
e = 0 ;
+
moreNod
e = 0 ;
}
-// /**
-// * Constructor.
-// * @param _nb The amount of computing nodes in the cluster
-// */
-// public Cluster( int _nb )
-// {
-// nb_node = _nb ;
-// name = "" ;
-// nodes = new ArrayList<GNode>() ;
-// freenodes = new ArrayList<GNode>() ;
-// site = "" ;
-//// indice = 0 ;
-//
-//
-// for( int i = 0 ; i < nb_node ; i++ )
-// {
-// nodes.add( new GNode() ) ;
-// }
-// }
-
-
-// /**
-// * Constructor.
-// * @param _nb The amount of computing nodes in the cluster
-// * @param _name Cluster's name
-// */
-// public Cluster( int _nb, String _name )
-// {
-//// nb_node = _nb ;
-// name = _name ;
-// nodes = new ArrayList<GNode>() ;
-// site = "" ;
-//// indice = 0 ;
-//
-// for( int i = 0 ; i < nb_node ; i++ )
-// {
-// nodes.add( new GNode() ) ;
-// }
-// }
-
-
/**
* Set the name of the cluster.
* @param _name Cluster's name
@@
-98,8
+55,6
@@
public class Cluster implements Serializable
_n.setInCluster( true ) ;
nodes.add( _n ) ;
-// nb_node++ ;
-
if( ! _n.getMapped() )
{
freenodes.add( _n ) ;
@@
-134,7
+89,6
@@
public class Cluster implements Serializable
*/
public int getNbGNode()
{
-// return nb_node ;
return nodes.size() ;
}
@@
-184,29
+138,14
@@
public class Cluster implements Serializable
return pos ;
}
-// /**
-// * Initialization of indice variable.
-// */
-// public void initIndice()
-// {
-// indice = 0 ;
-// }
-
-
/**
- * Return the next computing node in the cluster,
- * according to the indice variable.
+ * Return the next available computing node in the cluster.
* @return The next node in the cluster
*/
public GNode nextGNode()
{
GNode ret = null ;
-// if( indice < nb_node )
-// {
-// ret = nodes.get( indice ) ;
-// indice++ ;
-// }
if( freenodes.size() > 0 )
{
ret = freenodes.get( 0 ) ;
@@
-214,6
+153,30
@@
public class Cluster implements Serializable
return ret ;
}
+
+
+ /**
+ * Return the next available computing node in the cluster,
+ * according to the moreNode iterator.
+ * @return The next node in the cluster
+ */
+ public GNode moreGNode()
+ {
+ GNode ret = null ;
+
+ if( freenodes.size() > 0 )
+ {
+ if( moreNode >= freenodes.size() )
+ {
+ moreNode = 0 ;
+ }
+
+ ret = freenodes.get( moreNode ) ;
+ moreNode++ ;
+ }
+
+ return ret ;
+ }
/**
@@
-222,18
+185,40
@@
public class Cluster implements Serializable
*/
public void removeGNode( GNode _dead )
{
- if( _dead != null
&& _dead.getCluster().equals( name ) && _dead.getSite().equals( site )
)
+ if( _dead != null )
{
-
for( int i = 0 ; i < nodes.size() ; i++
)
+
if( _dead.getCluster().equals( name ) && _dead.getSite().equals( site )
)
{
- if( _dead.getId() == nodes.get( i ).getId() )
+ int i = 0 ;
+ for( i = 0 ; i < nodes.size() ; i++ )
{
- freenodes.remove( nodes.remove( i ) ) ;
-// nb_node-- ;
-
- break ;
+ if( _dead.getId() == nodes.get( i ).getId() )
+ {
+ nodes.remove( i ) ;
+
+ int j = 0 ;
+ for( j = 0 ; j < freenodes.size() ; j++ )
+ {
+ if( freenodes.get(j).getId() == _dead.getId() )
+ {
+ freenodes.remove( j ) ;
+ break ;
+ }
+ }
+
+ break ;
+ }
}
+
+ if( i > nodes.size() )
+ {
+ System.err.println( "(Cluster) The GNode was not found in the list!" );
+ }
+ } else {
+ System.err.println( "(Cluster) The GNode to be deleted is not mine!" ) ;
}
+ } else {
+ System.err.println( "(Cluster) The GNode to be deleted is null!" ) ;
}
}
@@
-255,7
+240,15
@@
public class Cluster implements Serializable
if( _status )
{
- freenodes.remove( nodes.get(i) ) ;
+ for( int j = 0 ; j < freenodes.size() ; j++ )
+ {
+ if( freenodes.get(j).getId() == nodes.get(i).getId() )
+ {
+ freenodes.remove( j ) ;
+ break ;
+ }
+ }
+
} else {
if( ! freenodes.contains( nodes.get( i ) ) )
freenodes.add( nodes.get( i ) ) ;
@@
-279,29
+272,19
@@
public class Cluster implements Serializable
/**
* Compute and return the real available computing power of the cluster,
* including the heterogeneity degree of the platform.
- * @param _het The heterogeneity degree of the platform
* @return The real available computing power
*/
- public double getAvailablePower(
double _het
)
+ public double getAvailablePower()
{
double ret = 0 ;
/** If there is some available nodes **/
if( freenodes.size() > 0 )
- {
- double het = _het ;
- double totalPower = 0 ;
-
- if( het == 0 )
- het = 0.00001 ;
-
+ {
for( int i = 0 ; i < freenodes.size() ; i++ )
{
-
totalPower
+= freenodes.get( i ).getPower() ;
+
ret
+= freenodes.get( i ).getPower() ;
}
-
- ret = Math.pow( ( totalPower / freenodes.size() ), ( 2 * het) ) *
- ( freenodes.size() / ( het * het) ) ;
}
return ret ;