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.