zekyll / OMPEval

Fast C++ poker hand evaluator and equity calculator
ISC License
173 stars 69 forks source link

Best way to create precalculated equity table for heads-up TH #8

Closed snarb closed 6 years ago

snarb commented 6 years ago

Thanks for great evaluator and calculator!

I want to create precalculated equity table for heads-up game for every board and every hand. I am just iterating all boards and all hands and save the results. That looks ineffective. Some strange things I have notices:

1) Monte_carlo is slower then fool enumeration 2) Fool enumeration uses only 20% of CPU. It is more effective to set thread count to one and do OMP parallel loop 3) Most time is spent in - CombinedRange::joinRanges 28.67% and CardRange::CardRange - 30.55%. I don't know code base but looks like unnecessary combos preprocessing. Unnecessary because I am only passing hands. not ranges. Would be appreciated for any ideas how to simply optimize this and accomplish my task?