4 import java.util.ArrayList;
5 import java.util.Random;
9 * Implementation of JaceP2P default mapping
10 * @author Sébastien Miquée
13 public class DefaultMapping extends Algo
15 private static final long serialVersionUID = 1L;
18 private ArrayList<GTask> atraiter ;
19 private ArrayList<GNode> archi ;
22 * Default constructor.
24 public DefaultMapping()
27 name = "DefaultMapping" ;
33 * @param _gr Tasks graph to be mapped
34 * @param _gd Grid graph
36 public DefaultMapping( Graph _gr, Grid _gd, ArrayList<GNode> _gnodes )
40 name = "DefaultMapping" ;
48 /** If the mapping is possible ... **/
49 if( gr.getNbGTask() <= gl.getNbGNode() )
51 atraiter = gr.getGraph() ;
53 System.out.println( "*******************************************" ) ;
54 System.out.println( "* Launching the Default Mapping algorithm *" ) ;
55 System.out.println( "*******************************************\n\n" ) ;
57 /** Save the Mapping **/
58 for( int i = 0 ; i < atraiter.size() ; i++ )
60 mp.addMapping( new Association( archi.get( i ), atraiter.get( i ) ) ) ;
64 System.err.println( "\n\n!!! Unable to map application !\n\n" ) ;
70 public GNode replaceNode( GNode _dead, ArrayList<GNode> _ag )
74 if( _dead != null && _ag != null )
77 pos = mp.getIdOfAssociation( _dead ) ;
81 System.err.println( "GNode "+_dead+" does not exist in the mapping!" ) ;
87 Random r = new Random() ;
88 ret = _ag.get( r.nextInt( _ag.size() ) ) ;
91 System.err.println( "Not enought available nodes in gnodes to replace one !" ) ;
103 public GNode getOtherGNode( ArrayList<GNode> _ag )
105 /** Returning the first node in the list **/
108 return _ag.get( 0 ) ;
117 /** La programmation est un art, respectons ceux qui la pratiquent !! **/