Loading...
 

Unreal Tournament 2004 / UDK


Multiple UCC instances

So, I'm evolving bots in Unreal, which takes forever because individual matches need to last a while for the evaluation to be worthwhile. I'm interested in taking advantage of my multiple cores and/or multiple machines.

I know that Pogamut 2 had some GRID code that allowed individual evaluations to be farmed out to multiple servers. Does similar functionality exist in Pogamut 3? Even if there isn't an easy way to do it, I'd be interested in hearing how to set something like this up.

However, another question is whether or not it is possible to run multiple instances of UCC on the same machine and have each one use a different port after the IP address of localhost so that they don't interfere with each other. I have a fast, multicore machine, so I figure having about 4 UCC instances running would speed things up and still work well. Is there a way to do this with multiple instance of UT2004Server and/or UCCWrapper?

-Jacob
Hi!

Yes, you can run multiple ucc instances on one machine. You can also set each of the instance to have its own ports. This is done through GB command line parameters. The parameters can be passed through UCCWrapper.

About Pogamut GRID - it worked on Pogamut2. It has not yet been ported to Pogamut 3, however this should be possible. I have already notified Rudolf Kadlec, who is the author of Pogamut 2 GRID. He should reply you here with more hints + links.

Best,
Michal
Hi,
I don't know whether you have read this https://artemis.ms.mff.cuni.cz/pogamut/tiki-index.php?page=Pogamut+GRID
This page describes the Pogamut2 implementation of GRID that I used in 2008, but I didn't run it since then. The page also points to source code of the grid.

Are you planning to run the simulation on more computers or are you satisfied with one multicore computer? When you are going to use one computer then I would simply use ThreadPoolExecutor to start multiple UCC instances. If you need more machines then try JPPF as I did with the old grid. It is relatively lightweight Java grid framework.
I was running my simulation on 20 Linux computers and each computer had up to 6 UCC instances.

R
Thank you for all of your help. I've managed to cobble together my own solution using Java thread pools and the ExecutorService class. I think my solution works, but I can't be sure. Although I can see multiple copies of UCC running, and I see text output indicating multiple running bots/servers, I am not able to log into the separate servers with the UT2004 client. I only see/log into one of the servers.

I think this problem is due to the fact that all of the servers have the same name. My initial idea was to simply run each server with a separate name, but this is harder than I thought. It seems that when starting UCC, the server name is not one of the options that can be set. It has to be set in the INI file. So I figured I'd just make multiple copies of the INI file, each with a different file name and different server name setting. The only problem now is that I don't know how to use the UCCWrapper, UCCWrapperConf, UT2004Server, or Process to launch my servers using different INI files. The setOptions method of UCCWrapperConf doesn't quite do what I want, since it only sets server options. However, the command line parameter that sets the INI file is not a "?" delimited option.

How do I set the INI file?
Never mind. I edited UCCWrapper to make my own version that adds the ini file to the end of the list of commands to the ProcessBuilder. Although, in order to see all servers, I also had to change the Port (in addition to BotPort, ServerPort and ObserverPort). There are a lot of ports.
 

News

News RSS RSS feed for News link



Pogamut

Quarterly RSS RSS feed for quarterly reports

Acknowledgement

This work is supported by GA UK 1053/2007/A-INF/MFF (2007-8), GA UK 351/2006/A-INF/MFF (2006-8), the Ministry of Education of the Czech Republic (grant MSM0021620838) (2008-9), by the Program "Information Society" under project 1ET100300517 (2006-9), and the project Integration of IT Tools into Education of Humanities (2006-8) and by the project CZ.2.17/3.1.00/31162, which are financed by the European Social Fund, the state budget of the Czech Republic, and by the budget of Municipal House Prague.