Closed surabax closed 1 year ago
@mayerrobert As this is an update to the solution you originally wrote, I was wondering if you'd like to lend your view on the proposed changes?
@surabax I've compared the current and new version of the solution locally, and it seems the single-threaded implementations are slower after the update than they were before. The difference is not massive, but does seem to be consistent.
These are the results for the current solution (I've only included the drag-race format lines of output):
mayerrobert-cl;9598;5.000001;1;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-hashdot;433692667;5.000002;1;algorithm=base,faithful=no,bits=1
mayerrobert-cl-modulo;4248;5.000004;1;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-modulo-functions;5078;5.000014;1;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-wheel-bitvector;15447;5.01;1;algorithm=wheel,faithful=yes,bits=1
mayerrobert-cl-wheel-opt;12120;5.01;1;algorithm=wheel,faithful=yes,bits=1
mayerrobert-cl-dense;17429;5.01;1;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-words;11032;5.01;1;algorithm=other,faithful=yes,bits=1
The updated solution yields this output (again, drag-race output lines only):
mayerrobert-cl;9497;5.009999;1;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-hashdot;397541690;5.01;1;algorithm=base,faithful=no,bits=1
mayerrobert-YaroslavKhnygin-cl;29822;5.019999;32;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-modulo;4117;5.01;1;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-modulo-functions;5024;5.01;1;algorithm=base,faithful=yes,bits=1
mayerrobert-YaroslavKhnygin-cl-modulo-functions;22662;5.04;32;algorithm=base,faithful=yes,bits=1
mayerrobert-YaroslavKhnygin-cl-modulo;19756;5.02;32;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-wheel-bitvector;15214;5.01;1;algorithm=wheel,faithful=yes,bits=1
mayerrobert-YaroslavKhnygin-cl-wheel-bitvector;48912;5.02;32;algorithm=wheel,faithful=yes,bits=1
mayerrobert-cl-wheel-opt;11878;5.009999;1;algorithm=wheel,faithful=yes,bits=1
mayerrobert-YaroslavKhnygin-cl-wheel-opt;41823;5.039999;32;algorithm=wheel,faithful=yes,bits=1
mayerrobert-cl-dense;17375;5.01;1;algorithm=base,faithful=yes,bits=1
mayerrobert-YaroslavKhnygin-cl-dense;41511;5.03;32;algorithm=base,faithful=yes,bits=1
mayerrobert-cl-words;10525;5.01;1;algorithm=other,faithful=yes,bits=1
mayerrobert-YaroslavKhnygin-cl-words;35269;5.01;32;algorithm=other,faithful=yes,bits=1
I'm inclined to attribute this to the different base Docker image, which is the only change for the single-threaded solutions as far as I can tell. This being a drag-race, this represents a reason to not apply the base image change/compiler upgrade at this time.
What is your view on this?
@rbergen This makes sense, I'll remove the compiler upgrade as it was completely optional anyway.
@surabax Thank you. With the only change that affects the existing implementations now reverted, I will proceed with merging.
Thank you for your contribution!
@rbergen Awesome, thank you!
Description
Implement multithreading for the Lisp solution 2 by mayerrobert, upgrade the compiler.
Before adding multithreading, using sbcl 2.3.4 on Windows 11, WSL2, Ubuntu 22.04, 13th Gen Intel(R) Core(TM) i9-13900 @ 2.00 GHz (max turbo frequency 5.6 GHz) I get:
After adding multithreading, I get:
On Windows natively:
Contributing requirements
drag-race
as the target branch.