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 )
39 name = "DefaultMapping" ;
47 /** If the mapping is possible ... **/
48 if( gr.getNbGTask() <= gl.getNbGNode() )
50 atraiter = gr.getGraph() ;
51 archi = gl.getFreeGNodes() ;
54 System.out.println( "*******************************************" ) ;
55 System.out.println( "* Launching the Default Mapping algorithm *" ) ;
56 System.out.println( "*******************************************\n\n" ) ;
58 /** Save the Mapping **/
59 for( int i = 0 ; i < atraiter.size() ; i++ )
61 Random r = new Random() ;
62 int ret = r.nextInt( archi.size() ) ;
63 mp.addMapping( archi.remove( ret ), atraiter.get( i ) ) ;
67 System.err.println( "\n\n!!! Unable to map application !\n\n" ) ;
73 public GNode replaceNode( GNode _dead, ArrayList<GNode> _ag )
77 if( _dead != null && _ag != null )
80 pos = mp.getIdOfAssociation( _dead ) ;
84 System.err.println( "GNode "+_dead+" does not exist in the mapping!" ) ;
90 Random r = new Random() ;
91 ret = _ag.get( r.nextInt( _ag.size() ) ) ;
94 System.err.println( "Not enought available nodes in gnodes to replace one !" ) ;
106 public GNode getOtherGNode( ArrayList<GNode> _ag )
108 /** Returning the first node in the list **/
111 return _ag.get( 0 ) ;
119 public boolean setParams(Object[] _params) {
126 /** La programmation est un art, respectons ceux qui la pratiquent !! **/