You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Is your feature request related to a problem? Please describe.
Recently we have discovered that a single spin flip in smol takes around 30 micron seconds to evaluate and 60 micron seconds to propose in a supercell of 512 active sites, which is approximately 100 times slower than CASM. We attribute the slow speed of smol majorly to python overhead compared to C++.
Describe the solution you'd like
Although as a heavily python-based code, smol may never outperform C-based codes, three things should still be done to significantly improve the performance of smol and allow simulating bigger systems:
1, Update the MCUsher codes. According to tests, by substituting numpy random number generator with python's default random library, single flip proposal time can be decreased to nearly 1 micron second. Canonical swaps, table-flips should be updated accordingly. Make sure that the ability to reinitialize calculations with the same random seed is preserved.
2, Improve Cython codes to compute correlation vectors, especially the python-style for-loop that iterates over orbit lists.
overhead sample code.
3, Try to reduce other potential overheads in Sampler and MCkernal.
Describe alternatives you've considered
Please describe alternative solutions or features you have considered.
The text was updated successfully, but these errors were encountered:
Is your feature request related to a problem? Please describe.
Recently we have discovered that a single spin flip in smol takes around 30 micron seconds to evaluate and 60 micron seconds to propose in a supercell of 512 active sites, which is approximately 100 times slower than CASM. We attribute the slow speed of smol majorly to python overhead compared to C++.
Describe the solution you'd like
Although as a heavily python-based code, smol may never outperform C-based codes, three things should still be done to significantly improve the performance of smol and allow simulating bigger systems:
1, Update the MCUsher codes. According to tests, by substituting numpy random number generator with python's default random library, single flip proposal time can be decreased to nearly 1 micron second. Canonical swaps, table-flips should be updated accordingly. Make sure that the ability to reinitialize calculations with the same random seed is preserved.
2, Improve Cython codes to compute correlation vectors, especially the python-style for-loop that iterates over orbit lists.
overhead sample code.
3, Try to reduce other potential overheads in Sampler and MCkernal.
Describe alternatives you've considered
Please describe alternative solutions or features you have considered.
The text was updated successfully, but these errors were encountered: