Re: Multiple battles headless?
fnl <[email protected]> Fri, 29 Jan 2021 14:03:33 -0800 (PST)
| Newsgroups | gmane.comp.java.robocode |
|---|---|
| Message-ID | <[email protected]> |
Thank you for the follow-up. It is nice to know that it is possible to run multiple instances of the RobocodeEngine without causing issues other than the expected overhead. :-) This is valuable information for other people that is interested in this information in the future. Best regards, - Flemming fredag den 29. januar 2021 kl. 20.01.16 UTC+1 skrev [email protected]: > Thought I would follow up on this in case people were interested in the > results. > > Yes, running multiple instances worked fine. I wrote a small java class > that would sequentially run a selection of robots in battles via > RobocodeEngine and report results, and my python script would call this a > bunch of times in parallel (using asyncio) with a different 'chunk' of > robots and wait for them all to finish. Each process was surprisingly > consistent with how long it took. > > Doing it this way still had an overhead for each time it spun up the > Robocode engine(s) so there were diminishing returns for adding threads > (assuming a fixed gene pool/chunk size). Writing the whole thing in java > and holding onto the Robocode instances is probably the way to go for > maximum robots tested per hour. > > Still, I got massive performance improvements from this so I would > recommend doing this if you're making a genetic algorithm or something > similar. > > Once again, thanks for the help! > > On Monday, 25 January 2021 at 19:32:23 UTC fnl wrote: > >> I have not tried to run multiple instances of the RobocodeEngine within >> the same application. >> So I don't know if it will work, but it should be easy for you to try out. >> >> Regarding accessing resources concurrently, it should not be a problem as >> long as the robot instance does not write it's data to the same file as >> another robot instance. >> >> You might also try to run the RobocodeEngine from multiple processes e.g. >> from a shell/batch script or similar. >> >> Cheers, >> - Flemming >> >> mandag den 25. januar 2021 kl. 20.28.31 UTC+1 skrev [email protected]: >> >>> Just what I wanted, thanks! It will be a bit awkward hooking it up with >>> what I've got already but it will definitely be faster. >>> >>> On a similar note, do you know if it's safe to run multiple instances of >>> the engine at the same time, or are there resources that can't be shared >>> concurrently? >>> >>> Thanks again! >>> On Sunday, 24 January 2021 at 20:26:26 UTC fnl wrote: >>> >>>> You should have a look at the Robocode Control classes, i.e. the >>>> RobocodeEngine. >>>> >>>> Here is a link to an example. Make sure to click the "Package" on the >>>> header and scroll down to see the example of how to use the RobocodeEngine >>>> class: >>>> >>>> https://robocode.sourceforge.io/docs/robocode/index.html?robocode/control/RobocodeEngine.html >>>> >>>> Cheers, >>>> - Flemming >>>> >>>> lørdag den 23. januar 2021 kl. 22.50.05 UTC+1 skrev [email protected]: >>>> >>>>> >>>>> Hi all, I'm writing a genetic algorithm to build me some robots, and >>>>> to test them it runs a command like: >>>>> >>>>> `./robocode.sh -battle settings.battle -nodisplay -results >>>>> roundResults.txt` >>>>> >>>>> for each robot it generates. It's running this for a lot of robots, so >>>>> the overhead of starting up the application each time takes quite a while. >>>>> >>>>> Is there a way to run multiple battles in one go, or 'hold on' to a >>>>> single instance of the application that I can call each time for a battle >>>>> without a display? >>>>> >>>>> In case it matters, I'm running it on ubuntu using Python's subprocess >>>>> module to fire off the command. >>>>> >>>>> Thanks! >>>>> >>>> -- You received this message because you are subscribed to the Google Groups "robocode" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/robocode/afbf4dcd-be4a-4af1-8612-6b1af163c25cn%40googlegroups.com.