You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(7) |
Oct
(2) |
Nov
|
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(2) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
(3) |
Jul
(3) |
Aug
|
Sep
(14) |
Oct
(1) |
Nov
(3) |
Dec
(2) |
2009 |
Jan
|
Feb
(21) |
Mar
(2) |
Apr
(6) |
May
(1) |
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(4) |
Nov
(1) |
Dec
|
2010 |
Jan
(2) |
Feb
(5) |
Mar
(5) |
Apr
(17) |
May
|
Jun
(1) |
Jul
|
Aug
(2) |
Sep
(4) |
Oct
(1) |
Nov
(2) |
Dec
|
2011 |
Jan
(4) |
Feb
(7) |
Mar
(3) |
Apr
(3) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
(1) |
Mar
(5) |
Apr
(7) |
May
(4) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
(1) |
Mar
|
Apr
(10) |
May
(1) |
Jun
(1) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
|
Sep
|
Oct
|
Nov
(3) |
Dec
(2) |
2015 |
Jan
|
Feb
(1) |
Mar
(1) |
Apr
(3) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(2) |
Aug
|
Sep
(4) |
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Dario <da...@gm...> - 2009-03-19 20:23:47
|
Hi all! I'm Dario, I just subscribed in this Mailing lists. Few time ago I started to make some research regarding gridsim. I would like to start a work regarding gridsim, in particular I would like to implement a new algorithm for resource discovery and path selection in gridsim inspired on ant colony. Do you think that it could be implemented? do you have any tips? Many thanks Dario |
From: Mohamed A. B. <bel...@ya...> - 2009-02-17 23:05:48
|
Hi all, I am new to GridSim. I went through the included examples. However, I could not find an example how to express Gridlet dependency: i.e: how to say to GridSim that a Gridlet execution can happen open after one or muliple Gridlets are executed successfully. Any pointer will be helpull. Thanks Amine |
From: ye h. <hua...@gm...> - 2009-02-17 10:18:59
|
Hi, Marcos: Thanks a lot, that's clear enough for me now!! Regards ye On 17 Feb, 2009, at 7:20 AM, Marcos Dias de Assuncao wrote: > > Hi Ye, > > As I said in another e-mail, if you don't finalise the simulation > properly, the error messages you get may not have anything to do > with the actual mistake. In fact, SimJava2 has a strange design in > which they made all the entities as threads, it simplifies the > programming but compromises debugging and troubleshooting. > > By the way, Sim_system.running() will always be true if you don't > shutdown all the user entities. > > Regards, > > Marcos > > > On 17/02/2009, at 12:01 AM, ye huang wrote: > >> Hi, Marcos: >> Thanks for help! >> >> I am sorry, the "resubmit" should be erased from the demo, so do the >> following code: >> --- --- --- >> if(resubmit) { >> LinkedList ll = createGridlet( this.ID_.intValue() ); >> for(int k = 0; k < ll.size(); k++) { >> this.list_.addLast(ll.get(k)); >> } >> >> resubmit = false; >> } >> --- --- --- >> they are not the point. >> >> >> You are right, the LOOP while should be finished with the following >> code to exit properly. >> --- --- --- >> if(receiveList_.size() == list_.size()) { >> break; >> } >> --- --- --- >> >> >> However, I mean to ignore the code to check the wired print result. >> If >> the above loop-exit code is NOT attached, I understand the while() >> could exit properly, but why I got the following print: >> >> --- --- --- >> ... ... ... exit gridlet submiting loop >> Sim_system: No more future events >> Gathering simulation data. >> ... ... ... to exit gridsim >> >> ========== [OUTPUT:] ========== >> Gridlet ID STATUS Resource ID Cost >> 0 SUCCESS 5 27.851458885941653 >> 1 SUCCESS 5 39.787798408488065 >> 2 SUCCESS 5 71.61803713527851 >> 2 SUCCESS 5 71.61803713527851 >> Resource_0: Warning - Gridlet #2 owned by Example041 is already >> completed/finished. >> Therefore, it is not being executed again >> >> --- --- --- >> >> It seems the gridlet #2 is resubmitted again to the GridResource >> after >> its status had been changed to "Success". >> Also, you can see the Sim_system.running() has caught the duplicate >> returned Gridlet and prints two lines: >> >> 2 SUCCESS 5 71.61803713527851 >> >> >> I mean, even the while() loop can't exit properly(keep monitoring >> incoming events), why there is a duplicate gridlet submit/return >> message? >> >> Regards >> ye >> >> On 16 Feb, 2009, at 1:23 PM, Marcos Dias de Assuncao wrote: >> >>> >>> Hi Ye, >>> >>> Please change this part of the code: >>> >>> --------------------------------- >>> if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ >>> gridlet = (Gridlet) ev.get_data(); >>> super.recordStatistics("[ticking]: Received grildet: " + >>> gridlet.getGridletID() + " from " + >>> resourceName + "\"", >>> gridlet.getProcessingCost()); >>> >>> // stores the received Gridlet into a new GridletList >>> object >>> this.receiveList_.add(gridlet); >>> } >>> --------------------------------- >>> to: >>> --------------------------------- >>> if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ >>> gridlet = (Gridlet) ev.get_data(); >>> super.recordStatistics("[ticking]: Received grildet: " + >>> gridlet.getGridletID() + " from " + >>> resourceName + "\"", >>> gridlet.getProcessingCost()); >>> >>> // stores the received Gridlet into a new GridletList >>> object >>> this.receiveList_.add(gridlet); >>> >>> if(receiveList_.size() == list_.size()) { >>> break; >>> } >>> } >>> --------------------------------- >>> >>> Otherwise your simulation will never end and you will get those >>> errors. Also, I am sorry, but I could not understand what you want >>> to do in this part of the code: >>> >>> ------------------------------- >>> boolean resubmit = true; >>> >>> // a loop to get one Gridlet at one time and sends it to a >>> grid >>> // resource entity. Then waits for a reply >>> for (int i = 0; i < this.list_.size(); i++) >>> { >>> gridlet = (Gridlet) this.list_.get(i); >>> info = "Gridlet_" + gridlet.getGridletID(); >>> >>> System.out.println("Sending: " + info + " to " + >>> resourceName + >>> " with id = " + resourceID); >>> >>> // Sends one Gridlet to a grid resource specified in >>> "resourceID" >>> // super.gridletSubmit(gridlet, resourceID); >>> >>> // OR another approach to send a gridlet to a grid >>> resource entity >>> super.send(resourceID, GridSimTags.SCHEDULE_NOW, >>> GridSimTags.GRIDLET_SUBMIT, gridlet); >>> >>> if(resubmit) { >>> LinkedList ll = createGridlet( this.ID_.intValue() ); >>> for(int k = 0; k < ll.size(); k++) { >>> this.list_.addLast(ll.get(k)); >>> } >>> >>> resubmit = false; >>> } >>> >>> ---------------------- >>> >>> resubmit will be true initially, which will make "inkedList ll = >>> createGridlet( this.ID_.intValue() );" create a new list of gridlets >>> with the same ids of the gridlets that are already in list_. >>> >>> Regards, >>> >>> Marcos >>> >>> >>> On 16/02/2009, at 7:40 PM, ye wrote: >>> >>>> <Example041.java> >>> >>> Marcos Dias de Assuncao >>> Grid Computing and Distributed Systems (GRIDS) Laboratory >>> Department of Computer Science and Software Engineering >>> The University of Melbourne, Australia >>> Email: ma...@cs... >>> >>> ------------- >>> "It is well enough that people of the nation do not understand our >>> banking and monetary system, for if they did, I believe there would >>> be a revolution before tomorrow morning." >>> >>> Henry Ford >>> >> >> >> -- >> >> Ye Huang, Department of Informatics >> University of Fribourg / Pérolles 2 - Bld de Pérolles 90 >> 1700 Fribourg, Switzerland >> >> e-mail: ye....@he..., ye....@un... >> http://diuf.unifr.ch/people/huangy/ >> Office: +41 26 429 65 95 >> >> >> >> >> ------------------------------------------------------------------------------ >> Open Source Business Conference (OSBC), March 24-25, 2009, San >> Francisco, CA >> -OSBC tackles the biggest issue in open source: Open Sourcing the >> Enterprise >> -Strategies to boost innovation and cut costs with open source >> participation >> -Receive a $600 discount off the registration fee with the source >> code: SFAD >> http://p.sf.net/sfu/XcvMzF8H >> _______________________________________________ >> Gridsim-developers mailing list >> Gri...@li... >> https://lists.sourceforge.net/lists/listinfo/gridsim-developers > > Marcos Dias de Assuncao > Grid Computing and Distributed Systems (GRIDS) Laboratory > Department of Computer Science and Software Engineering > The University of Melbourne, Australia > Email: ma...@cs... > > ------------- > "It is well enough that people of the nation do not understand our > banking and monetary system, for if they did, I believe there would > be a revolution before tomorrow morning." > > Henry Ford > -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: Marcos D. de A. <ma...@cs...> - 2009-02-17 06:21:21
|
Hi Ye, As I said in another e-mail, if you don't finalise the simulation properly, the error messages you get may not have anything to do with the actual mistake. In fact, SimJava2 has a strange design in which they made all the entities as threads, it simplifies the programming but compromises debugging and troubleshooting. By the way, Sim_system.running() will always be true if you don't shutdown all the user entities. Regards, Marcos On 17/02/2009, at 12:01 AM, ye huang wrote: > Hi, Marcos: > Thanks for help! > > I am sorry, the "resubmit" should be erased from the demo, so do the > following code: > --- --- --- > if(resubmit) { > LinkedList ll = createGridlet( this.ID_.intValue() ); > for(int k = 0; k < ll.size(); k++) { > this.list_.addLast(ll.get(k)); > } > > resubmit = false; > } > --- --- --- > they are not the point. > > > You are right, the LOOP while should be finished with the following > code to exit properly. > --- --- --- > if(receiveList_.size() == list_.size()) { > break; > } > --- --- --- > > > However, I mean to ignore the code to check the wired print result. If > the above loop-exit code is NOT attached, I understand the while() > could exit properly, but why I got the following print: > > --- --- --- > ... ... ... exit gridlet submiting loop > Sim_system: No more future events > Gathering simulation data. > ... ... ... to exit gridsim > > ========== [OUTPUT:] ========== > Gridlet ID STATUS Resource ID Cost > 0 SUCCESS 5 27.851458885941653 > 1 SUCCESS 5 39.787798408488065 > 2 SUCCESS 5 71.61803713527851 > 2 SUCCESS 5 71.61803713527851 > Resource_0: Warning - Gridlet #2 owned by Example041 is already > completed/finished. > Therefore, it is not being executed again > > --- --- --- > > It seems the gridlet #2 is resubmitted again to the GridResource after > its status had been changed to "Success". > Also, you can see the Sim_system.running() has caught the duplicate > returned Gridlet and prints two lines: > > 2 SUCCESS 5 71.61803713527851 > > > I mean, even the while() loop can't exit properly(keep monitoring > incoming events), why there is a duplicate gridlet submit/return > message? > > Regards > ye > > On 16 Feb, 2009, at 1:23 PM, Marcos Dias de Assuncao wrote: > >> >> Hi Ye, >> >> Please change this part of the code: >> >> --------------------------------- >> if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ >> gridlet = (Gridlet) ev.get_data(); >> super.recordStatistics("[ticking]: Received grildet: " + >> gridlet.getGridletID() + " from " + >> resourceName + "\"", >> gridlet.getProcessingCost()); >> >> // stores the received Gridlet into a new GridletList >> object >> this.receiveList_.add(gridlet); >> } >> --------------------------------- >> to: >> --------------------------------- >> if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ >> gridlet = (Gridlet) ev.get_data(); >> super.recordStatistics("[ticking]: Received grildet: " + >> gridlet.getGridletID() + " from " + >> resourceName + "\"", >> gridlet.getProcessingCost()); >> >> // stores the received Gridlet into a new GridletList >> object >> this.receiveList_.add(gridlet); >> >> if(receiveList_.size() == list_.size()) { >> break; >> } >> } >> --------------------------------- >> >> Otherwise your simulation will never end and you will get those >> errors. Also, I am sorry, but I could not understand what you want >> to do in this part of the code: >> >> ------------------------------- >> boolean resubmit = true; >> >> // a loop to get one Gridlet at one time and sends it to a >> grid >> // resource entity. Then waits for a reply >> for (int i = 0; i < this.list_.size(); i++) >> { >> gridlet = (Gridlet) this.list_.get(i); >> info = "Gridlet_" + gridlet.getGridletID(); >> >> System.out.println("Sending: " + info + " to " + >> resourceName + >> " with id = " + resourceID); >> >> // Sends one Gridlet to a grid resource specified in >> "resourceID" >> // super.gridletSubmit(gridlet, resourceID); >> >> // OR another approach to send a gridlet to a grid >> resource entity >> super.send(resourceID, GridSimTags.SCHEDULE_NOW, >> GridSimTags.GRIDLET_SUBMIT, gridlet); >> >> if(resubmit) { >> LinkedList ll = createGridlet( this.ID_.intValue() ); >> for(int k = 0; k < ll.size(); k++) { >> this.list_.addLast(ll.get(k)); >> } >> >> resubmit = false; >> } >> >> ---------------------- >> >> resubmit will be true initially, which will make "inkedList ll = >> createGridlet( this.ID_.intValue() );" create a new list of gridlets >> with the same ids of the gridlets that are already in list_. >> >> Regards, >> >> Marcos >> >> >> On 16/02/2009, at 7:40 PM, ye wrote: >> >>> <Example041.java> >> >> Marcos Dias de Assuncao >> Grid Computing and Distributed Systems (GRIDS) Laboratory >> Department of Computer Science and Software Engineering >> The University of Melbourne, Australia >> Email: ma...@cs... >> >> ------------- >> "It is well enough that people of the nation do not understand our >> banking and monetary system, for if they did, I believe there would >> be a revolution before tomorrow morning." >> >> Henry Ford >> > > > -- > > Ye Huang, Department of Informatics > University of Fribourg / Pérolles 2 - Bld de Pérolles 90 > 1700 Fribourg, Switzerland > > e-mail: ye....@he..., ye....@un... > http://diuf.unifr.ch/people/huangy/ > Office: +41 26 429 65 95 > > > > > ---------------------------------------------------------------------- > -------- > Open Source Business Conference (OSBC), March 24-25, 2009, San > Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source > code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Gridsim-developers mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-developers Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: Giancarlo <wro...@gm...> - 2009-02-16 14:28:09
|
Hi Marcos, Thank you very much for your answer. > The problem is that each entity in GridSim is a thread. Simjava2 works > with two event queues, namely the future event queue and the deferred > event queue. Every time Sim_system class reads the queue of future > events (i.e. at each clock tick), it puts all the next events to be > handles in the deferred queue. If there are multiple events scheduled > for the very same simulation time, they will all be placed in the > deferred queue. After that, Sim_system wakes up all the threads to > consume events. I take a look at the code of simjava and I have another little question about the mechanism you have described, perhaps it's rather a confirmation Running entities will not block on sim_get_next until they have an event waiting for them in the deferred queue. But an event scheduled with delay 0.0 by an entity during a tick run will be put in the future event. So the destination entity for the above event will block on sim_get_next and will see the event after next run of Sim_system.run_tick() method. Is this correct? > Yes, this is a bug and you are not the first one to experience this > problem. I think people had not noticed it before because they were > using Java 1.4. One solution to this problem would consist in making > GridResource send an event to the policy instead of calling a method > from it. By the way, this is the approach suggested in SimJava2's > documentation. The other solution, if you are using the the source > code of GridSim instead of the jar files, is to add some > synchronisation to the allocation policy. I already know about the bug, I was just wondering why the problem wasn't arising if the send with a port was used. Thanks again, Regards, Giancarlo |
From: ye h. <hua...@gm...> - 2009-02-16 13:01:41
|
Hi, Marcos: Thanks for help! I am sorry, the "resubmit" should be erased from the demo, so do the following code: --- --- --- if(resubmit) { LinkedList ll = createGridlet( this.ID_.intValue() ); for(int k = 0; k < ll.size(); k++) { this.list_.addLast(ll.get(k)); } resubmit = false; } --- --- --- they are not the point. You are right, the LOOP while should be finished with the following code to exit properly. --- --- --- if(receiveList_.size() == list_.size()) { break; } --- --- --- However, I mean to ignore the code to check the wired print result. If the above loop-exit code is NOT attached, I understand the while() could exit properly, but why I got the following print: --- --- --- ... ... ... exit gridlet submiting loop Sim_system: No more future events Gathering simulation data. ... ... ... to exit gridsim ========== [OUTPUT:] ========== Gridlet ID STATUS Resource ID Cost 0 SUCCESS 5 27.851458885941653 1 SUCCESS 5 39.787798408488065 2 SUCCESS 5 71.61803713527851 2 SUCCESS 5 71.61803713527851 Resource_0: Warning - Gridlet #2 owned by Example041 is already completed/finished. Therefore, it is not being executed again --- --- --- It seems the gridlet #2 is resubmitted again to the GridResource after its status had been changed to "Success". Also, you can see the Sim_system.running() has caught the duplicate returned Gridlet and prints two lines: 2 SUCCESS 5 71.61803713527851 I mean, even the while() loop can't exit properly(keep monitoring incoming events), why there is a duplicate gridlet submit/return message? Regards ye On 16 Feb, 2009, at 1:23 PM, Marcos Dias de Assuncao wrote: > > Hi Ye, > > Please change this part of the code: > > --------------------------------- > if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ > gridlet = (Gridlet) ev.get_data(); > super.recordStatistics("[ticking]: Received grildet: " + > gridlet.getGridletID() + " from " + > resourceName + "\"", > gridlet.getProcessingCost()); > > // stores the received Gridlet into a new GridletList > object > this.receiveList_.add(gridlet); > } > --------------------------------- > to: > --------------------------------- > if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ > gridlet = (Gridlet) ev.get_data(); > super.recordStatistics("[ticking]: Received grildet: " + > gridlet.getGridletID() + " from " + > resourceName + "\"", > gridlet.getProcessingCost()); > > // stores the received Gridlet into a new GridletList > object > this.receiveList_.add(gridlet); > > if(receiveList_.size() == list_.size()) { > break; > } > } > --------------------------------- > > Otherwise your simulation will never end and you will get those > errors. Also, I am sorry, but I could not understand what you want > to do in this part of the code: > > ------------------------------- > boolean resubmit = true; > > // a loop to get one Gridlet at one time and sends it to a grid > // resource entity. Then waits for a reply > for (int i = 0; i < this.list_.size(); i++) > { > gridlet = (Gridlet) this.list_.get(i); > info = "Gridlet_" + gridlet.getGridletID(); > > System.out.println("Sending: " + info + " to " + > resourceName + > " with id = " + resourceID); > > // Sends one Gridlet to a grid resource specified in > "resourceID" > // super.gridletSubmit(gridlet, resourceID); > > // OR another approach to send a gridlet to a grid > resource entity > super.send(resourceID, GridSimTags.SCHEDULE_NOW, > GridSimTags.GRIDLET_SUBMIT, gridlet); > > if(resubmit) { > LinkedList ll = createGridlet( this.ID_.intValue() ); > for(int k = 0; k < ll.size(); k++) { > this.list_.addLast(ll.get(k)); > } > > resubmit = false; > } > > ---------------------- > > resubmit will be true initially, which will make "inkedList ll = > createGridlet( this.ID_.intValue() );" create a new list of gridlets > with the same ids of the gridlets that are already in list_. > > Regards, > > Marcos > > > On 16/02/2009, at 7:40 PM, ye wrote: > >> <Example041.java> > > Marcos Dias de Assuncao > Grid Computing and Distributed Systems (GRIDS) Laboratory > Department of Computer Science and Software Engineering > The University of Melbourne, Australia > Email: ma...@cs... > > ------------- > "It is well enough that people of the nation do not understand our > banking and monetary system, for if they did, I believe there would > be a revolution before tomorrow morning." > > Henry Ford > -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: Marcos D. de A. <ma...@cs...> - 2009-02-16 12:24:02
|
Hi Ye, Please change this part of the code: --------------------------------- if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ gridlet = (Gridlet) ev.get_data(); super.recordStatistics("[ticking]: Received grildet: " + gridlet.getGridletID() + " from " + resourceName + "\"", gridlet.getProcessingCost()); // stores the received Gridlet into a new GridletList object this.receiveList_.add(gridlet); } --------------------------------- to: --------------------------------- if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ gridlet = (Gridlet) ev.get_data(); super.recordStatistics("[ticking]: Received grildet: " + gridlet.getGridletID() + " from " + resourceName + "\"", gridlet.getProcessingCost()); // stores the received Gridlet into a new GridletList object this.receiveList_.add(gridlet); if(receiveList_.size() == list_.size()) { break; } } --------------------------------- Otherwise your simulation will never end and you will get those errors. Also, I am sorry, but I could not understand what you want to do in this part of the code: ------------------------------- boolean resubmit = true; // a loop to get one Gridlet at one time and sends it to a grid // resource entity. Then waits for a reply for (int i = 0; i < this.list_.size(); i++) { gridlet = (Gridlet) this.list_.get(i); info = "Gridlet_" + gridlet.getGridletID(); System.out.println("Sending: " + info + " to " + resourceName + " with id = " + resourceID); // Sends one Gridlet to a grid resource specified in "resourceID" // super.gridletSubmit(gridlet, resourceID); // OR another approach to send a gridlet to a grid resource entity super.send(resourceID, GridSimTags.SCHEDULE_NOW, GridSimTags.GRIDLET_SUBMIT, gridlet); if(resubmit) { LinkedList ll = createGridlet( this.ID_.intValue() ); for(int k = 0; k < ll.size(); k++) { this.list_.addLast(ll.get(k)); } resubmit = false; } ---------------------- resubmit will be true initially, which will make "inkedList ll = createGridlet( this.ID_.intValue() );" create a new list of gridlets with the same ids of the gridlets that are already in list_. Regards, Marcos On 16/02/2009, at 7:40 PM, ye wrote: > <Example041.java> Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: ye <hua...@gm...> - 2009-02-16 08:40:54
|
Hi, Marcos: That's wired... Anyway, let me try the attachment again, together with the original code pasted. Hope it works! Regards ye On Mon, Feb 16, 2009 at 12:09 AM, Marcos Dias de Assuncao < ma...@cs...> wrote: > > Hi Ye, > > I am sorry, but I didn't receive any attachment. > > Cheers, > > Marcos > > > --- --- --- --- --- package Example04; /* * Author Anthony Sulistio * Date: April 2003 * Description: A simple program to demonstrate of how to use GridSim package. * This example shows how a grid user submits its Gridlets or * tasks to one grid resource entity. * * NOTE: The values used from this example are taken from the GridSim paper. * http://www.gridbus.org/gridsim/ * $Id: Example4.java,v 1.10 2005/09/19 06:04:21 anthony Exp $ */ import java.util.*; import eduni.simjava.Sim_event; import eduni.simjava.Sim_system; import gridsim.*; /** * Example4 class creates Gridlets and sends them to a grid resource entity */ class Example041 extends GridSim { private Integer ID_; private String name_; private GridletList list_; private GridletList receiveList_; /** * Allocates a new Example4 object * @param name the Entity name of this object * @param baud_rate the communication speed * @throws Exception This happens when creating this entity before * initializing GridSim package or the entity name is * <tt>null</tt> or empty * @see gridsim.GridSim#Init(int, Calendar, boolean, String[], String[], * String) */ Example041(String name, double baud_rate) throws Exception { super(name, baud_rate); this.name_ = name; this.receiveList_ = new GridletList(); // Gets an ID for this entity this.ID_ = new Integer( getEntityId(name) ); System.out.println("Creating a grid user entity with name = " + name + ", and id = " + this.ID_); // Creates a list of Gridlets or Tasks for this grid user this.list_ = createGridlet( this.ID_.intValue() ); System.out.println("Creating " + this.list_.size() + " Gridlets"); } /** * The core method that handles communications among GridSim entities. */ public void body() { int resourceID = 0; String resourceName; LinkedList resList; ResourceCharacteristics resChar; while (true) { super.gridSimHold(1.0); // hold by 1 second resList = super.getGridResourceList(); if (resList.size() > 0) { // in this example, we know that we only create one resource. // Resource list contains list of resource IDs not grid // resource objects. Integer num = (Integer) resList.get(0); resourceID = num.intValue(); // Requests to resource entity to send its characteristics super.send(resourceID, GridSimTags.SCHEDULE_NOW, GridSimTags.RESOURCE_CHARACTERISTICS, this.ID_); // waiting to get a resource characteristics resChar = (ResourceCharacteristics) super.receiveEventObject(); resourceName = resChar.getResourceName(); System.out.println(" >>> >>> >>> Received ResourceCharacteristics from " + resourceName + ", with id = " + resourceID + " and cost per second is " + resChar.getCostPerSec()); break; } else System.out.println("Waiting to get list of resources ..."); } Gridlet gridlet; String info; boolean resubmit = true; // a loop to get one Gridlet at one time and sends it to a grid // resource entity. Then waits for a reply for (int i = 0; i < this.list_.size(); i++) { gridlet = (Gridlet) this.list_.get(i); info = "Gridlet_" + gridlet.getGridletID(); System.out.println("Sending: " + info + " to " + resourceName + " with id = " + resourceID); // Sends one Gridlet to a grid resource specified in "resourceID" // super.gridletSubmit(gridlet, resourceID); // OR another approach to send a gridlet to a grid resource entity super.send(resourceID, GridSimTags.SCHEDULE_NOW, GridSimTags.GRIDLET_SUBMIT, gridlet); if(resubmit) { LinkedList ll = createGridlet( this.ID_.intValue() ); for(int k = 0; k < ll.size(); k++) { this.list_.addLast(ll.get(k)); } resubmit = false; } // // waiting to receive a Gridlet back from resource entity // gridlet = super.gridletReceive(); // System.out.println("Receiving Gridlet " + gridlet.getGridletID()); // // // Recods this event into "GridSim_stat.txt" file for statistical // // purposes // super.recordStatistics("\"Received " + info + " from " + // resourceName + "\"", gridlet.getProcessingCost()); // // // stores the received Gridlet into a new GridletList object // this.receiveList_.add(gridlet); } System.out.println("... ... ... exit gridlet submiting loop"); Sim_event ev = new Sim_event(); while (Sim_system.running()) { super.sim_get_next(ev); if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ gridlet = (Gridlet) ev.get_data(); super.recordStatistics("[ticking]: Received grildet: " + gridlet.getGridletID() + " from " + resourceName + "\"", gridlet.getProcessingCost()); // stores the received Gridlet into a new GridletList object this.receiveList_.add(gridlet); } if (ev.get_tag() == GridSimTags.END_OF_SIMULATION) { // if a continuous envrionment, the simulation may never be halted. } // process other event tags } System.out.println("... ... ... to exit gridsim"); printGridletList(this.receiveList_); // shut down all the entities, including GridStatistics entity since // we used it to record certain events. // super.shutdownGridStatisticsEntity(); super.shutdownUserEntity(); super.terminateIOEntities(); } /** * Gets the list of Gridlets * @return a list of Gridlets */ public GridletList getGridletList() { return this.receiveList_; } /** * This method will show you how to create Gridlets with and without * GridSimRandom class. * @param userID the user entity ID that owns these Gridlets * @return a GridletList object */ private GridletList createGridlet(int userID) { // Creates a container to store Gridlets GridletList list = new GridletList(); // We create three Gridlets or jobs/tasks manually without the help // of GridSimRandom int id = 0; double length = 3500.0; long file_size = 300; long output_size = 300; Gridlet gridlet1 = new Gridlet(id, length, file_size, output_size); id++; Gridlet gridlet2 = new Gridlet(id, 5000, 500, 500); id++; Gridlet gridlet3 = new Gridlet(id, 9000, 900, 900); // setting the owner of these Gridlets gridlet1.setUserID(userID); gridlet2.setUserID(userID); gridlet3.setUserID(userID); // Store the Gridlets into a list list.add(gridlet1); list.add(gridlet2); list.add(gridlet3); // // We create 5 Gridlets with the help of GridSimRandom and // // GriSimStandardPE class // long seed = 11L*13*17*19*23+1; // Random random = new Random(seed); // // // sets the PE MIPS Rating // GridSimStandardPE.setRating(100); // // // creates 5 Gridlets // int count = 5; // for (int i = 1; i < count+1; i++) // { // // the Gridlet length determines from random values and the // // current MIPS Rating for a PE // length = GridSimStandardPE.toMIs(random.nextDouble()*50); // // // determines the Gridlet file size that varies within the range // // 100 + (10% to 40%) // file_size = (long) GridSimRandom.real(100, 0.10, 0.40, // random.nextDouble()); // // // determines the Gridlet output size that varies within the range // // 250 + (10% to 50%) // output_size = (long) GridSimRandom.real(250, 0.10, 0.50, // random.nextDouble()); // // // creates a new Gridlet object // Gridlet gridlet = new Gridlet(id + i, length, file_size, // output_size); // // gridlet.setUserID(userID); // // // add the Gridlet into a list // list.add(gridlet); // } return list; } ////////////////////////// STATIC METHODS /////////////////////// /** * Creates main() to run this example */ public static void main(String[] args) { System.out.println("Starting Example4"); try { // First step: Initialize the GridSim package. It should be called // before creating any entities. We can't run this example without // initializing GridSim first. We will get run-time exception // error. int num_user = 1; // number of grid users Calendar calendar = Calendar.getInstance(); boolean trace_flag = true; // mean trace GridSim events // list of files or processing names to be excluded from any // statistical measures String[] exclude_from_file = { "" }; String[] exclude_from_processing = { "" }; // the name of a report file to be written. We don't want to write // anything here. See other examples of using the ReportWriter // class String report_name = null; // Initialize the GridSim package System.out.println("Initializing GridSim package"); GridSim.init(num_user, calendar, trace_flag, exclude_from_file, exclude_from_processing, report_name); // Second step: Creates one GridResource object String name = "Resource_0"; GridResource resource = createGridResource(name); // Third step: Creates the Example4 object Example041 obj = new Example041("Example041", 560.00); // Fourth step: Starts the simulation GridSim.startGridSimulation(); // Final step: Prints the Gridlets when simulation is over GridletList newList = obj.getGridletList(); printGridletList(newList); System.out.println("Finish Example4"); } catch (Exception e) { e.printStackTrace(); System.out.println("Unwanted errors happen"); } } /** * Creates one Grid resource. A Grid resource contains one or more * Machines. Similarly, a Machine contains one or more PEs (Processing * Elements or CPUs). * <p> * In this simple example, we are simulating one Grid resource with three * Machines that contains one or more PEs. * @param name a Grid Resource name * @return a GridResource object */ private static GridResource createGridResource(String name) { System.out.println(); System.out.println("Starting to create one Grid resource with " + "3 Machines"); // Here are the steps needed to create a Grid resource: // 1. We need to create an object of MachineList to store one or more // Machines MachineList mList = new MachineList(); System.out.println("Creates a Machine list"); // 2. A Machine contains one or more PEs or CPUs. Therefore, should // create an object of PEList to store these PEs before creating // a Machine. PEList peList1 = new PEList(); System.out.println("Creates a PE list for the 1st Machine"); // 3. Create PEs and add these into an object of PEList. // In this example, we are using a resource from // hpc420.hpcc.jp, AIST, Tokyo, Japan // Note: these data are taken the from GridSim paper, page 25. // In this example, all PEs has the same MIPS (Millions // Instruction Per Second) Rating for a Machine. peList1.add( new PE(0, 377) ); // need to store PE id and MIPS Rating peList1.add( new PE(1, 377) ); peList1.add( new PE(2, 377) ); peList1.add( new PE(3, 377) ); System.out.println("Creates 4 PEs with same MIPS Rating and put them"+ " into the PE list"); // 4. Create one Machine with its id and list of PEs or CPUs mList.add( new Machine(0, peList1) ); // First Machine System.out.println("Creates the 1st Machine that has 4 PEs and " + "stores it into the Machine list"); System.out.println(); // 5. Repeat the process from 2 if we want to create more Machines // In this example, the AIST in Japan has 3 Machines with same // MIPS Rating but different PEs. // NOTE: if you only want to create one Machine for one Grid resource, // then you could skip this step. PEList peList2 = new PEList(); System.out.println("Creates a PE list for the 2nd Machine"); peList2.add( new PE(0, 377) ); peList2.add( new PE(1, 377) ); peList2.add( new PE(2, 377) ); peList2.add( new PE(3, 377) ); System.out.println("Creates 4 PEs with same MIPS Rating and put them"+ " into the PE list"); mList.add( new Machine(1, peList2) ); // Second Machine System.out.println("Creates the 2nd Machine that has 4 PEs and " + "stores it into the Machine list"); System.out.println(); PEList peList3 = new PEList(); System.out.println("Creates a PE list for the 3rd Machine"); peList3.add( new PE(0, 377) ); peList3.add( new PE(1, 377) ); System.out.println("Creates 2 PEs with same MIPS Rating and put them"+ " into the PE list"); mList.add( new Machine(2, peList3) ); // Third Machine System.out.println("Creates the 3rd Machine that has 2 PEs and " + "stores it into the Machine list"); System.out.println(); // 6. Create a ResourceCharacteristics object that stores the // properties of a Grid resource: architecture, OS, list of // Machines, allocation policy: time- or space-shared, time zone // and its price (G$/PE time unit). String arch = "Sun Ultra"; // system architecture String os = "Solaris"; // operating system double time_zone = 9.0; // time zone this resource located double cost = 3.0; // the cost of using this resource ResourceCharacteristics resConfig = new ResourceCharacteristics( arch, os, mList, ResourceCharacteristics.TIME_SHARED, time_zone, cost); System.out.println("Creates the properties of a Grid resource and " + "stores the Machine list"); // 7. Finally, we need to create a GridResource object. double baud_rate = 100.0; // communication speed long seed = 11L*13*17*19*23+1; double peakLoad = 0.0; // the resource load during peak hour double offPeakLoad = 0.0; // the resource load during off-peak hr double holidayLoad = 0.0; // the resource load during holiday // incorporates weekends so the grid resource is on 7 days a week LinkedList Weekends = new LinkedList(); Weekends.add(new Integer(Calendar.SATURDAY)); Weekends.add(new Integer(Calendar.SUNDAY)); // incorporates holidays. However, no holidays are set in this example LinkedList Holidays = new LinkedList(); GridResource gridRes = null; try { gridRes = new GridResource(name, baud_rate, seed, resConfig, peakLoad, offPeakLoad, holidayLoad, Weekends, Holidays); } catch (Exception e) { e.printStackTrace(); } System.out.println("Finally, creates one Grid resource and stores " + "the properties of a Grid resource"); System.out.println(); return gridRes; } /** * Prints the Gridlet objects * @param list list of Gridlets */ private static void printGridletList(GridletList list) { int size = list.size(); Gridlet gridlet; String indent = " "; System.out.println(); System.out.println("========== [OUTPUT] =========="); System.out.println("Gridlet ID" + indent + "STATUS" + indent + "Resource ID" + indent + "Cost"); for (int i = 0; i < size; i++) { gridlet = (Gridlet) list.get(i); System.out.print(indent + gridlet.getGridletID() + indent + indent); if (gridlet.getGridletStatus() == Gridlet.SUCCESS) System.out.print("SUCCESS"); System.out.println( indent + indent + gridlet.getResourceID() + indent + indent + gridlet.getProcessingCost() ); } } } // end class |
From: Marcos D. de A. <ma...@cs...> - 2009-02-15 23:10:41
|
Hi Ye, I am sorry, but I didn't receive any attachment. Cheers, Marcos On 14/02/2009, at 8:38 PM, ye huang wrote: > Hi, Marcos: > Thanks for reply! Since I am using Example04 from Grdisim sample > package to demonstrate the issue. It seems that the number of users in > the initialization is remained the same. > > I attached the file with the mail. For simple, actually it's just one > class without much modification from Example04. Hope it helps! > > Regards > ye > > > > On 14 Feb, 2009, at 4:35 AM, Marcos Dias de Assuncao wrote: > >> >> Dear Ye, >> >> The snippets of code seem ok. Please make sure that you are shutting >> down the user entities and have provided the correct number of users >> in the initialisation of GridSim. >> >> If that does not work, I am just wondering if you could provide us >> with more details about the code? >> >> Regards, >> >> Marcos >> >> >> On 10/02/2009, at 8:40 AM, ye huang wrote: >> >>> Hi, >>> Actually, I think the problem also exists upon gridsim itself (or i >>> haven't understood it well so far). >>> >>> I encountered a similar problem by extend the Example code of >>> gridsim itself, which i had also submitted to the maillist. >>> Unfortunately, no one replied that last time. The following is the >>> details: >>> >>> --- ---- [start] -------------- >>> However, I find another confusing "bug", it's about the way of >>> receiving gridlet sent back from resources. Here i am going to >>> explain it using a demo from GridSim's official example file: >>> Example 04: >>> >>> Starting from line 109 of Example 04, submitting and receiving >>> gridlets are finished in one loop as follows: >>> --- code snippet 1 --- >>> >>> for (int i = 0; i < this.list_.size(); i++) >>> { >>> gridlet = (Gridlet) this.list_.get(i); >>> info = "Gridlet_" + gridlet.getGridletID(); >>> >>> super.gridletSubmit(gridlet, resourceID); >>> >>> gridlet = super.gridletReceive(); >>> this.receiveList_.add(gridlet); >>> } >>> >>> In my scenario, in order the decouple the behavior, I split the >>> procedure into two parts as follows: >>> >>> --- code snippet 2 --- >>> >>> // part 1: submit gridlet >>> for (int i = 0; i < this.list_.size(); i++) >>> { >>> gridlet = (Gridlet) this.list_.get(i); >>> info = "Gridlet_" + gridlet.getGridletID(); >>> >>> super.send(resourceID, GridSimTags.SCHEDULE_NOW, >>> GridSimTags.GRIDLET_SUBMIT, gridlet); >>> >>> } >>> >>> // part 2: receive gridlet from gridresource >>> Sim_event ev = new Sim_event(); >>> while (Sim_system.running()) { >>> super.sim_get_next(ev); >>> >>> if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ >>> gridlet = (Gridlet) ev.get_data(); >>> >>> // stores the received Gridlet into a new GridletList object >>> this.receiveList_.add(gridlet); >>> } >>> >>> } >>> >>> // part 3, print the received gridlet list >>> printGridletList(this.receiveList_); >>> >>> --- >>> >>> Then, during the execution, I got the prompted warning : >>> Resource_0: Warning - Gridlet #2 owned by Example4 is already >>> completed/finished. >>> >>> The more gridlets were submitted, the more warning will be prompted. >>> >>> I have to say, it seems there is no mistake caused by this warning. >>> But to understand the infrastructure better, is there anyone could >>> help me about why it appears and how to avoid it? >>> >>> --- ---- [end] -------------- >>> >>> Regards >>> ye >>> >>> >>> On 9 Feb, 2009, at 6:09 PM, Jeyarani Rajarathinam wrote: >>> >>>> Hi Friends, >>>> I am using GridSim4.0 and I have created new internal policy >>>> instead >>>> of FCFS. I get the following error. Please help me to correct the >>>> problem >>>> >>>> JR >>>> I have submitted 4 gridlets and the fourth gridlet is small >>>> compared to >>>> rest. >>>> >>>> Sim_system: No more future events >>>> Gathering simulation data. >>>> GridResource_0: Warning - Gridlet #3 owned by User_0 is already >>>> completed/finish >>>> ed.Exception in thread "Thread-9" >>>> java.lang.NullPointerExceptionTherefore, it is not being executed >>>> again >>>> >>>> at Example8.body(Example8.java:107) >>>> >>>> at eduni.simjava.Sim_entity.run(Sim_entity.java:603) >>>> ------------------------------------------------------------------- >>>> ----------- >>>> Create and Deploy Rich Internet Apps outside the browser with >>>> Adobe(R)AIR(TM) >>>> software. With Adobe AIR, Ajax developers can use existing skills >>>> and code to >>>> build responsive, highly engaging applications that combine the >>>> power of local >>>> resources and data with the reach of the web. Download the Adobe >>>> AIR SDK and >>>> Ajax docs to start building applications today-http://p.sf.net/ >>>> sfu/adobe-com >>>> _______________________________________________ >>>> Gridsim-developers mailing list >>>> Gri...@li... >>>> https://lists.sourceforge.net/lists/listinfo/gridsim-developers >>> >>> >>> -- >>> >>> Ye Huang, Department of Informatics >>> University of Fribourg / Pérolles 2 - Bld de Pérolles 90 >>> 1700 Fribourg, Switzerland >>> >>> e-mail: ye....@he..., ye....@un... >>> http://diuf.unifr.ch/people/huangy/ >>> Office: +41 26 429 65 95 >>> >>> >>> >>> >>> -------------------------------------------------------------------- >>> ---------- >>> Create and Deploy Rich Internet Apps outside the browser with >>> Adobe(R)AIR(TM) >>> software. With Adobe AIR, Ajax developers can use existing skills >>> and code to >>> build responsive, highly engaging applications that combine the >>> power of local >>> resources and data with the reach of the web. Download the Adobe >>> AIR SDK and >>> Ajax docs to start building applications today-http://p.sf.net/ >>> sfu/adobe-com_______________________________________________ >>> Gridsim-users mailing list >>> Gri...@li... >>> https://lists.sourceforge.net/lists/listinfo/gridsim-users >> >> Marcos Dias de Assuncao >> Grid Computing and Distributed Systems (GRIDS) Laboratory >> Department of Computer Science and Software Engineering >> The University of Melbourne, Australia >> Email: ma...@cs... >> >> ------------- >> "It is well enough that people of the nation do not understand our >> banking and monetary system, for if they did, I believe there would >> be a revolution before tomorrow morning." >> >> Henry Ford >> > > > -- > > Ye Huang, Department of Informatics > University of Fribourg / Pérolles 2 - Bld de Pérolles 90 > 1700 Fribourg, Switzerland > > e-mail: ye....@he..., ye....@un... > http://diuf.unifr.ch/people/huangy/ > Office: +41 26 429 65 95 > > > > > ---------------------------------------------------------------------- > -------- > Open Source Business Conference (OSBC), March 24-25, 2009, San > Francisco, CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source > code: SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > Gridsim-developers mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-developers Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: ye h. <hua...@gm...> - 2009-02-14 09:38:57
|
Hi, Marcos: Thanks for reply! Since I am using Example04 from Grdisim sample package to demonstrate the issue. It seems that the number of users in the initialization is remained the same. I attached the file with the mail. For simple, actually it's just one class without much modification from Example04. Hope it helps! Regards ye On 14 Feb, 2009, at 4:35 AM, Marcos Dias de Assuncao wrote: > > Dear Ye, > > The snippets of code seem ok. Please make sure that you are shutting > down the user entities and have provided the correct number of users > in the initialisation of GridSim. > > If that does not work, I am just wondering if you could provide us > with more details about the code? > > Regards, > > Marcos > > > On 10/02/2009, at 8:40 AM, ye huang wrote: > >> Hi, >> Actually, I think the problem also exists upon gridsim itself (or i >> haven't understood it well so far). >> >> I encountered a similar problem by extend the Example code of >> gridsim itself, which i had also submitted to the maillist. >> Unfortunately, no one replied that last time. The following is the >> details: >> >> --- ---- [start] -------------- >> However, I find another confusing "bug", it's about the way of >> receiving gridlet sent back from resources. Here i am going to >> explain it using a demo from GridSim's official example file: >> Example 04: >> >> Starting from line 109 of Example 04, submitting and receiving >> gridlets are finished in one loop as follows: >> --- code snippet 1 --- >> >> for (int i = 0; i < this.list_.size(); i++) >> { >> gridlet = (Gridlet) this.list_.get(i); >> info = "Gridlet_" + gridlet.getGridletID(); >> >> super.gridletSubmit(gridlet, resourceID); >> >> gridlet = super.gridletReceive(); >> this.receiveList_.add(gridlet); >> } >> >> In my scenario, in order the decouple the behavior, I split the >> procedure into two parts as follows: >> >> --- code snippet 2 --- >> >> // part 1: submit gridlet >> for (int i = 0; i < this.list_.size(); i++) >> { >> gridlet = (Gridlet) this.list_.get(i); >> info = "Gridlet_" + gridlet.getGridletID(); >> >> super.send(resourceID, GridSimTags.SCHEDULE_NOW, >> GridSimTags.GRIDLET_SUBMIT, gridlet); >> >> } >> >> // part 2: receive gridlet from gridresource >> Sim_event ev = new Sim_event(); >> while (Sim_system.running()) { >> super.sim_get_next(ev); >> >> if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ >> gridlet = (Gridlet) ev.get_data(); >> >> // stores the received Gridlet into a new GridletList object >> this.receiveList_.add(gridlet); >> } >> >> } >> >> // part 3, print the received gridlet list >> printGridletList(this.receiveList_); >> >> --- >> >> Then, during the execution, I got the prompted warning : >> Resource_0: Warning - Gridlet #2 owned by Example4 is already >> completed/finished. >> >> The more gridlets were submitted, the more warning will be prompted. >> >> I have to say, it seems there is no mistake caused by this warning. >> But to understand the infrastructure better, is there anyone could >> help me about why it appears and how to avoid it? >> >> --- ---- [end] -------------- >> >> Regards >> ye >> >> >> On 9 Feb, 2009, at 6:09 PM, Jeyarani Rajarathinam wrote: >> >>> Hi Friends, >>> I am using GridSim4.0 and I have created new internal policy >>> instead >>> of FCFS. I get the following error. Please help me to correct the >>> problem >>> >>> JR >>> I have submitted 4 gridlets and the fourth gridlet is small >>> compared to >>> rest. >>> >>> Sim_system: No more future events >>> Gathering simulation data. >>> GridResource_0: Warning - Gridlet #3 owned by User_0 is already >>> completed/finish >>> ed.Exception in thread "Thread-9" >>> java.lang.NullPointerExceptionTherefore, it is not being executed >>> again >>> >>> at Example8.body(Example8.java:107) >>> >>> at eduni.simjava.Sim_entity.run(Sim_entity.java:603) >>> ------------------------------------------------------------------------------ >>> Create and Deploy Rich Internet Apps outside the browser with >>> Adobe(R)AIR(TM) >>> software. With Adobe AIR, Ajax developers can use existing skills >>> and code to >>> build responsive, highly engaging applications that combine the >>> power of local >>> resources and data with the reach of the web. Download the Adobe >>> AIR SDK and >>> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com >>> _______________________________________________ >>> Gridsim-developers mailing list >>> Gri...@li... >>> https://lists.sourceforge.net/lists/listinfo/gridsim-developers >> >> >> -- >> >> Ye Huang, Department of Informatics >> University of Fribourg / Pérolles 2 - Bld de Pérolles 90 >> 1700 Fribourg, Switzerland >> >> e-mail: ye....@he..., ye....@un... >> http://diuf.unifr.ch/people/huangy/ >> Office: +41 26 429 65 95 >> >> >> >> >> ------------------------------------------------------------------------------ >> Create and Deploy Rich Internet Apps outside the browser with >> Adobe(R)AIR(TM) >> software. With Adobe AIR, Ajax developers can use existing skills >> and code to >> build responsive, highly engaging applications that combine the >> power of local >> resources and data with the reach of the web. Download the Adobe >> AIR SDK and >> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com_______________________________________________ >> Gridsim-users mailing list >> Gri...@li... >> https://lists.sourceforge.net/lists/listinfo/gridsim-users > > Marcos Dias de Assuncao > Grid Computing and Distributed Systems (GRIDS) Laboratory > Department of Computer Science and Software Engineering > The University of Melbourne, Australia > Email: ma...@cs... > > ------------- > "It is well enough that people of the nation do not understand our > banking and monetary system, for if they did, I believe there would > be a revolution before tomorrow morning." > > Henry Ford > -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: ye h. <hua...@gm...> - 2009-02-14 09:26:15
|
Hi, Marcos: Thanks! I am working on it. Regards ye On 14 Feb, 2009, at 4:26 AM, Marcos Dias de Assuncao wrote: > > Dear Ye, > > First, please make sure that the number of users you provide in the > initialisation of GridSim reflects the number of times you call > the method shutdownUserEntity(). You may be shutting down the user > entities prematurely. > > Second, if you put a gridlet in a cache and want to evaluate or do > something with it later, you should schedule a future event, > probably to the entity that implements the algorithm. Scheduling > periodical events for time the gridlet has to be processed would > prevent Sim_system.running() from returning false because there will > always be an event in the future event queue. > > The pseudo-code of the idea is more or less: > > body() { > > if(event == 'evaluate gridles') { > // check gridlets here > } > > if(should still continue to do something with cached gridlets) { > // schedule the next 'evaluate gridlets' event here > } > } > > > Regards, > > Marcos > > > On 12/02/2009, at 12:46 AM, ye huang wrote: > >> Hi, all: >> I use while(Sim_system.running()) to submitting gridlet and receive >> feedback. If a gridlet is no grid resource is currently available due >> to my scheduling algorithm, i will put the gridlet into a locally >> cached queue, the scheduling algorithm will poll the queue to process >> unsubmitted gridlets. >> >> Now, I noticed my simulation exit without finishing all the cached >> gridlets, which is led by exit of loop: >> while(Sim_system.running()). I >> m wondering the mechanism of Sim_system.running(), and when it goes >> to >> false? Any idea to prevent? >> >> Regards >> ye >> >> >> >> >> >> ------------------------------------------------------------------------------ >> Create and Deploy Rich Internet Apps outside the browser with >> Adobe(R)AIR(TM) >> software. With Adobe AIR, Ajax developers can use existing skills >> and code to >> build responsive, highly engaging applications that combine the >> power of local >> resources and data with the reach of the web. Download the Adobe >> AIR SDK and >> Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com >> _______________________________________________ >> Gridsim-developers mailing list >> Gri...@li... >> https://lists.sourceforge.net/lists/listinfo/gridsim-developers > > Marcos Dias de Assuncao > Grid Computing and Distributed Systems (GRIDS) Laboratory > Department of Computer Science and Software Engineering > The University of Melbourne, Australia > Email: ma...@cs... > > ------------- > "It is well enough that people of the nation do not understand our > banking and monetary system, for if they did, I believe there would > be a revolution before tomorrow morning." > > Henry Ford > -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: Marcos D. de A. <ma...@cs...> - 2009-02-14 03:43:39
|
Dear Jeyarani, please note that as the entities in a simulation are threads, sometimes you get an error message that is not very related to what is actually causing the problem. So, it is difficult to say what might be causing the problem in your case. Please check if in the policy you implemented you are setting the status of the gridlets properly before returning them to the user entity. Also, check if the user entity waits for the return of the gridlets before shutting the simulation down. Regards, Marcos On 10/02/2009, at 4:09 AM, Jeyarani Rajarathinam wrote: > Hi Friends, > I am using GridSim4.0 and I have created new internal policy > instead of FCFS. I get the following error. Please help me to > correct the problem > > JR > I have submitted 4 gridlets and the fourth gridlet is small > compared to rest. > > Sim_system: No more future events > Gathering simulation data. > GridResource_0: Warning - Gridlet #3 owned by User_0 is already > completed/finish > ed.Exception in thread "Thread-9" > java.lang.NullPointerExceptionTherefore, it is not being executed > again > > at Example8.body(Example8.java:107) > > at eduni.simjava.Sim_entity.run(Sim_entity.java:603) > ---------------------------------------------------------------------- > -------- > Create and Deploy Rich Internet Apps outside the browser with Adobe > (R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills > and code to > build responsive, highly engaging applications that combine the > power of local > resources and data with the reach of the web. Download the Adobe > AIR SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/ > adobe-com_______________________________________________ > Gridsim-users mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-users Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: Marcos D. de A. <ma...@cs...> - 2009-02-14 03:36:28
|
Dear Ye, The snippets of code seem ok. Please make sure that you are shutting down the user entities and have provided the correct number of users in the initialisation of GridSim. If that does not work, I am just wondering if you could provide us with more details about the code? Regards, Marcos On 10/02/2009, at 8:40 AM, ye huang wrote: > Hi, > Actually, I think the problem also exists upon gridsim itself (or i > haven't understood it well so far). > > I encountered a similar problem by extend the Example code of > gridsim itself, which i had also submitted to the maillist. > Unfortunately, no one replied that last time. The following is the > details: > > --- ---- [start] -------------- > However, I find another confusing "bug", it's about the way of > receiving gridlet sent back from resources. Here i am going to > explain it using a demo from GridSim's official example file: > Example 04: > > Starting from line 109 of Example 04, submitting and receiving > gridlets are finished in one loop as follows: > --- code snippet 1 --- > > for (int i = 0; i < this.list_.size(); i++) > { > gridlet = (Gridlet) this.list_.get(i); > info = "Gridlet_" + gridlet.getGridletID(); > > super.gridletSubmit(gridlet, resourceID); > > gridlet = super.gridletReceive(); > this.receiveList_.add(gridlet); > } > > In my scenario, in order the decouple the behavior, I split the > procedure into two parts as follows: > > --- code snippet 2 --- > > // part 1: submit gridlet > for (int i = 0; i < this.list_.size(); i++) > { > gridlet = (Gridlet) this.list_.get(i); > info = "Gridlet_" + gridlet.getGridletID(); > > super.send(resourceID, GridSimTags.SCHEDULE_NOW, > GridSimTags.GRIDLET_SUBMIT, gridlet); > > } > > // part 2: receive gridlet from gridresource > Sim_event ev = new Sim_event(); > while (Sim_system.running()) { > super.sim_get_next(ev); > > if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ > gridlet = (Gridlet) ev.get_data(); > > // stores the received Gridlet into a new GridletList object > this.receiveList_.add(gridlet); > } > > } > > // part 3, print the received gridlet list > printGridletList(this.receiveList_); > > --- > > Then, during the execution, I got the prompted warning : > Resource_0: Warning - Gridlet #2 owned by Example4 is already > completed/finished. > > The more gridlets were submitted, the more warning will be prompted. > > I have to say, it seems there is no mistake caused by this warning. > But to understand the infrastructure better, is there anyone could > help me about why it appears and how to avoid it? > > --- ---- [end] -------------- > > Regards > ye > > > On 9 Feb, 2009, at 6:09 PM, Jeyarani Rajarathinam wrote: > >> Hi Friends, >> I am using GridSim4.0 and I have created new internal policy >> instead >> of FCFS. I get the following error. Please help me to correct the >> problem >> >> JR >> I have submitted 4 gridlets and the fourth gridlet is small >> compared to >> rest. >> >> Sim_system: No more future events >> Gathering simulation data. >> GridResource_0: Warning - Gridlet #3 owned by User_0 is already >> completed/finish >> ed.Exception in thread "Thread-9" >> java.lang.NullPointerExceptionTherefore, it is not being executed >> again >> >> at Example8.body(Example8.java:107) >> >> at eduni.simjava.Sim_entity.run(Sim_entity.java:603) >> --------------------------------------------------------------------- >> --------- >> Create and Deploy Rich Internet Apps outside the browser with Adobe >> (R)AIR(TM) >> software. With Adobe AIR, Ajax developers can use existing skills >> and code to >> build responsive, highly engaging applications that combine the >> power of local >> resources and data with the reach of the web. Download the Adobe >> AIR SDK and >> Ajax docs to start building applications today-http://p.sf.net/sfu/ >> adobe-com >> _______________________________________________ >> Gridsim-developers mailing list >> Gri...@li... >> https://lists.sourceforge.net/lists/listinfo/gridsim-developers > > > -- > > Ye Huang, Department of Informatics > University of Fribourg / Pérolles 2 - Bld de Pérolles 90 > 1700 Fribourg, Switzerland > > e-mail: ye....@he..., ye....@un... > http://diuf.unifr.ch/people/huangy/ > Office: +41 26 429 65 95 > > > > > ---------------------------------------------------------------------- > -------- > Create and Deploy Rich Internet Apps outside the browser with Adobe > (R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills > and code to > build responsive, highly engaging applications that combine the > power of local > resources and data with the reach of the web. Download the Adobe > AIR SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/ > adobe-com_______________________________________________ > Gridsim-users mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-users Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: Marcos D. de A. <ma...@cs...> - 2009-02-14 03:27:36
|
Dear Ye, First, please make sure that the number of users you provide in the initialisation of GridSim reflects the number of times you call the method shutdownUserEntity(). You may be shutting down the user entities prematurely. Second, if you put a gridlet in a cache and want to evaluate or do something with it later, you should schedule a future event, probably to the entity that implements the algorithm. Scheduling periodical events for time the gridlet has to be processed would prevent Sim_system.running() from returning false because there will always be an event in the future event queue. The pseudo-code of the idea is more or less: body() { if(event == 'evaluate gridles') { // check gridlets here } if(should still continue to do something with cached gridlets) { // schedule the next 'evaluate gridlets' event here } } Regards, Marcos On 12/02/2009, at 12:46 AM, ye huang wrote: > Hi, all: > I use while(Sim_system.running()) to submitting gridlet and receive > feedback. If a gridlet is no grid resource is currently available due > to my scheduling algorithm, i will put the gridlet into a locally > cached queue, the scheduling algorithm will poll the queue to process > unsubmitted gridlets. > > Now, I noticed my simulation exit without finishing all the cached > gridlets, which is led by exit of loop: while(Sim_system.running()). I > m wondering the mechanism of Sim_system.running(), and when it goes to > false? Any idea to prevent? > > Regards > ye > > > > > > ---------------------------------------------------------------------- > -------- > Create and Deploy Rich Internet Apps outside the browser with Adobe > (R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills > and code to > build responsive, highly engaging applications that combine the > power of local > resources and data with the reach of the web. Download the Adobe > AIR SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/ > adobe-com > _______________________________________________ > Gridsim-developers mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-developers Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: Marcos D. de A. <ma...@cs...> - 2009-02-14 03:18:35
|
Dear Giancarlo, > I think the exception is brought by a race condition between a call to > gridletSubmit() method of SpaceShared class (or whatever class extends > AllocPolicy) made by GridResource thread and events treated in the > body > of SpaceShared thread You are right, the race condition is probably there. The problem is that each entity in GridSim is a thread. Simjava2 works with two event queues, namely the future event queue and the deferred event queue. Every time Sim_system class reads the queue of future events (i.e. at each clock tick), it puts all the next events to be handles in the deferred queue. If there are multiple events scheduled for the very same simulation time, they will all be placed in the deferred queue. After that, Sim_system wakes up all the threads to consume events. The problem arises when there are two events in the deferred queue, one for GridResource and another for the policy, both for the same time and both will result in making the entities access internal variables of the policy. This problem is noticed more often if you use the send method without the port because in this case there will be no network. When you use the send with the port, the network features introduce very small delays between the events, which will prevent them from being scheduled at exactly the same time, so you will not notice the problem. Yes, this is a bug and you are not the first one to experience this problem. I think people had not noticed it before because they were using Java 1.4. One solution to this problem would consist in making GridResource send an event to the policy instead of calling a method from it. By the way, this is the approach suggested in SimJava2's documentation. The other solution, if you are using the the source code of GridSim instead of the jar files, is to add some synchronisation to the allocation policy. Regards, Marcos Marcos Dias de Assuncao Grid Computing and Distributed Systems (GRIDS) Laboratory Department of Computer Science and Software Engineering The University of Melbourne, Australia Email: ma...@cs... ------------- "It is well enough that people of the nation do not understand our banking and monetary system, for if they did, I believe there would be a revolution before tomorrow morning." Henry Ford |
From: Giancarlo <wro...@gm...> - 2009-02-12 16:35:37
|
Hi, I have experienced a strange problem with GridSim. Now I'm using gridsim 4.2 I try to submit gridlet using send method of gridsimcore, with and without a port. When I use the send method with output port nothing wrong happens, but when I use the send method without a port, I get ConcurrentModificationException. I have tried the two methods on the same list of gridlet (1000 gridlet), with the same GridResource (One resource of 200 machines). I think the exception is brought by a race condition between a call to gridletSubmit() method of SpaceShared class (or whatever class extends AllocPolicy) made by GridResource thread and events treated in the body of SpaceShared thread. The strange thing is that the exception was raised only when using the send method without a port. Does anyone know why it happens? Best regards, Giancarlo |
From: ye h. <hua...@gm...> - 2009-02-11 13:46:45
|
Hi, all: I use while(Sim_system.running()) to submitting gridlet and receive feedback. If a gridlet is no grid resource is currently available due to my scheduling algorithm, i will put the gridlet into a locally cached queue, the scheduling algorithm will poll the queue to process unsubmitted gridlets. Now, I noticed my simulation exit without finishing all the cached gridlets, which is led by exit of loop: while(Sim_system.running()). I m wondering the mechanism of Sim_system.running(), and when it goes to false? Any idea to prevent? Regards ye |
From: ye h. <hua...@gm...> - 2009-02-11 13:41:12
|
Hi, Please ignore this question. It seems the modified gridlet simply works after serialization. Thanks! ye On 11 Feb, 2009, at 10:49 AM, ye huang wrote: > Hi, All: > I am working on a Job class extended from gridlet, and I wanna > serialize the Job class to preserve or transfer it upon the network. > Since gridlet doesn't have a non-argument constructor, and not > serialized neither, how should I do. > > Is it possible to change only gridlet source and regenerate the > gridsim package? Anything to notice? > > Thanks! > > Regards > ye > > -- > > Ye Huang, Department of Informatics > University of Fribourg / Pérolles 2 - Bld de Pérolles 90 > 1700 Fribourg, Switzerland > > e-mail: ye....@he..., ye....@un... > http://diuf.unifr.ch/people/huangy/ > Office: +41 26 429 65 95 > > > > -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: ye h. <hua...@gm...> - 2009-02-11 09:50:01
|
Hi, All: I am working on a Job class extended from gridlet, and I wanna serialize the Job class to preserve or transfer it upon the network. Since gridlet doesn't have a non-argument constructor, and not serialized neither, how should I do. Is it possible to change only gridlet source and regenerate the gridsim package? Anything to notice? Thanks! Regards ye -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: ye h. <hua...@gm...> - 2009-02-09 23:42:37
|
Hi, Actually, I think the problem also exists upon gridsim itself (or i haven't understood it well so far). I encountered a similar problem by extend the Example code of gridsim itself, which i had also submitted to the maillist. Unfortunately, no one replied that last time. The following is the details: --- ---- [start] -------------- However, I find another confusing "bug", it's about the way of receiving gridlet sent back from resources. Here i am going to explain it using a demo from GridSim's official example file: Example 04: Starting from line 109 of Example 04, submitting and receiving gridlets are finished in one loop as follows: --- code snippet 1 --- for (int i = 0; i < this.list_.size(); i++) { gridlet = (Gridlet) this.list_.get(i); info = "Gridlet_" + gridlet.getGridletID(); super.gridletSubmit(gridlet, resourceID); gridlet = super.gridletReceive(); this.receiveList_.add(gridlet); } In my scenario, in order the decouple the behavior, I split the procedure into two parts as follows: --- code snippet 2 --- // part 1: submit gridlet for (int i = 0; i < this.list_.size(); i++) { gridlet = (Gridlet) this.list_.get(i); info = "Gridlet_" + gridlet.getGridletID(); super.send(resourceID, GridSimTags.SCHEDULE_NOW, GridSimTags.GRIDLET_SUBMIT, gridlet); } // part 2: receive gridlet from gridresource Sim_event ev = new Sim_event(); while (Sim_system.running()) { super.sim_get_next(ev); if (ev.get_tag() == GridSimTags.GRIDLET_RETURN){ gridlet = (Gridlet) ev.get_data(); // stores the received Gridlet into a new GridletList object this.receiveList_.add(gridlet); } } // part 3, print the received gridlet list printGridletList(this.receiveList_); --- Then, during the execution, I got the prompted warning : Resource_0: Warning - Gridlet #2 owned by Example4 is already completed/finished. The more gridlets were submitted, the more warning will be prompted. I have to say, it seems there is no mistake caused by this warning. But to understand the infrastructure better, is there anyone could help me about why it appears and how to avoid it? --- ---- [end] -------------- Regards ye On 9 Feb, 2009, at 6:09 PM, Jeyarani Rajarathinam wrote: > Hi Friends, > I am using GridSim4.0 and I have created new internal policy > instead > of FCFS. I get the following error. Please help me to correct the > problem > > JR > I have submitted 4 gridlets and the fourth gridlet is small > compared to > rest. > > Sim_system: No more future events > Gathering simulation data. > GridResource_0: Warning - Gridlet #3 owned by User_0 is already > completed/finish > ed.Exception in thread "Thread-9" > java.lang.NullPointerExceptionTherefore, it is not being executed > again > > at Example8.body(Example8.java:107) > > at eduni.simjava.Sim_entity.run(Sim_entity.java:603) > ------------------------------------------------------------------------------ > Create and Deploy Rich Internet Apps outside the browser with > Adobe(R)AIR(TM) > software. With Adobe AIR, Ajax developers can use existing skills > and code to > build responsive, highly engaging applications that combine the > power of local > resources and data with the reach of the web. Download the Adobe AIR > SDK and > Ajax docs to start building applications today-http://p.sf.net/sfu/adobe-com > _______________________________________________ > Gridsim-developers mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-developers -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |
From: Jeyarani R. <sym...@gm...> - 2009-02-09 17:09:11
|
Hi Friends, I am using GridSim4.0 and I have created new internal policy instead of FCFS. I get the following error. Please help me to correct the problem JR I have submitted 4 gridlets and the fourth gridlet is small compared to rest. Sim_system: No more future events Gathering simulation data. GridResource_0: Warning - Gridlet #3 owned by User_0 is already completed/finish ed.Exception in thread "Thread-9" java.lang.NullPointerExceptionTherefore, it is not being executed again at Example8.body(Example8.java:107) at eduni.simjava.Sim_entity.run(Sim_entity.java:603) |
From: Jeyarani R. <sym...@gm...> - 2009-02-01 17:33:30
|
Dear Friends, I have gone through Spaced shared and AllocPolicy classes and I am interested in implementing different Internal scheduler. I could not understand the following flow. In Example8 if (i % 2 == 0) { success = gridletSubmit(gridlet, resourceID[id], 0.0, true); System.out.println("Ack = " + success); System.out.println(); } // Gridlets with odd numbers are sent but not required an ack else { success = gridletSubmit(gridlet, resourceID[id], 0.0, false); } Q1. Where is the defn of gridletSubmit() available? Q2. How is the AllocPolicy's gridletSubmit() getting invoked ? Q3. If a new Internal scheduling Class is defined, Where should incorporate the changes , apart from doing in ResourceCharacteristics object? Kindly help me . JR |
From: Srikumar V. <sri...@gm...> - 2008-12-16 06:38:39
|
Hi Jawad, > > 1:- Is there any training available for GridSim? The examples are the only training available for GridSim. > 2:- I want to schedule a workflow of jobs/tasks on gridsim, so > 2(a) is it possible to implement Optical Burst Switching OBS Network > 2(b) What is the way to find the optimal path on the basis of multi cost parameters. The packet routing and scheduling can be changed in order to simulate different types of network links and for optimal path. There's nothing "available off the shelf" > 3:- Is it possible to do advance reservation for a "link" > Not yet. But you can implement the functionality in the Network Router. Cheers Srikumar. > It will be a great favor for me before I start simulating my model. > > Kind Regards > > Jawad Ashraf > Ph.D Research Student (1st Year) > Department of Computer Science > University of Leicester > > Cell: +44 (0) 750 7515048 > Off : +44 (0)116 252 3904 > > Email: jaw...@gm... > http://www.cs.le.ac.uk/people/ja176 > ------------------------------------------------------------------------------ > SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada. > The future of the web can't happen without you. Join us at MIX09 to help > pave the way to the Next Web now. Learn more and register at > http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/ > _______________________________________________ > Gridsim-developers mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-developers > |
From: Ashraf, J. <ja...@le...> - 2008-12-16 03:06:25
|
Dear members I am about to start simulating a model on Gridsim, I dont have sufficient knowledge of gridsim. I have few questions regarding Gridsim 1:- Is there any training available for GridSim? 2:- I want to schedule a workflow of jobs/tasks on gridsim, so 2(a) is it possible to implement Optical Burst Switching OBS Network 2(b) What is the way to find the optimal path on the basis of multi cost parameters. 3:- Is it possible to do advance reservation for a "link" It will be a great favor for me before I start simulating my model. Kind Regards Jawad Ashraf Ph.D Research Student (1st Year) Department of Computer Science University of Leicester Cell: +44 (0) 750 7515048 Off : +44 (0)116 252 3904 Email: jaw...@gm... http://www.cs.le.ac.uk/people/ja176 |
From: ye h. <hua...@gm...> - 2008-11-28 13:20:49
|
Hi, Dear all: Thanks a lot to Dr. Rajiv-Ranjan and Marcos Dias de Assuncao for very helpful answer. In this case, does it mean that if there is no events existing in such future queue, the gridsim clock will stop ticking, then the simulation will halt. In this case, If my object inherited from gridsim wanna call an external services(RMI to another JVM, or remote Database, or something else) for some result, and it will access the result after certain period of time proactively. Instead of "super.gridSimHold(100)", I should utilize "java.lang.object.wait(timeout)". Furthermore, if there are no other events happening during this "waiting" period, the gridsim clock won't change(even the object wait for a long time to fetch the result back). BTW, if the future queue is empty, the simulation will still keep running until some gridsim object calls "StopGridSimulation", right? Best Regards ye On 28 Nov, 2008, at 1:41 PM, Gilberto Cunha wrote: > Thanks Rajiv-Ranjan, for your clear answer. I'm understand how > gridsim clock work and i fixed my problem. > > Regards, > > Gilberto Cunha > > On Thu, Nov 27, 2008 at 9:34 AM, Rajiv-Ranjan RAJIV-RANJAN <rr...@cs... > > wrote: > On Mon, 24 Nov 2008 08:35:25 -0300, Gilberto Cunha wrote > > Hi... My name is Gilberto. > > > > I'm trying understand, how the clock of the gridsim work, but i > don't > > understand very well.. > > Could you explain how gridsim clock is work and how the clock of the > > gridsim is increased? > > This is how GRidSim Clock works > > When one starts the Simulation, at that time T = 0 secs > > Suppose a event is scheduled at time t1 after delay t = 1000 > GridSim Secs... > it is added to future event queue of SimJava, the queue is always > monitored > by a live Thread, which has high priority in CPU scheduling. > > When the thread reads the queue finds there is event in the queue > for some > object X in the simulation system. What it does is it increments the > GridSim > clock to T = 1000, and delivers the event to object X. > > Say at t2, a event is scheduled after delay t = 300 (note this delay > is > relative to current GridSim Clock time not from 0 secs), t = 300 > means the > event is scheduled for event t =1300. > > Similar to first case the Monitor thread consumes this event from > future event > queue and passes to the destination object; and increments GridSim > clock to > 1300...This way all events are processed in First Come and First > Serve basis. > > > The main point to note here is that the events are scheduled > relative to the > current GridSim Clock.... > > > I hope this makes things clear. > > > Thanks > Dr. Rajiv Ranjan > > > > > > > One doubt, for example: what's happen when: an entity 'X' is started > > and send an event for itself at 3600 seconds. After in other moment, > > an entity 'A' send an event for entity 'B' at 320 second. How > > GridSim clock is synchronized? > > > > Other doubt is, how resources register influence the gridsim clock? > > > > Regards and Thanks for your atention, > > > > Gilberto > > > > On Mon, Nov 24, 2008 at 7:18 AM, < > > gri...@li...> wrote: > > > > > Send Gridsim-users mailing list submissions to > > > gri...@li... > > > > > > To subscribe or unsubscribe via the World Wide Web, visit > > > https://lists.sourceforge.net/lists/listinfo/gridsim-users > > > or, via email, send a message with subject or body 'help' to > > > gri...@li... > > > > > > You can reach the person managing the list at > > > gri...@li... > > > > > > When replying, please edit your Subject line so it is more > specific > > > than "Re: Contents of Gridsim-users digest..." > > > > > > > > > Today's Topics: > > > > > > 1. Re: GridSim instalation (Anthony Sulistio) > > > > > > > > > > ---------------------------------------------------------------------- > > > > > > Message: 1 > > > Date: Mon, 24 Nov 2008 21:18:28 +1100 (EST) > > > From: Anthony Sulistio <an...@cs...> > > > Subject: Re: [GridSim-users] GridSim instalation > > > To: Gil Noe Zavala Ramirez <gt...@ya...> > > > Cc: her...@ho..., gri...@li... > > > Message-ID: > > > <Pin...@mu... > > > > > Content-Type: text/plain; charset="iso-8859-1" > > > > > > > > > Hi Gil and Juan, > > > > > > On GridSim website, under the Documentation section, there > > > are instructions on how to use GridSim with a Java IDE: > > > * Eclipse http://www.gridbus.org/gridsim/paper/eclipse.pdf > > > * JBuilder http://www.gridbus.org/gridsim/paper/jbuilder.pdf > > > * JCreator http://www.gridbus.org/gridsim/paper/jcreator.pdf > > > > > > > > > In the future, please email us through our mailing list: > > > gridsim-users (at) lists.sourceforge.net : > > > for general queries and feedbacks. > > > > > > gridsim-developers (at) lists.sourceforge.net : > > > for contributing to GridSim or questions related to the > existing > > > GridSim code. > > > > > > To subscribe to the above mailing lists, please go to: > > > https://lists.sourceforge.net/lists/listinfo/gridsim-users > > > https://lists.sourceforge.net/lists/listinfo/gridsim- > developers > > > > > > > > > anthony > > > > > > > > > On Thu, 20 Nov 2008, Gil Noe Zavala Ramirez wrote: > > > > > > > Hi > > > > my name is Gil > > > > and... > > > > I am?student of the technologic institute of Mexicali > > > http://www.itmexicali.edu.mx/,?? > > > > I have problems about how to install gridsimtoolkit in windows > vista and > > > > XP with easy eclipse or jcreator. > > > > ? > > > > the type of problem is shown like this: > > > > ? > > > > package Gridsim does not exist. > > > > cannot find symbol class GridletList. > > > > ? > > > > please can you lend? a hand, Mr.Anthony. > > > > ? > > > > Regards: > > > > ? > > > > Zavala Ramirez Gil Noe. > > > > > > > > > ?Todo sobre Amor y Sexo! > > > La gu?a completa para tu vida en Mujer de Hoy. > > > http://mx.mujer.yahoo.com/ > > > > > > ------------------------------ > > > > > > > ------------------------------------------------------------------------- > > > This SF.Net email is sponsored by the Moblin Your Move Developer's > > > challenge > > > Build the coolest Linux based applications with Moblin SDK & win > great > > > prizes > > > Grand prize is a trip for two to an Open Source event anywhere > in the world > > > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > > > > > > ------------------------------ > > > > > > _______________________________________________ > > > Gridsim-users mailing list > > > Gri...@li... > > > https://lists.sourceforge.net/lists/listinfo/gridsim-users > > > > > > > > > End of Gridsim-users Digest, Vol 57, Issue 1 > > > ******************************************** > > > > > > > -- > > Gilberto Cunha Filho > > gil...@gm... > > SISMO - Laboratório de Sistemas e Mobilidade > > UFMA > > > warm regards > --------------------------------- > Rajiv Ranjan > http://www.cs.mu.oz.au/~rranjan > CSSE Dept. > The University of Melbourne > VIC, AU > > > > > -- > Gilberto Cunha Filho > gil...@gm... > SISMO - Laboratório de Sistemas e Mobilidade > UFMA > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's > challenge > Build the coolest Linux based applications with Moblin SDK & win > great prizes > Grand prize is a trip for two to an Open Source event anywhere in > the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/_______________________________________________ > Gridsim-users mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-users -- Ye Huang, Department of Informatics University of Fribourg / Pérolles 2 - Bld de Pérolles 90 1700 Fribourg, Switzerland e-mail: ye....@he..., ye....@un... http://diuf.unifr.ch/people/huangy/ Office: +41 26 429 65 95 |