You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(5) |
Oct
(24) |
Nov
(5) |
Dec
(4) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(14) |
Feb
(8) |
Mar
(6) |
Apr
(7) |
May
(1) |
Jun
(22) |
Jul
(6) |
Aug
(22) |
Sep
(22) |
Oct
(8) |
Nov
(10) |
Dec
(31) |
2009 |
Jan
(18) |
Feb
(29) |
Mar
(25) |
Apr
(11) |
May
(6) |
Jun
(7) |
Jul
(8) |
Aug
|
Sep
(3) |
Oct
(20) |
Nov
(11) |
Dec
(1) |
2010 |
Jan
(15) |
Feb
(33) |
Mar
(20) |
Apr
(13) |
May
(1) |
Jun
(4) |
Jul
(7) |
Aug
(11) |
Sep
(5) |
Oct
(6) |
Nov
(7) |
Dec
(12) |
2011 |
Jan
(6) |
Feb
(7) |
Mar
(1) |
Apr
(7) |
May
|
Jun
(10) |
Jul
(2) |
Aug
(2) |
Sep
(4) |
Oct
(3) |
Nov
(4) |
Dec
(1) |
2012 |
Jan
(3) |
Feb
(5) |
Mar
(15) |
Apr
(3) |
May
(2) |
Jun
(5) |
Jul
(5) |
Aug
(7) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
(4) |
Apr
(14) |
May
(8) |
Jun
(4) |
Jul
(3) |
Aug
|
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2014 |
Jan
(2) |
Feb
(1) |
Mar
(6) |
Apr
(2) |
May
(1) |
Jun
|
Jul
(4) |
Aug
|
Sep
|
Oct
(3) |
Nov
(3) |
Dec
(2) |
2015 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
(1) |
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2020 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2024 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
From: Jonathan M. <jon...@bs...> - 2009-03-12 18:08:19
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi all, One question, which packet scheduler should I use for new flow links? Thanks - -- - ----------------------------------------------------------------------- Jonathan Martí Fraiz Storage Systems Research Group - Computer Sciences Department Barcelona Supercomputing Center - Centro Nacional de Supercomputación www : http://www.bsc.es/StorageSystems email : jonathan(dot)marti(at)bsc(dot)es phone : (0034) 934054281 - ----------------------------------------------------------------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkm5T6AACgkQ4cH1a6R2mCtU5wCfZ03jttjOuTsX4eQUTF+n4igs 0ZcAmwdWIWKUKXYtCV0Tddu/OTOp1H2N =Rf7Z -----END PGP SIGNATURE----- |
From: Leonardo F. <sa...@li...> - 2009-03-12 16:26:07
|
Hi, I'm a student at University of Pisa, Italy and I'm working on Gridisim 4.2 to simulate a resource allocation algorithm. I created my network topology with 5 router,2 user and 3 resource.I attached user_1 to router1 e user_2 to router4. After the simulation ends I find this warning: router4.processNetPacket(): Warning - can't find a packet scheduler for Packet #1, out of, 4, with id, 1, from, Output_User2, to, Res_0, tag, 108 -> Will reschedule it again in the future. - router4.processNetPacket(): Warning - can't find a packet scheduler for Packet #2, out of, 4, with id, 1, from, Output_User2, to, Res_0, tag, 108 etc... It seems that router4 don't have packet scheduler,but I have specified the PacketScheduler entity in my code: FIFOScheduler r4Sched = new FIFOScheduler("r4_Sched"); How it is possible?What does tag 108 mean? Best regards, Leonardo Fortuna |
From: Jonathan M. <jon...@bs...> - 2009-03-12 12:39:32
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Ok, then using FlowLinks instead of SimpleLinks I get this error: Exception in thread "Thread-15" java.lang.ClassCastException: gridsim.net.NetPacket cannot be cast to gridsim.net.flow.FlowPacket at gridsim.net.flow.FlowLink.registerFlow(FlowLink.java:419) at gridsim.net.flow.FlowLink.enque(FlowLink.java:316) at gridsim.net.flow.FlowLink.processEvent(FlowLink.java:230) at gridsim.net.flow.FlowLink.body(FlowLink.java:202) at eduni.simjava.Sim_entity.run(Sim_entity.java:603) Any ideas? Thanks Srikumar Venugopal escribió: > Hi Jonathan, > You are probably using the packet network in which each file is > divided into packets of, AFAIK, 64KB each. Each of the packets is an > entity so the number of objects exponentially increases. You could use > the latest GridSim (4.2) which is supposed to have flow networking in > which each data transfer is represented as a flow or you can make the > packet size equal to the file size. > Another choice is to hack in a flow transfer by making the > recipient get only 2 packets ,one at the start of a file and one at > the end sent after a delay equal to size of file divide by bandwidth. > > HTH > > Srikumar. > > On Thu, Mar 5, 2009 at 4:47 AM, Jonathan Marti <jon...@bs...> wrote: > Hi good afternoon, > > I'm working on the datagrid package of GridSim and I wanted to execute a very > simple simulation with a simple network topology (up to 6 routers) that form a > complete graph of links among them. > > But I have a problem with total time execution of the simulation...here you have > some results: > > #routers total exec. time (milliseconds) > 2 (1 link) 340 > 3 (3 links) 380 > 4 (6 links) 3000 (3 seconds) > 5 (10 links) 600000 (10 minutes) > > Extrapolating, with 6 routers would be 6 hours, ... with 8 routers (28 links) 52 > years! :-S > > There is only 1 user, that sends 1 gridlet with a file of 1MB (very simple) > > And I'm using a laptop with an Intel Core 2 Duo 2,4GHz processor, and 4GB of RAM. > > Could anybody tell if this is normal, and why is it happening?...or better, does > anbydoy know a solution for this, or has any idea? > > Thank you very much > >> - ------------------------------------------------------------------------------ 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-users mailing list Gri...@li... https://lists.sourceforge.net/lists/listinfo/gridsim-users >> - -- - ----------------------------------------------------------------------- Jonathan Martí Fraiz Storage Systems Research Group - Computer Sciences Department Barcelona Supercomputing Center - Centro Nacional de Supercomputación www : http://www.bsc.es/StorageSystems email : jonathan(dot)marti(at)bsc(dot)es phone : (0034) 934054281 - ----------------------------------------------------------------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkm5AogACgkQ4cH1a6R2mCuzTwCfbKuRVto7ZUPtnSxozrYiFRJX WjQAoO8T80Oz3D0Ff0KUF62eivbLPNkB =bra1 -----END PGP SIGNATURE----- |
From: mehdi a. <meh...@ya...> - 2009-03-11 16:56:52
|
Hi All Dears I work on using ontology in resource discovery and management do you think that using Gridsim is helpful for me? and can I use it in this area? thanks in advanced M.Ahangar |
From: <kom...@ya...> - 2009-03-05 06:10:34
|
hi everybody, im using gridsim4.1- parallel for my project.i have created parallel gridlets and parallel resources.In this i have created a internalnetwok model with network architechture Broadcastnet.in this model can i identify the source node/master to which the gridlet is submitted. in other words can i identify which is master resource and which are slaves.....or whethr i have to set the master and slave manually. please help me.... i asked this doubt for many times.... if u clear this i can coontinue with my project Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/ |
From: Choong Y. Qi <cho...@ho...> - 2009-03-05 02:06:26
|
Hello everyone, I'm currently facing some problems while playing with the advance reservation feature. 1) What is the usage of allowing commitReservation() without attaching a job to it? 2) I have a scenario here, which I created a reservation 24hours in advance, I do not want to commit the reservation immediately, so I use gridSimHold for 14hours and then commit my reservation, the commit returned the result AR_COMMIT_FAIL_EXPIRED. The job is short enough which only takes a couple minutes for execution. Hence I don't think is was because insufficient execution time. If I remove the gridSimHold, the commit works without error. (Btw, is this the actual way to commit reservation in a future time? because I don't know how to trigger GridSim to execute a line in a particular time.) 3) For "int commitReservation(String bookingID, GridletList list)", the gridletlist seems to only work for GridResource which has many PEs. Considering there is only 1GridResource with 1Machine and 1PE. I got 4 jobs which each took 10minutes for execution, If I create a 1 hour reservation with the resource and commit the reservation by sending the 4 jobs packed in a gridletlist, the result is only 1job is executed while the machine left idle for the remaining 50min without executing the other 3 jobs.. I'm not sure whether this is a bug with the scheduling or wat... maybe someone can enlighten me on how I can make advance reservation behave in such way that I wanted above? Thanks! Cheers, You Qi. _________________________________________________________________ More than messages–check out the rest of the Windows Live™. http://www.microsoft.com/windows/windowslive/ |
From: Srikumar V. <sri...@gm...> - 2009-03-04 23:11:13
|
Hi Jonathan, You are probably using the packet network in which each file is divided into packets of, AFAIK, 64KB each. Each of the packets is an entity so the number of objects exponentially increases. You could use the latest GridSim (4.2) which is supposed to have flow networking in which each data transfer is represented as a flow or you can make the packet size equal to the file size. Another choice is to hack in a flow transfer by making the recipient get only 2 packets ,one at the start of a file and one at the end sent after a delay equal to size of file divide by bandwidth. HTH Srikumar. On Thu, Mar 5, 2009 at 4:47 AM, Jonathan Marti <jon...@bs...> wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hi good afternoon, > > I'm working on the datagrid package of GridSim and I wanted to execute a very > simple simulation with a simple network topology (up to 6 routers) that form a > complete graph of links among them. > > But I have a problem with total time execution of the simulation...here you have > some results: > > #routers total exec. time (milliseconds) > 2 (1 link) 340 > 3 (3 links) 380 > 4 (6 links) 3000 (3 seconds) > 5 (10 links) 600000 (10 minutes) > > Extrapolating, with 6 routers would be 6 hours, ... with 8 routers (28 links) 52 > years! :-S > > There is only 1 user, that sends 1 gridlet with a file of 1MB (very simple) > > And I'm using a laptop with an Intel Core 2 Duo 2,4GHz processor, and 4GB of RAM. > > Could anybody tell if this is normal, and why is it happening?...or better, does > anbydoy know a solution for this, or has any idea? > > Thank you very much > > - -- > - ----------------------------------------------------------------------- > Jonathan Martí Fraiz > Storage Systems Research Group - Computer Sciences Department > Barcelona Supercomputing Center - Centro Nacional de Supercomputación > www : http://www.bsc.es/StorageSystems > email : jonathan(dot)marti(at)bsc(dot)es > phone : (0034) 934054281 > - ----------------------------------------------------------------------- > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org > > iEYEARECAAYFAkmuvrgACgkQ4cH1a6R2mCsnCQCbBrqigUdFy+WTS/iFkOGFweHk > FKIAoN7bvTyhmFLo9+7vn3RxVi5U5tNe > =Uri+ > -----END PGP SIGNATURE----- > > ------------------------------------------------------------------------------ > 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-users mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-users > |
From: Jonathan M. <jon...@bs...> - 2009-03-04 17:47:36
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi good afternoon, I'm working on the datagrid package of GridSim and I wanted to execute a very simple simulation with a simple network topology (up to 6 routers) that form a complete graph of links among them. But I have a problem with total time execution of the simulation...here you have some results: #routers total exec. time (milliseconds) 2 (1 link) 340 3 (3 links) 380 4 (6 links) 3000 (3 seconds) 5 (10 links) 600000 (10 minutes) Extrapolating, with 6 routers would be 6 hours, ... with 8 routers (28 links) 52 years! :-S There is only 1 user, that sends 1 gridlet with a file of 1MB (very simple) And I'm using a laptop with an Intel Core 2 Duo 2,4GHz processor, and 4GB of RAM. Could anybody tell if this is normal, and why is it happening?...or better, does anbydoy know a solution for this, or has any idea? Thank you very much - -- - ----------------------------------------------------------------------- Jonathan Martí Fraiz Storage Systems Research Group - Computer Sciences Department Barcelona Supercomputing Center - Centro Nacional de Supercomputación www : http://www.bsc.es/StorageSystems email : jonathan(dot)marti(at)bsc(dot)es phone : (0034) 934054281 - ----------------------------------------------------------------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmuvrgACgkQ4cH1a6R2mCsnCQCbBrqigUdFy+WTS/iFkOGFweHk FKIAoN7bvTyhmFLo9+7vn3RxVi5U5tNe =Uri+ -----END PGP SIGNATURE----- |
From: komagal m. <kom...@ya...> - 2009-02-19 08:17:37
|
hello everyone how is parallel job submission is done in gridsim-parallel after creating internal network model....i have selected the network architecture as Broadcast net. whether its in the form of threads???? clear my doubt -meenu Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/ |
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: komagal m. <kom...@ya...> - 2009-02-17 09:53:55
|
hi everybody, for my project reg parallel gridlet submission im using gridsim 4.1-parallel. in this i have extended the internal network model class and selected the network architechture as Broadcastnet.. in a broadcast net architechture if i submit a job whether any one resource will be assigned as master automatically??? or should i include a characteristic called resource type as master and other as slaves and then proceed??? please help me thank u in anticipation -meenu Add more friends to your messenger and enjoy! Go to http://messenger.yahoo.com/invite/ |
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
|
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: Jonathan M. <jon...@bs...> - 2009-02-11 16:55:59
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 As I get no feedback from this bug, and I didn't want to check the integrity of GridSim after changing this, I've implemented another solution for the bug. Basically, I added a new event CTLG_GET_REPLICA_FROM_RM with its corresponding CTLG_REPLICA_DELIVERY_TO_RM that it is only processed from the Replica Manager (so Replica Catalogue ignores that). It would be nice to know if there is any official mechanism to report a bug and its solution (or at least who I should discuss it with). Thanks, Jonathan Jonathan Marti escribió: > I've tried a dubious solution by changing the > DataGridResource.processOtherEvent(Sim_event ev) code. > > Instead of passing the event to the localRC first and then to the Replica > Manager if it is not a RC event, I've changed the order so the event is > processed at Replica Manager firstly. > > Now DataGridlets can be executed, but I still have no idea about the effects on > the rest of the cases or user operations with file replicas. > > > Jonathan Marti escribió: >> Hi everybody, > >> I'm using the gridsim.datagrid package and I'm trying to submit some >> DataGridlets. These DataGridlets have some requirements regarding input files >> which are not satisfied locally at the resources where they are submited. > >> In this case, SimpleReplicaManager asks for the location of the missing files by >> sending CTLG_GET_REPLICA events to its DataGridResource. These events are >> processed by the corresponding RC which eventually sends CTGL_REPLICA_DELIVERY. > >> The problem is that when DataGridResource receives this CTLG_REPICA_DELIVERY it >> is processed by its localRC !! >> Therefore, SimpleReplicaManager never gets the CTLG_REPLICA_DELIVERY, then it >> never starts the following step (FILE_REQUEST), so that DataGridlets with input >> requirements that are not locally satisfied are never executed. > >> Do you have any idea/solution for this problem? > > > ------------------------------------------------------------------------------ > _______________________________________________ > Gridsim-users mailing list > Gri...@li... > https://lists.sourceforge.net/lists/listinfo/gridsim-users > - ------------------------------------------------------------------------------ _______________________________________________ Gridsim-users mailing list Gri...@li... https://lists.sourceforge.net/lists/listinfo/gridsim-users - -- - ----------------------------------------------------------------------- Jonathan Martí Fraiz Storage Systems Research Group - Computer Sciences Department Barcelona Supercomputing Center - Centro Nacional de Supercomputación www : http://www.bsc.es/StorageSystems email : jonathan(dot)marti(at)bsc(dot)es phone : (0034) 934054281 - ----------------------------------------------------------------------- -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iEYEARECAAYFAkmS/psACgkQ4cH1a6R2mCsZwgCfQNJB4B/fe7pJT9yjBSLKbGqw zbEAoKt5M/CL3kMx/TEwnDKzShIqtsBs =4ibQ -----END PGP SIGNATURE----- |