spears wrote:
Sorry, don't know the answer to your question, but I am suspicious of the results presented at
https://github.com/ashelly/PET . I've just tested my java version of the twoplustwo evaluator and get 136 Mh/s vs his 21 Mh/s, on roughly comparable machines
Quote:
I tried Python directly using lookups on the 126MB "HandRanks.dat" table but could only achieve ~0.12MH/S.
My evaluator does this too, so it looks like your performance problem is something to do with Python
Yeah the results aren't ideal but they're the only one of its kind I found. Do you know of any other poker evaluator test comparisons?
Second, I'm surprised by your speeds in relation to mine. Python's performance isn't great in general but I would have thought for a simple case like this it wouldn't be off by a few factors.
A few things to note are that my speed were with "random" lookups with a comparison. So I was pitting AsTs vs 3s3c (what should be close to a perfect flip) on a random 5-card board. I was doing one initial lookup of the board, then using the integer returned to do two additional lookups for hero and villain each. Also, something I read on StackOverflow with regards to the 2p2 LUT: "The [2p2 LUT] algorithm has very poor locality of reference, execution time is going to be dominated by the speed of the memory bus since the array is too large to fit in the cache.". So there might be other factors at play here? (My CPU is a Core i3 4350, what's yours?)
I'll try some other evaluators out in the meantime, (this one looks promising for now
https://github.com/zekyll/OMPEval - also has an included comparison)