Rumble Server
So I've just started running the rumble on the server that I have available to me. It has an Intel Xeon X3740 which really cranks out the results. I've seen some discussion on running multiple instances of the rumble, one for each core, and was wondering if there was anything special you had to do. I know you have to copy the directory for each instance but is that it? I'm going to run just one instance for the time being until I get some feedback out how to do this.
I'm also getting a lot of could not load robot errors. Is this because I am running Java 7?
Yep just copy the whole directory of robocode and you can run as much rumble clients as you want. About the could not load robot.. is this while you start the client and he wants to load the missing bots? This is quite normal because robocode repository (some main bot source) is down again. You should be fine if you grab the current bot zip from the rumble start page this one should be up to date (just copy the bots to your robots directory)
take care
You can get missing bots here, thanks to Rednaxela: [1] - we should link this somewhere.
I'd try deleting robots/robot.database (and maybe robots/.data) so that it rebuilds the cache and see if that fixes the missing bot issue. I've been copying my RoboResearch dir to a RamDisk lately and seems like sometimes I have to rebuild if I run from a new location.
I run 1 instance per core in tests, sometimes with a slightly increased CPU constant, but for the RoboRumble, I think the consensus is to err on the side of caution and 1 run less than the number of cores, since Java / Robocode / operating system incur some overhead.
Several times when a particular rumble directory has seemed to get spotty on me, I've opened the actual robocode client in that directory, had it clean the robot cache and then shut it down. This has worked like a charm every time, since (I think) it deletes the relevant directories and fully rebuilds the robot database from the available .jar files. Cleans up the place, as it were.
It is linked on RoboRumble/Starting_With_RoboRumble its the "latest bot archive" :)
@kid you can use the same user name for all your configurations.
I think I just needed to have the robot directory rebuilt. When I deleted the directory and grabbed the latest bot archive it started working again.
So I have three instances running on the server (rinzler) and one running on my personal computer (tron). I should be looking at actual cores and not threads, right? Because the Xeon in the server has 4 cores but 8 threads. And the Xeon in my personal computer has 4 cores and 4 threads. Three instances each?
I don't have much experience with hyperthreads, so I would say to experiment with it to see how many you can run without a performance hit. People posted some good benchmarks here for multi-threaded Robocode on their systems, some with hyper-threading: User_talk:Voidious#CPU_benchmark_advice_47. You may well be able to run 5-6 without any issues.
But 3 on each system is already quite a few rumble clients. :-)
I found threads can help a lot. However, I manually double the CPU constant to account for the edge case where the threads aren't helping.
I was watching the CPU usage last night and I saw spikes as high as 70% but it averaged around 30-40%. I'll have to double the CPU constant and run 6 and see what happens.
Be aware that just increasing the CPU constant will make battles take longer too, for bots that ever skip turns. I'd use the same CPU constant when testing different numbers of threads if you're trying to deduce if the increased threads caused a decrease in performance per thread.
I increased the CPU constant from about 7M to 9M and am running 6 instances. Really turning out the results now!
Now I just need to start programming a robot again...
Man... I still feel obligated to run a client when I have a new version in the rumble, but damn, once your clients pick it up, it feels pretty useless. :-) You've got me yearning for a quad core "Robocode machine" again, maybe I'll actually pull the trigger this time.
These aren't actually "my" machines... I have two servers at work that I'm not using for anything useful so I thought I would help out a little. Now that I have two servers running 6 instances each I'm trying to be the top contributor in each area of the rumble. Silly goal, I know, but it makes me happy. :-)
I avoid messing with the CPU constant in "production" clients. It favors slowbots over the others, affecting scores and possibly the ranking.
But if you want to know how to completely disable turn skipping, add -Ddebug=true to the command line. I use it a lot during testing/benchmarking.
Hi mate. very impressive indeed. I hope you can keep it up for a while, its nice to see how fast the rumble stabilizes.
As for the CPU constant, as far as i can say it for my bots, they are still at the same APS after a couple of 1000 battles so to me it looks ok.
take care
I miss KID's rumble clients! =) Might have to pause my benchmarks and go to full RoboRumble power until we're caught up. I've been running just 1 client on my laptop when my bots have enough battles, but if I add the 3 clients on my new box, I can do ~1200 battles / hour (depends on the bots of course). And I've been doing BATTLESPERBOT=3000, so there are 6 bots that could use battles right now.
LiteRumble has full pairings (and is stabilizing quicker due to my more aggressive priority battles), I've been keeping track of my progress there =)
Neat! I definitely need to start working on my KNN ProblemBots - that's the killer feature of LiteRumble for me right now. =) I'd also like to see what it's like to setup a separate instance of it, too.
The bot/version comparison is a must have feature for me in normal RoboRumble usage, though. I spend more time looking at those than actual rankings.
I was planning to do that this week, but got distracted by somebody making very nice progress in 1v1.
Hmm, that's quite a disparity for Diamond 1.8.1 between the two servers: 89.93 @ 2300 battles vs 89.76 @ 1400 battles. Maybe after the score comparison for bots/versions, we need a comparison between servers. =)
Yeah, I was noticing that. It could be due to the 1.7.3.0 vs 1.7.4.2 clients. I could whip up something simple similar to Darkcanuck's QueryAPI, although obviously it would have a few less fields.
Haha, ok, I was mostly kidding about the cross-server comparison app. =) 0.17 isn't that far beyond what I'd consider possible margin of error, and we've already established a few bots are acting differently in 1.7.3.2+. But on that note, your full-pairing RR server running on 1.7.4.0 may prove to be a great way to figure out which bots are having issues.
6 clients are up! I have been so busy at work lately that I have been forgetting to run these when I can. I did lose one server temporally but will hopefully be able to get it back this weekend. Then 12 clients will be cranking out results.
Wow, cool! Thanks KID!
I didn't realize you were running 6 per machine. I'm pretty sure I could push it on my new machine - I'm running 6 threads in RoboResearch with no issues - but so far I've stuck to 3. (It's a quad core with hyperthreading.)
How long is it taking a new robot to stabilize with my clients running? Right now I have 6 running one-on-one and 6 running melee. I'm thinking about changing up the ratio though.
Well, my clients do ~1200 battles per hour for 1v1 and when I compare to yours, your 1v1 clients are slightly faster. So a couple hours to get to ~2500 battles with just yours. Though having this much power, I've realized that scores can swing as much as .05 even beyond 3000 battles, which is kind of crazy. Feel free to dial it down however you'd like. =)
I was actually thinking about doing 8 clients on one-on-one and 4 on melee. A couple hours is too long... I'll have to dial it up. :-)
Well, even your 6 1v1 clients was enough for me to say, "hmm, I'm in no rush, I'll just leave my quad core box running benchmarks, and let my laptop and KID's clients handle Diamond 1.8.7." But you won't hear me complaining about going to 8. =)
Man, over a million 1v1 battles in 30 days. Congrats! Maybe you should be mining Bitcoins or something? =)