Releases: SSCHAcode/python-sscha
1.4.1
This is a minor release update for 1.4.
The main difference is to improve compatibility with numpy distutils that broke the automatic compilation of the thermal module and fix some minor bugs in the code.
What's Changed
- Compilation error by missing module thermodynamic; fix by @diegomartinez2 in #189
- Bump SSSP version to 1.3 in AIIDA automatic tests by @bastonero in #191
Full Changelog: v1.4...v1.4.1
v1.4
Release 1.4
We are thrilled to announce the release of version 1.4 of our code, featuring significant enhancements and exciting improvements:
Key Highlights
- Code Speedup: In this release, we have achieved a remarkable speedup, with performance gains ranging from 10x to 100x in specific scenarios. This substantial acceleration is due to the new integration with Julia and a comprehensive algorithm rewrite, enabling all calculations in Fourier space during the free energy minimization.
- Enhanced Code Parallelization: Version 1.4 introduces improved code parallelization. This enhancement extends to the SSCHA minimization (now parallelizing both the evaluation of energies and forces, the gradient, and stochastic reweighting utilizing MPI) and the spectral function.
- AiiDA Integration with Quantum Espresso: Thanks to the contributions of Lorenzo Bastonero (@bastonero), the sscha code now offers a seamless integration with AiiDA and Quantum Espresso. In this way, the SSCHA leverages AiiDA to deal with cluster communication, allowing easier integration with non-SLURM or more exotic HPC configurations.
Do not worry; the old plain cluster module remains a supported feature, and we care about backward compatibility, so there is no need to change your input scripts or install AiiDA to submit on a cluster!
Detailed changes
In addition to these significant advances, we have diligently addressed various minor issues and bugs. A more complete list follows.
Julia is not a mandatory requirement to run the new version of the SSCHA. However, while the code offers a fallback mode if Julia is unavailable, we strongly recommend having Julia installed, as failure to do so may result in a significant slowdown, reducing performance gains achieved through this release (without julia the code utilizes the same implementation as in version 1.3).
For updated installation instructions and to experience the full benefits of release 1.4, visit http://sscha.eu/download/
We're excited about this release and the opportunities it offers. Your feedback is invaluable to us, and we look forward to your continued support and engagement with our code.
Thank you for being a part of this journey.
Best regards,
Lorenzo Monacelli, on behalf of the developers
What's Changed
- Timer by @mesonepigreco in #118
- add Slurm QOS parameter support by @eliheady in #120
- Fast parallelization of gradient calculation by @flibbi in #111
- Add a more advanced timing system that keeps tracks of nested functions and produce a good report by @mesonepigreco in #117
- Update Tutorial_PbTe.ipynb by @diegomartinez2 in #125
- Add an early interface with the AiiDA infrastructure by @bastonero in #134
- Fourier gradient by @mesonepigreco in #136
- Fix: props not computed are not poped (AiiDA) by @bastonero in #158
- Add a new explanation for the VC Relax by @mesonepigreco in #150
Examples
: add a sscha-aiida example by @bastonero in #148- Added an error if no stress tensor is found by @mesonepigreco in #166
New Contributors
- @eliheady made their first contribution in #120
- @flibbi made their first contribution in #111
- @bastonero made their first contribution in #134
Full Changelog: v1.2...v1.4
New version 1.2
It's time for a new release of the SSCHA code.
This new version comes with a lot of improvements in the interface between client and server in the automatic cluster submission.
In particular, the code packs together all the configurations in tar files and reduces a lot the communications and the number of connections established.
The I/O has been strongly improved, and we added a new script to analyze the output.
sscha-plot-results.py NAME
To print on file the correct information during the minimization, use:
ioinfo = sscha.Utilities.IOInfo()
ioinfo.SetupSaving("NAME")
And pass ioinfo
as an argument of custom_function_post
of run (of sscha.SchaMinimizer.SSCHA_Minimizer) or of setup_custom_function (of sscha.Relax.SSCHA).
Thanks to @diegomartinez2 , the new version implements the SOBOL algorithm to reduce the number of configurations required to reach convergence.
New version 1.1
A lot of bugs have been solved, and finally, we release the stable version of the python-sscha code.
The focus of this release was to improve the user experience. To this aim, we implemented a better minimization algorithm and a much improved variable cell relaxation algorithm. In particular, we:
- Minimization now occurs with automatic step selection (line-minimization), able to account also for imaginary frequencies and too drastic steps due to the stochastic nature of the algorithm. The user does not have to specify the step anymore, as the automatic step selection works extremely well.
- The variable cell minimization algorithm uses a similar line-minimization approach, we also fixed a bug in the units of the bulk modulus. Now the algorithm for the cell dynamics is robust and never diverges, even with a noisy ensemble.
- Speedup of the code. We removed a lot of redundant diagonalization performed throughout the code that slowed down the minimization, in particular for systems with a large primitive cell.
We have also added some useful extra features to the ensemble class, like the possibility to save into the raw format to interface with DeepMD-kit code (you can use your SSCHA ensemble to train a neural network potential!)
Furthermore, we extended the functionality of cluster calculation, which is more stable. Still, a major update on the cluster interface will come in the near future.
Remember to upload also CellConstructor to version 1.1, as the two codes must always work in paired versions.
What's Changed
- Implement v4 by @mesonepigreco in #9
- Dynamical supercell by @mesonepigreco in #10
- Update the automatic test on the master inside EasyFixModes branch by @mesonepigreco in #26
- Spectral tutorial by @rafbianco in #30
- Compare the advances on the MPI with respect to the master by @mesonepigreco in #12
- Put EasyFixModes update by @mesonepigreco in #32
- Easy fix modes by @mesonepigreco in #29
- Fix the import error and updated the version to match the pip release by @mesonepigreco in #36
- Line minimization by @mesonepigreco in #47
- Fast wpols by @mesonepigreco in #54
- New cluster interface by @mesonepigreco in #61
- Added a new way to compute the energy and forces using calculators wi… by @mesonepigreco in #62
New Contributors
- @rafbianco made their first contribution in #30
Full Changelog: https://github.com/SSCHAcode/python-sscha/commits/v1.1