Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Implementation of new functions.
[mapping.git] / src / and / Mapping / Cluster.java
index 39c48bd..4d59d3d 100644 (file)
@@ -274,6 +274,38 @@ public class Cluster implements Serializable
        {
                return freenodes.size() ;
        }
+       
+       
+       /**
+        * 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 )
+       {
+               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 = Math.pow( ( totalPower / freenodes.size() ), ( 2 * het) ) *
+                             ( freenodes.size() / ( het * het) ) ;
+               }
+               
+               return ret ;
+       }
 
 
        /**