Hi Louis,
Just in case your engine might appear on our list: where are you from?
new Engine, Axolotl
Moderators: hgm, Rebel, chrisw
-
- Posts: 1362
- Joined: Sat Jul 21, 2018 7:43 am
- Location: Szentendre, Hungary
- Full name: Gabor Szots
Re: new Engine, Axolotl
Gabor Szots
CCRL testing group
CCRL testing group
-
- Posts: 50
- Joined: Sun Nov 11, 2018 9:26 pm
- Location: Germany
- Full name: Louis Mackenzie-Smith
Re: new Engine, Axolotl
Hi there Raoni,
thank you for your kind words! I will definitely look into Travis, as it seems like it could be a real help, thanks for this cool idea.
Kind regards,
Louis
thank you for your kind words! I will definitely look into Travis, as it seems like it could be a real help, thanks for this cool idea.
Kind regards,
Louis
My chess engine is Axolotl: https://github.com/louism33/Axolotl
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
-
- Posts: 50
- Joined: Sun Nov 11, 2018 9:26 pm
- Location: Germany
- Full name: Louis Mackenzie-Smith
Re: new Engine, Axolotl
Hi Tirsa,
thank you for your help and support! Well noticed about the node count. I was not counting any moves made in Q search, which made the number rather low. It is still pretty low, but I see this as a challenge for the future
With regard to the version info in the ID name: I am not sure I understand exactly what you mean - when the engine receives the "uci" command, it currently prints:
id name Axolotl-v1.1
id author Louis James Mackenzie-Smith
Are you recommending lengthening the id name part, to become, for example:
id name Axolotl-v1.1, improved move ordering
?
Sorry if I have misunderstood what you mean,
Kind wishes,
Louis
thank you for your help and support! Well noticed about the node count. I was not counting any moves made in Q search, which made the number rather low. It is still pretty low, but I see this as a challenge for the future
With regard to the version info in the ID name: I am not sure I understand exactly what you mean - when the engine receives the "uci" command, it currently prints:
id name Axolotl-v1.1
id author Louis James Mackenzie-Smith
Are you recommending lengthening the id name part, to become, for example:
id name Axolotl-v1.1, improved move ordering
?
Sorry if I have misunderstood what you mean,
Kind wishes,
Louis
My chess engine is Axolotl: https://github.com/louism33/Axolotl
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
-
- Posts: 50
- Joined: Sun Nov 11, 2018 9:26 pm
- Location: Germany
- Full name: Louis Mackenzie-Smith
Re: new Engine, Axolotl
Hi Gabor,
I am from the UK and France. I don't suppose there is support for this?
If not, then just a UK flag.
Thank you kindly for your interest,
Best,
Louis
I am from the UK and France. I don't suppose there is support for this?
If not, then just a UK flag.
Thank you kindly for your interest,
Best,
Louis
My chess engine is Axolotl: https://github.com/louism33/Axolotl
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
-
- Posts: 919
- Joined: Tue Nov 24, 2015 9:11 pm
- Location: upstate
Re: new Engine, Axolotl
That's not what I get here:AxolotlFever wrote: ↑Fri Nov 16, 2018 10:48 am when the engine receives the "uci" command, it currently prints:
id name Axolotl-v1.1
id author Louis James Mackenzie-Smith
Code: Select all
Starting everything
uci
Starting Engine
id name Axolotl
id author Louis James Mackenzie-Smith
uciok
One good archiving practice to follow is always ZIP your files to preserve the original timestamps.
BTW, the .jar for v1.1 is only about half the size of that for v1; is that by design?
Tirsa Poppins
CCRL
CCRL
-
- Posts: 50
- Joined: Sun Nov 11, 2018 9:26 pm
- Location: Germany
- Full name: Louis Mackenzie-Smith
Re: new Engine, Axolotl
Hi Tirsa,
Thanks again for noticing this! I had changed this in my source code, but made a mistake in the commit. I hope you will not have this issue again.
The reason for the larger .jar was that I accidentally bundled some test classes that are not used in the final product. I have removed them, this was a mistake :/
I am curious about your zip idea - if I understand you correctly, are you suggesting that I commit a zipped version of the source code and .jar? I am sorry that I misunderstand you on this.
Thank you very much for your continued support,
With best wishes,
Louis
Thanks again for noticing this! I had changed this in my source code, but made a mistake in the commit. I hope you will not have this issue again.
The reason for the larger .jar was that I accidentally bundled some test classes that are not used in the final product. I have removed them, this was a mistake :/
I am curious about your zip idea - if I understand you correctly, are you suggesting that I commit a zipped version of the source code and .jar? I am sorry that I misunderstand you on this.
Thank you very much for your continued support,
With best wishes,
Louis
My chess engine is Axolotl: https://github.com/louism33/Axolotl
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
And it uses: https://github.com/louism33/
Othello/Reversi: https://github.com/louism33/Mudpuppy
-
- Posts: 919
- Joined: Tue Nov 24, 2015 9:11 pm
- Location: upstate
Re: new Engine, Axolotl
I see, thank you for the explanation.AxolotlFever wrote: ↑Fri Nov 16, 2018 8:58 pm Thanks again for noticing this! I had changed this in my source code, but made a mistake in the commit. I hope you will not have this issue again.
The reason for the larger .jar was that I accidentally bundled some test classes that are not used in the final product. I have removed them, this was a mistake :/
The idea is that once you implement the release system recommended by Raoni the .jar you provide should be zipped. The purpose is preserving the original timestamp of the file. When someone downloads your .jar his browser will set the timestamp to the time of the download; zipping avoids that.AxolotlFever wrote: ↑Fri Nov 16, 2018 8:58 pmI am curious about your zip idea - if I understand you correctly, are you suggesting that I commit a zipped version of the source code and .jar?
Another idea is to have the version number in the filename, e.g. "axolotl-112.jar" rather than "axolotl.jar".
Tirsa Poppins
CCRL
CCRL
-
- Posts: 160
- Joined: Sat Jan 28, 2017 1:29 pm
- Location: The Netherlands
Re: new Engine, Axolotl
A new Java engine!
I've just looked at your code and have some performance suggestions:
1) Use Long.numberOfTrailingZeros() instead of getIndexOfFirstPiece()
2) Use the following code instead of getIndexOfAllPieces():
I've just looked at your code and have some performance suggestions:
1) Use Long.numberOfTrailingZeros() instead of getIndexOfFirstPiece()
2) Use the following code instead of getIndexOfAllPieces():
Code: Select all
while (pieces != 0) {
int index = Long.numberOfTrailingZeros(pieces);
//do work
pieces &= pieces - 1;
}
-
- Posts: 96
- Joined: Fri Jul 06, 2018 1:09 am
- Location: Chicago, IL
- Full name: Josh Odom
Re: new Engine, Axolotl
I didn't run the engine, but I have some notes from reading the source code:
This may seem obvious, but run the engine with profiling to find out where it's spending most of its time. This is necessary before attempting any optimization.
Instead of returning ArrayList objects from each of your move generation methods, pass a List<Move> as a parameter to each move generation method and have them add to the provided list. However, this may be a negligible performance improvement -- see above.
It looks like your transposition table will grow without bounds (unless I missed something). Normally, a transposition table is a simple array with a fixed size (usually configurable in UCI options), with a bucket replacement strategy (simplest being "always replace"). Board positions are indexed by [zobristHash % array.length].
An engine with your feature set, written in java, should be able to achieve more than 1Mn/s (single threaded, on a modern CPU). One area of concern with java is, of course, the gc. Not sure how much it slows you down, but creating many small objects (moves being the main thing I noticed) certainly isn't helping you.
This may seem obvious, but run the engine with profiling to find out where it's spending most of its time. This is necessary before attempting any optimization.
Instead of returning ArrayList objects from each of your move generation methods, pass a List<Move> as a parameter to each move generation method and have them add to the provided list. However, this may be a negligible performance improvement -- see above.
It looks like your transposition table will grow without bounds (unless I missed something). Normally, a transposition table is a simple array with a fixed size (usually configurable in UCI options), with a bucket replacement strategy (simplest being "always replace"). Board positions are indexed by [zobristHash % array.length].
An engine with your feature set, written in java, should be able to achieve more than 1Mn/s (single threaded, on a modern CPU). One area of concern with java is, of course, the gc. Not sure how much it slows you down, but creating many small objects (moves being the main thing I noticed) certainly isn't helping you.
-
- Posts: 17
- Joined: Sun Nov 11, 2018 1:28 pm
- Full name: Laurent Laborde
Re: new Engine, Axolotl
Go team France !AxolotlFever wrote: ↑Fri Nov 16, 2018 10:57 am I am from the UK and France. I don't suppose there is support for this?