From: Sander v. D. <sgv...@gm...> - 2009-11-25 14:13:36
|
Hello fellow 3D-ists, During the competitions in Graz this year we discussed the future of our league in the roadmap discussion (see Sahar's mail on the 3D list from 24th of July for a full summary). The most important point was that next year we want to double the amount of players and play 6 vs 6 games. There is already good work under way to make this possible (e.g. multi threading (Hedayat) and possibility for different (maybe faster) physics engines (Andreas, great stuff!)). However I think the most important thing (I even think crucial thing) is missing: a good timer. There are 2 reasons I think this needs high priority: 1. To have fair games. The last few years there was already some discussion about fair timing. Especially in China things seemed to go wrong, where in the same game one team seemed to be more affected than the other team. With more agents this will only get worse, especially I expect when we throw more computers into the mix (multiple computers per team for instance). There is an argument that can be made for limiting the think time by real time and hardware constraints, but at the moment it is too uncontrolled. With network traffic, thread scheduling, et cetera, the amount of processing time an agent gets is basically random and some agents/teams may be disadvantaged. 2. To have reproducible games. Hereby I don't mean that games should be deterministic, some noise is needed (though again, in a controllable way), but games run on one system should be representable of games played on another system (and especially on the same system at a different time). Herein also lies the reason I think a better timer is crucial and even more important than the other improvements being made: Without a good timer teams may not be able to prepare for the competitions, especially if they don't have access to a cluster of high end machines like we will hopefully have, simply because they cannot play full 6 vs 6 games that reflect games at the competitions. So what I think we need is a timer that gives each agent the same, predetermined amount of processing time for each time step. This possibly reduces simulation speed to less than real time, but at least anybody then can run a full match on any system and all other improvements become less pressing if you only consider ability to play a game (but of course in the end we do want real time). In Austria we said 'don't complain if you don't contribute' and I would like to go ahead and implement something like this, however I am missing the time. But hopefully I convinced you that this is one of the (if not *the*) most important issue for next year and I can put down some points to perhaps guide to a solution: - We used to have a system which did mostly what I said above: the Spades middleware system [1], however it didn't make the transition from spheres to humanoids in 2007. What was the exact reason, does it have unwanted properties or is it a lack of knowledge about it? I think Joschka can shed some more light on this probably? - What properties do we want the timer to have? Do we want to limit CPU cycles which might give teams using e.g. Java a disadvantage compared to assembly hackers, or computation time which might make the timer still too machine-specific.. - How does timing in the 2D simulation work, can we learn something from that, or even just copy it? - And most important: who will work on this? Cheers, Sander [1] http://spades-sim.sourceforge.net/ -- Adaptive Systems Research Group Department of Computer Science University of Hertfordshire United Kingdom |
From: Hedayat V. <hed...@ai...> - 2009-11-26 00:11:20
|
Hi Sander, Just some notes (maybe not directly related to the main discussion; sorry for that): 1. It is possible to make running full 6 vs 6 (or more) games possible for everyone without a new timer: the proposed Sync mode (in which the simulator will proceed to the next cycle when all of the connected agents tell it to do so) could enable teams to run games on any system successfully. This could be at least a temporary workaround while we do not have a new timer. 2. The latest code is less sensitive to small network delays than before, and it is more fair. 3. IMHO we should not desire strictly equal conditions for all teams during the whole game; since it doesn't happen in real world too. Small hardware/network delays and other such things might happen in real robots too. However, these should happen really "random" with the same probability for both teams. It should not affect one team more. I'm not sure if it needs a new timer; if the simulator could provide some advantage for one team during a game, it is probably a bug somewhere in the current code, or in the game cluster setup. So I think the timer should be fair, but it does not necessarily mean that all agents should always receive exactly the same thinking time. The thinking time could vary during the game, but it should happen for both teams almost equally. Thanks, Hedayat On ۰۹/۱۱/۲۵ 05:43, Sander van Dijk wrote: > Hello fellow 3D-ists, > > During the competitions in Graz this year we discussed the future of > our league in the roadmap discussion (see Sahar's mail on the 3D list > from 24th of July for a full summary). The most important point was > that next year we want to double the amount of players and play 6 vs 6 > games. There is already good work under way to make this possible > (e.g. multi threading (Hedayat) and possibility for different (maybe > faster) physics engines (Andreas, great stuff!)). However I think the > most important thing (I even think crucial thing) is missing: a good > timer. > > There are 2 reasons I think this needs high priority: > > 1. To have fair games. The last few years there was already some > discussion about fair timing. Especially in China things seemed to go > wrong, where in the same game one team seemed to be more affected than > the other team. With more agents this will only get worse, especially > I expect when we throw more computers into the mix (multiple computers > per team for instance). There is an argument that can be made for > limiting the think time by real time and hardware constraints, but at > the moment it is too uncontrolled. With network traffic, thread > scheduling, et cetera, the amount of processing time an agent gets is > basically random and some agents/teams may be disadvantaged. > > 2. To have reproducible games. Hereby I don't mean that games should > be deterministic, some noise is needed (though again, in a > controllable way), but games run on one system should be representable > of games played on another system (and especially on the same system > at a different time). Herein also lies the reason I think a better > timer is crucial and even more important than the other improvements > being made: > > � Without a good timer teams may not be able to prepare for the > competitions, especially if they don't have access to a cluster of > high end machines like we will hopefully have, simply because they > cannot play full 6 vs 6 games that reflect games at the competitions. > > So what I think we need is a timer that gives each agent the same, > predetermined amount of processing time for each time step. This > possibly reduces simulation speed to less than real time, but at least > anybody then can run a full match on any system and all other > improvements become less pressing if you only consider ability to play > a game (but of course in the end we do want real time). In Austria we > said 'don't complain if you don't contribute' and I would like to go > ahead and implement something like this, however I am missing the > time. But hopefully I convinced you that this is one of the (if not > *the*) most important issue for next year and I can put down some > points to perhaps guide to a solution: > > - We used to have a system which did mostly what I said above: the > Spades middleware system [1], however it didn't make the transition > from spheres to humanoids in 2007. What was the exact reason, does it > have unwanted properties or is it a lack of knowledge about it? I > think Joschka can shed some more light on this probably? > - What properties do we want the timer to have? Do we want to limit > CPU cycles which might give teams using e.g. Java a disadvantage > compared to assembly hackers, or computation time which might make the > timer still too machine-specific.. > - How does timing in the 2D simulation work, can we learn something > from that, or even just copy it? > - And most important: who will work on this? > > > Cheers, > Sander > > > [1] http://spades-sim.sourceforge.net/ > > > > -- > Adaptive Systems Research Group > Department of Computer Science > University of Hertfordshire > United Kingdom > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > > > > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing list > sim...@li... > https://lists.sourceforge.net/lists/listinfo/simspark-devel > |
From: Khashayar <kh....@gm...> - 2009-11-26 17:14:45
|
Dear Sander and Hedayat First of all I would like to mention the point that only 'fair games' as Hedayat said is not enough, and we need to do sth to reduce the disadvantages of our platform sensitivity to timing difficulties like network delays. I deeply believe that we do need a timer that gives each agent the same, predetermined amount of processing time for each time step in *any* (network / system) conditions. I remember this problem affected our team (Scorpius) greatly in Graz competitions, Although as Hedayat mentioned this small effect will take place for both teams during competition but because we hadn't handled it before (and it's really hard to handle!), that caused our agents to fall down in their Max speed of walking during the matches on server which had never happened on our systems before. Overall, i think that we should consider this (timer) problem even if it may seems fair or ignorable! On Thu, Nov 26, 2009 at 3:39 AM, Hedayat Vatankhah <hed...@ai...>wrote: > Hi Sander, > Just some notes (maybe not directly related to the main discussion; sorry > for that): > 1. It is possible to make running full 6 vs 6 (or more) games possible for > everyone without a new timer: the proposed Sync mode (in which the simulator > will proceed to the next cycle when all of the connected agents tell it to > do so) could enable teams to run games on any system successfully. This > could be at least a temporary workaround while we do not have a new timer. > 2. The latest code is less sensitive to small network delays than before, > and it is more fair. > 3. IMHO we should not desire strictly equal conditions for all teams during > the whole game; since it doesn't happen in real world too. Small > hardware/network delays and other such things might happen in real robots > too. However, these should happen really "random" with the same probability > for both teams. It should not affect one team more. I'm not sure if it needs > a new timer; if the simulator could provide some advantage for one team > during a game, it is probably a bug somewhere in the current code, or in the > game cluster setup. > So I think the timer should be fair, but it does not necessarily mean that > all agents should always receive exactly the same thinking time. The > thinking time could vary during the game, but it should happen for both > teams almost equally. > > > Thanks, > Hedayat > > > > On ۰۹/۱۱/۲۵ 05:43, Sander van Dijk wrote: > > Hello fellow 3D-ists, > > During the competitions in Graz this year we discussed the future of our > league in the roadmap discussion (see Sahar's mail on the 3D list from 24th > of July for a full summary). The most important point was that next year we > want to double the amount of players and play 6 vs 6 games. There is already > good work under way to make this possible (e.g. multi threading (Hedayat) > and possibility for different (maybe faster) physics engines (Andreas, great > stuff!)). However I think the most important thing (I even think crucial > thing) is missing: a good timer. > > There are 2 reasons I think this needs high priority: > > 1. To have fair games. The last few years there was already some discussion > about fair timing. Especially in China things seemed to go wrong, where in > the same game one team seemed to be more affected than the other team. With > more agents this will only get worse, especially I expect when we throw more > computers into the mix (multiple computers per team for instance). There is > an argument that can be made for limiting the think time by real time and > hardware constraints, but at the moment it is too uncontrolled. With network > traffic, thread scheduling, et cetera, the amount of processing time an > agent gets is basically random and some agents/teams may be disadvantaged. > > 2. To have reproducible games. Hereby I don't mean that games should be > deterministic, some noise is needed (though again, in a controllable way), > but games run on one system should be representable of games played on > another system (and especially on the same system at a different time). > Herein also lies the reason I think a better timer is crucial and even more > important than the other improvements being made: > > � Without a good timer teams may not be able to prepare for the > competitions, especially if they don't have access to a cluster of high end > machines like we will hopefully have, simply because they cannot play full 6 > vs 6 games that reflect games at the competitions. > > So what I think we need is a timer that gives each agent the same, > predetermined amount of processing time for each time step. This possibly > reduces simulation speed to less than real time, but at least anybody then > can run a full match on any system and all other improvements become less > pressing if you only consider ability to play a game (but of course in the > end we do want real time). In Austria we said 'don't complain if you don't > contribute' and I would like to go ahead and implement something like this, > however I am missing the time. But hopefully I convinced you that this is > one of the (if not *the*) most important issue for next year and I can put > down some points to perhaps guide to a solution: > > - We used to have a system which did mostly what I said above: the Spades > middleware system [1], however it didn't make the transition from spheres to > humanoids in 2007. What was the exact reason, does it have unwanted > properties or is it a lack of knowledge about it? I think Joschka can shed > some more light on this probably? > - What properties do we want the timer to have? Do we want to limit CPU > cycles which might give teams using e.g. Java a disadvantage compared to > assembly hackers, or computation time which might make the timer still too > machine-specific.. > - How does timing in the 2D simulation work, can we learn something from > that, or even just copy it? > - And most important: who will work on this? > > > Cheers, > Sander > > > [1] http://spades-sim.sourceforge.net/ > > > > -- > Adaptive Systems Research Group > Department of Computer Science > University of Hertfordshire > United Kingdom > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > > > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/simspark-devel > > > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus > on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing list > sim...@li... > https://lists.sourceforge.net/lists/listinfo/simspark-devel > > -- Best Regards Khashayar |
From: Sander v. D. <sgv...@gm...> - 2009-11-26 19:04:16
|
Hi Hedayat and Khashayar, Thanks for your replies, but I can't say I agree with Hedayat. To stick to your points: 1. This is indeed a fast and easy to have 6 vs 6 games on any system. However, this means agents practically will have infinite available thinking time, which isn't realistic. Moreover, this makes the length of a game variable depending on the agents, which is a pain for organisation. For these reasons such a 'Sync' timer model is not feasible and definitely not desirable during actual competitions, coming back to my argument that teams won't be able to prepare well, because games they play at home are not representable of games played at the competitions. 2. There has been improvement in the latest version. However, as you said it is only 'less sensitive' and 'more fair', but still sensitive and unfair. 3. I do agree with you that it is interesting to research adaptation to changes in processing power, network delays, et cetera, but as I said in my previous E-Mail and as discussed during the road map discussion, this has to be controllable. At the moment this is totally random. Regarding the unbalanced unfairness for different teams, this can be caused by factors outside of the server like hardware, which can be mediated with a better timer. But even without any bug in the server and with perfectly fair hardware it could be that the agents of one team require more thinking time than the current setup supplies. Now you can say that's their problem, they should have been programmed more efficient or shouldn't use those infeasibly complex algorithms, but to come back to reproducibility again (and Khashayar's experience): there is no way they can know beforehand that it will be a problem, because they don't have access to the exact same system. So concluding, I still think a good timer is of high importance. Cheers, Sander On Thu, Nov 26, 2009 at 5:14 PM, Khashayar <kh....@gm...> wrote: > Dear Sander and Hedayat > > First of all I would like to mention the point that only 'fair games' as > Hedayat said is not enough, and we need to do sth to reduce the > disadvantages of our platform sensitivity to timing difficulties like > network delays. I deeply believe that we do need a timer that gives each > agent the same, predetermined amount of processing time for each time > step in *any* (network / system) conditions. I remember this problem > affected our team (Scorpius) greatly in Graz competitions, Although as > Hedayat mentioned this small effect will take place for both teams during > competition but because we hadn't handled it before (and it's really hard to > handle!), that caused our agents to fall down in their Max speed of walking > during the matches on server which had never happened on our systems before. > Overall, i think that we should consider this (timer) problem even if it may > seems fair or ignorable! > > On Thu, Nov 26, 2009 at 3:39 AM, Hedayat Vatankhah <hed...@ai...>wrote: > >> Hi Sander, >> Just some notes (maybe not directly related to the main discussion; sorry >> for that): >> 1. It is possible to make running full 6 vs 6 (or more) games possible for >> everyone without a new timer: the proposed Sync mode (in which the simulator >> will proceed to the next cycle when all of the connected agents tell it to >> do so) could enable teams to run games on any system successfully. This >> could be at least a temporary workaround while we do not have a new timer. >> 2. The latest code is less sensitive to small network delays than before, >> and it is more fair. >> 3. IMHO we should not desire strictly equal conditions for all teams >> during the whole game; since it doesn't happen in real world too. Small >> hardware/network delays and other such things might happen in real robots >> too. However, these should happen really "random" with the same probability >> for both teams. It should not affect one team more. I'm not sure if it needs >> a new timer; if the simulator could provide some advantage for one team >> during a game, it is probably a bug somewhere in the current code, or in the >> game cluster setup. >> So I think the timer should be fair, but it does not necessarily mean that >> all agents should always receive exactly the same thinking time. The >> thinking time could vary during the game, but it should happen for both >> teams almost equally. >> >> >> Thanks, >> Hedayat >> >> >> >> On ۰۹/۱۱/۲۵ 05:43, Sander van Dijk wrote: >> >> Hello fellow 3D-ists, >> >> During the competitions in Graz this year we discussed the future of our >> league in the roadmap discussion (see Sahar's mail on the 3D list from 24th >> of July for a full summary). The most important point was that next year we >> want to double the amount of players and play 6 vs 6 games. There is already >> good work under way to make this possible (e.g. multi threading (Hedayat) >> and possibility for different (maybe faster) physics engines (Andreas, great >> stuff!)). However I think the most important thing (I even think crucial >> thing) is missing: a good timer. >> >> There are 2 reasons I think this needs high priority: >> >> 1. To have fair games. The last few years there was already some >> discussion about fair timing. Especially in China things seemed to go wrong, >> where in the same game one team seemed to be more affected than the other >> team. With more agents this will only get worse, especially I expect when we >> throw more computers into the mix (multiple computers per team for >> instance). There is an argument that can be made for limiting the think time >> by real time and hardware constraints, but at the moment it is too >> uncontrolled. With network traffic, thread scheduling, et cetera, the amount >> of processing time an agent gets is basically random and some agents/teams >> may be disadvantaged. >> >> 2. To have reproducible games. Hereby I don't mean that games should be >> deterministic, some noise is needed (though again, in a controllable way), >> but games run on one system should be representable of games played on >> another system (and especially on the same system at a different time). >> Herein also lies the reason I think a better timer is crucial and even more >> important than the other improvements being made: >> >> � Without a good timer teams may not be able to prepare for the >> competitions, especially if they don't have access to a cluster of high end >> machines like we will hopefully have, simply because they cannot play full 6 >> vs 6 games that reflect games at the competitions. >> >> So what I think we need is a timer that gives each agent the same, >> predetermined amount of processing time for each time step. This possibly >> reduces simulation speed to less than real time, but at least anybody then >> can run a full match on any system and all other improvements become less >> pressing if you only consider ability to play a game (but of course in the >> end we do want real time). In Austria we said 'don't complain if you don't >> contribute' and I would like to go ahead and implement something like this, >> however I am missing the time. But hopefully I convinced you that this is >> one of the (if not *the*) most important issue for next year and I can put >> down some points to perhaps guide to a solution: >> >> - We used to have a system which did mostly what I said above: the Spades >> middleware system [1], however it didn't make the transition from spheres to >> humanoids in 2007. What was the exact reason, does it have unwanted >> properties or is it a lack of knowledge about it? I think Joschka can shed >> some more light on this probably? >> - What properties do we want the timer to have? Do we want to limit CPU >> cycles which might give teams using e.g. Java a disadvantage compared to >> assembly hackers, or computation time which might make the timer still too >> machine-specific.. >> - How does timing in the 2D simulation work, can we learn something from >> that, or even just copy it? >> - And most important: who will work on this? >> >> >> Cheers, >> Sander >> >> >> [1] http://spades-sim.sourceforge.net/ >> >> >> >> -- >> Adaptive Systems Research Group >> Department of Computer Science >> University of Hertfordshire >> United Kingdom >> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >> trial. Simplify your report design, integration and deployment - and focus on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> >> >> _______________________________________________ >> Simspark Generic Physical MAS Simulator >> simspark-devel mailing lis...@li...https://lists.sourceforge.net/lists/listinfo/simspark-devel >> >> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 >> 30-Day >> trial. Simplify your report design, integration and deployment - and focus >> on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now. http://p.sf.net/sfu/bobj-july >> _______________________________________________ >> Simspark Generic Physical MAS Simulator >> simspark-devel mailing list >> sim...@li... >> https://lists.sourceforge.net/lists/listinfo/simspark-devel >> >> > > > -- > Best Regards > Khashayar > -- Adaptive Systems Research Group Department of Computer Science University of Hertfordshire United Kingdom |
From: Hedayat V. <hed...@ai...> - 2009-11-26 20:11:38
|
Hi, On ۰۹/۱۱/۲۶ 10:34, Sander van Dijk wrote: > Hi Hedayat and Khashayar, > > Thanks for your replies, but I can't say I agree with Hedayat. To > stick to your points: > > 1. This is indeed a fast and easy to have 6 vs 6 games on any system. > However, this means agents practically will have infinite available > thinking time, which isn't realistic. Moreover, this makes the length > of a game variable depending on the agents, which is a pain for > organisation. For these reasons such a 'Sync' timer model is not > feasible and definitely not desirable during actual competitions, > coming back to my argument that teams won't be able to prepare well, > because games they play at home are not representable of games played > at the competitions. Yes, the proposed sync mode is just for debugging purposes. > > 2. There has been improvement in the latest version. However, as you > said it is only 'less sensitive' and 'more fair', but still sensitive > and unfair. > > 3. I do agree with you that it is interesting to research adaptation > to changes in processing power, network delays, et cetera, but as I > said in my previous E-Mail and as discussed during the road map > discussion, this has to be controllable. At the moment this is totally > random. Regarding the unbalanced unfairness for different teams, this > can be caused by factors outside of the server like hardware, which > can be mediated with a better timer. But even without any bug in the > server and with perfectly fair hardware it could be that the agents of > one team require more thinking time than the current setup supplies. > Now you can say that's their problem, they should have been programmed > more efficient or shouldn't use those infeasibly complex algorithms, > but to come back to reproducibility again (and Khashayar's > experience): there is no way they can know beforehand that it will be > a problem, because they don't have access to the exact same system. Well, I noted that I'm not against a better timer, but to say that: 1. things are not that bad, 2. the timer does not need to provide strictly the same processing time to the agents (as measured in CPU cycles!) I'm not sure but I think there is no such strict timing in 2D too. There is not any special software on client machines to control agents' thinking time. Maybe the main difference is (I'm not sure about it) that they use UDP instead of TCP. Good luck, Hedayat > > So concluding, I still think a good timer is of high importance. > > Cheers, > Sander > > On Thu, Nov 26, 2009 at 5:14 PM, Khashayar <kh....@gm... > <mailto:kh....@gm...>> wrote: > > Dear Sander and Hedayat > First of all I would like to mention the point that only 'fair > games' as Hedayat said is not enough, and we need to do sth to > reduce the disadvantages of our platform sensitivity to timing > difficulties like network delays. I deeply believe that we do need > a timer that gives each agent the same, predetermined amount of > processing time for each time step in /any/ (network / system) > conditions. I remember this problem affected our team > (Scorpius) greatly in Graz competitions, Although as Hedayat > mentioned this small effect will take place for both teams during > competition but because we hadn't handled it before (and it's > really hard to handle!), that caused our agents to fall down in > their Max speed of walking during the matches on server which had > never happened on our systems before. Overall, i think that we > should consider this (timer) problem even if it may seems fair or > ignorable! > > On Thu, Nov 26, 2009 at 3:39 AM, Hedayat Vatankhah > <hed...@ai... <mailto:hed...@ai...>> wrote: > > Hi Sander, > Just some notes (maybe not directly related to the main > discussion; sorry for that): > 1. It is possible to make running full 6 vs 6 (or more) games > possible for everyone without a new timer: the proposed Sync > mode (in which the simulator will proceed to the next cycle > when all of the connected agents tell it to do so) could > enable teams to run games on any system successfully. This > could be at least a temporary workaround while we do not have > a new timer. > 2. The latest code is less sensitive to small network delays > than before, and it is more fair. > 3. IMHO we should not desire strictly equal conditions for all > teams during the whole game; since it doesn't happen in real > world too. Small hardware/network delays and other such things > might happen in real robots too. However, these should happen > really "random" with the same probability for both teams. It > should not affect one team more. I'm not sure if it needs a > new timer; if the simulator could provide some advantage for > one team during a game, it is probably a bug somewhere in the > current code, or in the game cluster setup. > So I think the timer should be fair, but it does not > necessarily mean that all agents should always receive exactly > the same thinking time. The thinking time could vary during > the game, but it should happen for both teams almost equally. > > > Thanks, > Hedayat > > > > On ۰۹/۱۱/۲۵ 05:43, Sander van Dijk wrote: >> Hello fellow 3D-ists, >> >> During the competitions in Graz this year we discussed the >> future of our league in the roadmap discussion (see Sahar's >> mail on the 3D list from 24th of July for a full summary). >> The most important point was that next year we want to double >> the amount of players and play 6 vs 6 games. There is already >> good work under way to make this possible (e.g. multi >> threading (Hedayat) and possibility for different (maybe >> faster) physics engines (Andreas, great stuff!)). However I >> think the most important thing (I even think crucial thing) >> is missing: a good timer. >> >> There are 2 reasons I think this needs high priority: >> >> 1. To have fair games. The last few years there was already >> some discussion about fair timing. Especially in China things >> seemed to go wrong, where in the same game one team seemed to >> be more affected than the other team. With more agents this >> will only get worse, especially I expect when we throw more >> computers into the mix (multiple computers per team for >> instance). There is an argument that can be made for limiting >> the think time by real time and hardware constraints, but at >> the moment it is too uncontrolled. With network traffic, >> thread scheduling, et cetera, the amount of processing time >> an agent gets is basically random and some agents/teams may >> be disadvantaged. >> >> 2. To have reproducible games. Hereby I don't mean that games >> should be deterministic, some noise is needed (though again, >> in a controllable way), but games run on one system should be >> representable of games played on another system (and >> especially on the same system at a different time). Herein >> also lies the reason I think a better timer is crucial and >> even more important than the other improvements being made: >> >> � Without a good timer teams may not be able to prepare for >> the competitions, especially if they don't have access to a >> cluster of high end machines like we will hopefully have, >> simply because they cannot play full 6 vs 6 games that >> reflect games at the competitions. >> >> So what I think we need is a timer that gives each agent the >> same, predetermined amount of processing time for each time >> step. This possibly reduces simulation speed to less than >> real time, but at least anybody then can run a full match on >> any system and all other improvements become less pressing if >> you only consider ability to play a game (but of course in >> the end we do want real time). In Austria we said 'don't >> complain if you don't contribute' and I would like to go >> ahead and implement something like this, however I am missing >> the time. But hopefully I convinced you that this is one of >> the (if not *the*) most important issue for next year and I >> can put down some points to perhaps guide to a solution: >> >> - We used to have a system which did mostly what I said >> above: the Spades middleware system [1], however it didn't >> make the transition from spheres to humanoids in 2007. What >> was the exact reason, does it have unwanted properties or is >> it a lack of knowledge about it? I think Joschka can shed >> some more light on this probably? >> - What properties do we want the timer to have? Do we want to >> limit CPU cycles which might give teams using e.g. Java a >> disadvantage compared to assembly hackers, or computation >> time which might make the timer still too machine-specific.. >> - How does timing in the 2D simulation work, can we learn >> something from that, or even just copy it? >> - And most important: who will work on this? >> >> >> Cheers, >> Sander >> >> >> [1] http://spades-sim.sourceforge.net/ >> >> >> >> -- >> Adaptive Systems Research Group >> Department of Computer Science >> University of Hertfordshire >> United Kingdom >> >> >> ------------------------------------------------------------------------------ >> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day >> trial. Simplify your report design, integration and deployment - and focus on >> what you do best, core application coding. Discover what's new with >> Crystal Reports now.http://p.sf.net/sfu/bobj-july >> >> >> >> _______________________________________________ >> Simspark Generic Physical MAS Simulator >> simspark-devel mailing list >> sim...@li... <mailto:sim...@li...> >> https://lists.sourceforge.net/lists/listinfo/simspark-devel >> > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal > Reports 2008 30-Day > trial. Simplify your report design, integration and deployment > - and focus on > what you do best, core application coding. Discover what's new > with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > _______________________________________________ > Simspark Generic Physical MAS Simulator > simspark-devel mailing list > sim...@li... > <mailto:sim...@li...> > https://lists.sourceforge.net/lists/listinfo/simspark-devel > > > > > -- > Best Regards > Khashayar > > > > > -- > Adaptive Systems Research Group > Department of Computer Science > University of Hertfordshire > United Kingdom |
From: Hedayat V. <hed...@ai...> - 2009-11-27 15:44:34
|
Hi all, On ۰۹/۱۱/۲۷ 01:45, Feng Xue wrote: > Hi Sander, Khashayar and Hedayat, > First of all, I am sorry that I have been acting silence since last > year and didn't have a team for Graz. But I read every email that sent > to these two mail lists, especially devel ML. So, I know what things > are going on here, at least most of them. :) Happy to hear that. > With regard to the timer, it's an old topic, but important. > At the first three years(2004, 2005, 2006), simulation 3D > league was mainly focusing on strategy making, multi-agent systems, > collaboration, etc. At the year of 2007, we made a big step to > humanoid robot which is exciting and longsighted in my opinion. > However, because of the hardware limitation "or" timing issues, we > could only run a 2vs2 game. The consequence of this big step is that > the topic of motion planning and path planning are mainly > concerned. In another word, the research topics are somewhat > restricted. However, the first thing to do for RoboCup2008 was solving > the issues like unstable physics module, unrealistic robot model, etc. > Well, what is the exact improvement of RoboCup2009 that is benefit > for our research? Comparied to RoboCup2008, they have the same robot > model, the same player numbers. Even in ChinaOpen2008(Dec. 2008), it's > a 4 vs 4 game and had showed the importance of strategy making. > Back to the timer issue, the current so-called sync solution > will work, but in a short period. As Sander mentioned in the previous > email, infinite available thinking time, uncontrollable noise casued > by the differences of hardware and network delay, etc. > The gentleman rule has appeared in the 3d rules for these three > years. It is ridiculous especially when there is no effective > supervise mechanism. Very long messages, debug tcp or even fast joints > speed will cost the server much more computation which will bring > different behaviours comparied to that on our home machines. And now, > we have one more attack way: the sync. I believe we are all gentlemen, > but what if it is a bug? It's hard to say. Well, if a person that have > built a team for competition, he will understand this more easily. Well, as I said the sync mode is only for development and debugging purposes. It is certainly not suitable for the competitions. While a better timer could make things more desirable (I have a proposal for a timer at the end of this email), things are not that bad now. There is a trade off between trying to be real time, and being more deterministic. We've moved from the former towards the latter slightly. For example, anything which cause the simulator to do more computation should not affect agents' behaviors. The only effect is to make the whole simulation slower. BTW, there are certainly cases that would affect teams (the difference between remote vs local runs, which should be much more consistent in the latest code but note completely vanished). Also let me note that my own team (UI-AI) in 2007 was hardly hit by these timing issues. Our agents could walk just fine on our systems, but in the competitions they were almost unable to properly walk. So I can understand what problems you are talking about. > Handling the noise is really a good topic. However we are on a > simulator, not a real robot. We should simulate the noise, not let it > happen out of our control. And, in my opinion, in order to bring our > old research topics(strategy making, MAS, etc), the noise should be > negotiated to avoid letting the motion control be the main topic. Yes if we want to make things simpler, we should go for a strict and (almost?) completely deterministic timer. > Things are really bad now. TCs of 2D have been discussing the idea of > 2.5D which involving the z axis. We should stop talking about > the issues that for developers' concern(for example: whether using TCP > or UDP), but pay more attention to how to bring back more research > topics. Orelse, we are losing more and more teams. > Well, as it is said, "don't complain if you don't contribute". But > someone does contribute or will contribue but is not allowed complain. > Well, I'd never expected to convince somebody since last year. But I > am writing this email to support Sander's opinion because it is really > important. I think the sentence ("don't complain if you don't contribute") is going to have a slightly different meaning than the original intent. At least in my opinion, this sentence is about people who just complain. Contribution is not necessary by providing code or documentation. If you are constructive, you are contributing. Personally I do consider providing constructive comments/suggestions/objections as contributions. Putting forward discussions like this is far from those who just complain! Any comments which can affect our decisions is highly appreciated in MC. :) So, everybody have the right to participate in such discussions; let alone people like you who are MC members. Well, unfortunately me first email is going to become problematic. I tried to avoid that - I said that it is not directly related to the main subject - but it happened. I stated that we can solve some of the problems with some simpler solutions than a new timer, like the sync mode; but I said that "it is a temporary solution while we don't have a new timer". I didn't want to say that it can fill the need for a new timer. Also I mentioned that the latest code is less sensitive to small network delays. To be more precise, except for teams who have some time consuming computations in decision making and/or doing basic behaviors (so need almost all of the time of a single cycle); it is not sensitive to relatively "small" system/network delays. And another problem which was problematic for many teams was that they were thinking "too fast", and this could create a huge difference between running the simulator locally vs running over network. IMHO, many of the teams was suffering from this problem rather than thinking too much. But I agree with Sander's point 3, which mostly affects teams which need long thinking times and as we are going to have more players it'll become more important. So yes, as far as the hardware used by teams is not theirs, we need a better timer to mitigate hardware issues and if we want to make our simulator a bit simpler than the real world in this regard. Finally my last comment was about how the new timer should be: in my opinion, it should not be too strict like SPADES which considers CPU cycles used by agents. That is too much (an example was what Sander mentioned about using programming languages) and also considering the popularity of multi-core CPUs; it should let the teams to use CPU power completely in the desired cycle time. I'm not completely sure but I think it would need some (maybe complex) changes in SPADES (considering a dual core cpu, agents should be able to use both cores for 0.02 seconds, but not using 1 core for 0.04s). As I said before, there is a trade off here and I think going towards a system which can run the games equally on ANY system setup is not appropriate. OK, let me try to bring the discussion back to its main line. I have a proposal for a new timer, and I want to know your opinions about. It is simple, and is (hopefully) simple to setup and I think it would satisfy most of the concerns. But it does not guarantee that the agents' performance is independent from the machine it runs on. This is as follows: For each agent we run a proxy application in the agent's machine (or maybe it'll be a single proxy for all agents in the machine). Agents connect to this proxy instead of the main simulator, and communicate with it. It is the proxy's job to control the thinking time of the agents. The proxy waits at much as a single cycle before reading more commands from an agent. After each cycle, proxies must signal the server to proceed to the next cycle (something like the sync mode, but controlled by the proxies rather than the agents). There are some details to prevent agents of interfering with the proxies activity, but I think we can have an acceptable implementation using appropriate design and priority settings. Thanks, Hedayat > 20:04:47 2009-11-26 Sander van Dijk: > > Hi Hedayat and Khashayar, > > Thanks for your replies, but I can't say I agree with Hedayat. To > stick to your points: > > 1. This is indeed a fast and easy to have 6 vs 6 games on any > system. However, this means agents practically will have infinite > available thinking time, which isn't realistic. Moreover, this > makes the length of a game variable depending on the agents, which > is a pain for organisation. For these reasons such a 'Sync' timer > model is not feasible and definitely not desirable during actual > competitions, coming back to my argument that teams won't be able > to prepare well, because games they play at home are not > representable of games played at the competitions. > > 2. There has been improvement in the latest version. However, as > you said it is only 'less sensitive' and 'more fair', but still > sensitive and unfair. > > 3. I do agree with you that it is interesting to research > adaptation to changes in processing power, network delays, et > cetera, but as I said in my previous E-Mail and as discussed > during the road map discussion, this has to be controllable. At > the moment this is totally random. Regarding the unbalanced > unfairness for different teams, this can be caused by factors > outside of the server like hardware, which can be mediated with a > better timer. But even without any bug in the server and with > perfectly fair hardware it could be that the agents of one team > require more thinking time than the current setup supplies. Now > you can say that's their problem, they should have been programmed > more efficient or shouldn't use those infeasibly complex > algorithms, but to come back to reproducibility again (and > Khashayar's experience): there is no way they can know beforehand > that it will be a problem, because they don't have access to the > exact same system. > > So concluding, I still think a good timer is of high importance. > > Cheers, > Sander > > On Thu, Nov 26, 2009 at 5:14 PM, Khashayar <kh....@gm... > <mailto:kh....@gm...>> wrote: > > Dear Sander and Hedayat > First of all I would like to mention the point that only 'fair > games' as Hedayat said is not enough, and we need to do sth to > reduce the disadvantages of our platform sensitivity to timing > difficulties like network delays. I deeply believe that we do > need a timer that gives each agent the same, predetermined > amount of processing time for each time step in /any/ (network > / system) conditions. I remember this problem affected our > team (Scorpius) greatly in Graz competitions, Although as > Hedayat mentioned this small effect will take place for both > teams during competition but because we hadn't handled it > before (and it's really hard to handle!), that caused our > agents to fall down in their Max speed of walking during the > matches on server which had never happened on our systems > before. Overall, i think that we should consider this (timer) > problem even if it may seems fair or ignorable! > > On Thu, Nov 26, 2009 at 3:39 AM, Hedayat Vatankhah > <hed...@ai... <mailto:hed...@ai...>> wrote: > > Hi Sander, > Just some notes (maybe not directly related to the main > discussion; sorry for that): > 1. It is possible to make running full 6 vs 6 (or more) > games possible for everyone without a new timer: the > proposed Sync mode (in which the simulator will proceed to > the next cycle when all of the connected agents tell it to > do so) could enable teams to run games on any system > successfully. This could be at least a temporary > workaround while we do not have a new timer. > 2. The latest code is less sensitive to small network > delays than before, and it is more fair. > 3. IMHO we should not desire strictly equal conditions for > all teams during the whole game; since it doesn't happen > in real world too. Small hardware/network delays and other > such things might happen in real robots too. However, > these should happen really "random" with the same > probability for both teams. It should not affect one team > more. I'm not sure if it needs a new timer; if the > simulator could provide some advantage for one team during > a game, it is probably a bug somewhere in the current > code, or in the game cluster setup. > So I think the timer should be fair, but it does not > necessarily mean that all agents should always receive > exactly the same thinking time. The thinking time could > vary during the game, but it should happen for both teams > almost equally. > > > Thanks, > Hedayat > > > > On ۰۹/۱۱/۲۵ 05:43, Sander van Dijk wrote: >> Hello fellow 3D-ists, >> >> During the competitions in Graz this year we discussed >> the future of our league in the roadmap discussion (see >> Sahar's mail on the 3D list from 24th of July for a full >> summary). The most important point was that next year we >> want to double the amount of players and play 6 vs 6 >> games. There is already good work under way to make this >> possible (e.g. multi threading (Hedayat) and possibility >> for different (maybe faster) physics engines (Andreas, >> great stuff!)). However I think the most important thing >> (I even think crucial thing) is missing: a good timer. >> >> There are 2 reasons I think this needs high priority: >> >> 1. To have fair games. The last few years there was >> already some discussion about fair timing. Especially in >> China things seemed to go wrong, where in the same game >> one team seemed to be more affected than the other team. >> With more agents this will only get worse, especially I >> expect when we throw more computers into the mix >> (multiple computers per team for instance). There is an >> argument that can be made for limiting the think time by >> real time and hardware constraints, but at the moment it >> is too uncontrolled. With network traffic, thread >> scheduling, et cetera, the amount of processing time an >> agent gets is basically random and some agents/teams may >> be disadvantaged. >> >> 2. To have reproducible games. Hereby I don't mean that >> games should be deterministic, some noise is needed >> (though again, in a controllable way), but games run on >> one system should be representable of games played on >> another system (and especially on the same system at a >> different time). Herein also lies the reason I think a >> better timer is crucial and even more important than the >> other improvements being made: >> >> � Without a good timer teams may not be able to prepare >> for the competitions, especially if they don't have >> access to a cluster of high end machines like we will >> hopefully have, simply because they cannot play full 6 vs >> 6 games that reflect games at the competitions. >> >> So what I think we need is a timer that gives each agent >> the same, predetermined amount of processing time for >> each time step. This possibly reduces simulation speed to >> less than real time, but at least anybody then can run a >> full match on any system and all other improvements >> become less pressing if you only consider ability to play >> a game (but of course in the end we do want real time). >> In Austria we said 'don't complain if you don't >> contribute' and I would like to go ahead and implement >> something like this, however I am missing the time. But >> hopefully I convinced you that this is one of the (if not >> *the*) most important issue for next year and I can put >> down some points to perhaps guide to a solution: >> >> - We used to have a system which did mostly what I said >> above: the Spades middleware system [1], however it >> didn't make the transition from spheres to humanoids in >> 2007. What was the exact reason, does it have unwanted >> properties or is it a lack of knowledge about it? I think >> Joschka can shed some more light on this probably? >> - What properties do we want the timer to have? Do we >> want to limit CPU cycles which might give teams using >> e.g. Java a disadvantage compared to assembly hackers, or >> computation time which might make the timer still too >> machine-specific.. >> - How does timing in the 2D simulation work, can we learn >> something from that, or even just copy it? >> - And most important: who will work on this? >> >> >> Cheers, >> Sander >> >> >> [1] http://spades-sim.sourceforge.net/ > > |