Hi all,
1. Speed improvments in the trunk (git master)
==============================================
Back when I was designing the Freecell Solver's multi-tasking in version 2.4.0,
I contemplated to implement several physical processor threads operating on the
same states' collection. As a result every instance_t could contain several
hard_thread_t-s (= processor threads) which in turn could contain several
soft_thread_t-s (= scans). Many years later, I didn't implement the several
processor threads scheme, and I have learned that multi-tasking that shares
resources is likely not performant due to excessive locking.
So some days ago, I decided to implement an optional (= compile-time) scheme of
having a single hard_thread per instance_t. Implementing it yielded a
performance gain, and with it all the existing automated tests are still
passing. This also inspired some other optimisations.
The result is that we went down to about 8.984 seconds (below the 9 seconds
threshold) for the first 32K MS deals on a Core i3 machine:
$ improvement-percent from 9.10390186309814 to 8.98486089706421
1.32490605472618%
$ perl -E 'say 32_000 / 8.98486089706421'
3561.54651325275 # Deals per second.
$ perl -E 'say 32_000 / 8.98486089706421 * 60 * 60'
12821567.4477099 # Deals per hour.
So I'm happy.
2. Move Expansion in the JS Solver:
===================================
The JavaScript solver over at
http://fc-solve.shlomifish.org/js-fc-solve/text/
now can expand all multi-card moves into their individual single-cards moves.
This was inspired by several erroneous problem reports of such moves that were
believed to be illegal. I next want to output the solution in a way that there
will be an expansion button for every move, so the user can expand only the
moves that he/she believes are problematic. But this will require more work.
( Note: another cool use of the Emscripten LLVM-to-JavaScript compiler is
WebXmp:
http://www.wothke.ch/webxmp/ , which is a
JS-based .MOD/.S3M/.XM/.IT/etc. module player. Please check it out.)
3. Input data for amateur-star.sh is missing:
=============================================
And now for some bad news - I originally generated the amateur-star.sh preset
from some data files of statistics of scans that I ran, but I can no longer
find the data from these scans anywhere in the repository's version control
history. I still know what the scans used by the preset are, so I can time them
again, but it seems I still screwed up. :-(.
==============
Bye all!
Regards,
Shlomi Fish
--
-----------------------------------------------------------------
Shlomi Fish http://www.shlomifish.org/
Chuck Norris/etc. Facts - http://www.shlomifish.org/humour/bits/facts/
Chuck Norris does not own a dishwasher. His dishes know better than to become
dirty.
— http://www.shlomifish.org/humour/bits/facts/Chuck-Norris/
Please reply to list if it's a mailing list post - http://shlom.in/reply .
Received on Sun Jul 12 2015 - 06:34:15 IDT