A few points about Java and speed etc. Java can rival C for speed, depending what you do with it.
Unfortunately, really 'nicely' designed code can be significantly slower than code written specifically with efficiency in mind. I accept that in principle one should aim for clean and general code, but in practice this has to be sacrificed sometimes. For example, if you want speed then try to avoid any object creation in inner loops. You can test this using java -prof on your code. To put some figures on this, for some work we did evolving neural networks for Othello, the original generic version (where the Othello rules were a plug-in to a general board-game framework) achieved fewer than 10 games per second. After several refinements, sometimes to the code, sometimes at a much deeper algorithmic level, this was improved to around 1500 games per second. But the resulting code was specific to Othello. A C version achieved around 1,000 games per second (without one of the algorithmic tricks of the Java version; we probably could have made the C version about 30% faster than the Java version if we'd put the effort in). Best regards, Simon Lucas Ps. This is mentioned in a bit more detail in our CIG 2006 paper, available on-line here: http://cigames.org -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Jeffrey Greenberg Sent: 30 November 2006 21:50 To: 'computer-go' Subject: RE: [computer-go] Making Java much faster I think this is a no-brainer... After 18 years with C/C++, I'd say use Java (or some other interpreted language) so you can focus on interesting stuff, and later perhaps you can come back to optimize some portion using a static compiled language (ie C++)... Cavest: 2x slower than C++ might be a significant disadvantage for loop-based algorithms... Ie If your algorithms are about iterative search, then speed might make the difference in a competition... But heck, are there any algorithms that aren't of the iterative type? Jeffrey Greenberg http://www.inventivity.com http://www.jeffrey-greenberg.com -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Peter Drake Sent: Wednesday, November 29, 2006 9:01 AM To: computer-go Subject: Re: [computer-go] Making Java much faster This is something we hope to do once we have Orego multithreaded: give each version the same amount of time, so the time costs of adding a heuristic are automatically taken into account. Peter Drake Assistant Professor of Computer Science Lewis & Clark College http://www.lclark.edu/~drake/ On Nov 29, 2006, at 7:30 AM, Eduardo Sabbatella wrote: > >> Games are additionally hard-real-time problems. E.g. >> in the Orego tests but >> versions got the same amount of nodes. For a realistic comparision >> one has to give both sides the same time and not the same >> node-budget. > > What do you think about giving the same program different player > times? > > Perhaps its found that ELOs/time grow log/lineal/exp. > > Also, same program but with one feature disabled, same time. Does make > any sense? > > > __________________________________________________ > Correo Yahoo! > Espacio para todos tus mensajes, antivirus y antispam ¡gratis! ¡Abrí > tu cuenta ya! - http://correo.yahoo.com.ar > _______________________________________________ > computer-go mailing list > [email protected] > http://www.computer-go.org/mailman/listinfo/computer-go/ _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/ _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/ _______________________________________________ computer-go mailing list [email protected] http://www.computer-go.org/mailman/listinfo/computer-go/
