Major speed improvements after optimizing the code more + JIT + Parallelization. The baseline sim run took about 36 hours, previous optimizations brought us down to 7 minutes, The current optimizations was only 7.9 seconds with the same parameters.
Major speed improvements after optimizing the code more + JIT + Parallelization. The baseline sim run took about 36 hours, while this was 7 minutes with the same parameters.
Estimated Sim Times
n=100,000 s=10,000 about 34 days to run
n=100,000 s=1,000 about 3.4 days to run
As you can see this time to run scales linearly with the N x S sizes.
Before all the optimizations the n=100,000 s=10,000 would have take 965 days!
This was run with the latest Inferno updates as of (Feb 13) and with the parallelization changes. The previous run took 36 hours or so, and this same run only too 3.2 hours due to parallelization. Basically every Radius loop can run in parallel. If you have 11 cores available, then we have about an 11x improvement in performance.
Algorithm updates:
— irreversible dynamics select a demon within the defined radius (instead of randomly from any demon)
— a different demon is selected for each process in the step (spin & bond changes)
In this sim, the radius value increments by 1 after every step.
A bug was found to cause the irreversible sim to have consistently lower entropy, which has been amended in subsequent sims.