|
2 | 2 |
|
3 | 3 | Notable changes to QMCPACK are documented in this file.
|
4 | 4 |
|
| 5 | +## [3.16.0] - 2023-01-31 |
| 6 | + |
| 7 | +This release contains important bug fixes as well as feature improvements. It is a recommended release for all users. Thanks to |
| 8 | +everyone who reported an issue or suggested an improvement. See GitHub for the full list of merged pull requests and closed issues. |
| 9 | + |
| 10 | +This release is expected to be the last including the legacy CUDA implementation, the version built with QMC_CUDA=1. Users should |
| 11 | +transition to the batched drivers which support greater functionality as well as both CPU and GPU execution. Users should adopt |
| 12 | +these drivers now and report any issues. The new drivers can be requested with the driver_version input parameter, see |
| 13 | +https://qmcpack.readthedocs.io/en/develop/performance_portable.html . In a subsequent release, the non-batched CPU drivers will also |
| 14 | +be removed leaving only the performance portable batched drivers. This will result in a single implementation of most functionality, |
| 15 | +improving overall usability and maintainability. |
| 16 | + |
| 17 | +* Important bugfix to NLPP integration grid rotations and update to all relevant deterministic test values. See issue |
| 18 | + [\#4362](https://github.com/QMCPACK/qmcpack/issues/4362) for full discussion and visualization. Found and corrected by |
| 19 | + @markdewing, this bug has existed since the earliest days of QMCPACK. The stochastic rotations used to randomly reorient the |
| 20 | + integration grids for the non-local pseudopoptentials would not cover the full sphere unless they had many points and sufficient |
| 21 | + symmetry, as was the case for the QMCPACK default. However, calculations with custom integration grids with only a few points |
| 22 | + (small `nrule`) could show error or excess statistical noise in the non-local part of the pseudopotential energy. Standard |
| 23 | + calculations and tests on carbon diamond, lithium hydride, and hydrocarbon molecules were not affected due to QMCPACK's |
| 24 | + conservative defaults. Tests updated in [\#4383](https://github.com/QMCPACK/qmcpack/pull/4383) |
| 25 | +* NLPP grid randomization can be disabled for debugging and greater reproducibility [\#4394](https://github.com/QMCPACK/qmcpack/pull/4394) |
| 26 | +* Two-body Jastrow support for true 2D calculations [\#4289](https://github.com/QMCPACK/qmcpack/pull/4289) (contributed by @Paul-St-Young) |
| 27 | +* Fix for very large calculations requesting too large grids in CUDA spline implementation [\#4421](https://github.com/QMCPACK/qmcpack/pull/4421) (contributed by @pwang234) |
| 28 | +* Bugfix in the batched OpenMP offload implementation memory errors [\#4408](https://github.com/QMCPACK/qmcpack/pull/4408) when the |
| 29 | + number of splines is not a perfectly aligned size (multiple of 8 single precision or 4 double precision). |
| 30 | +* Updates to test tolerances for many build types and platforms to improve reliability of deterministic tests. Goal: `ctest -L |
| 31 | + deterministic` should pass on all platforms. Please report any failures. |
| 32 | +* Improved CMake configuration including detecting use of parallel HDF5 in non-MPI builds |
| 33 | + [\#4420](https://github.com/QMCPACK/qmcpack/pull/4420) and detection of missing OpenMP support |
| 34 | + [\#4422](https://github.com/QMCPACK/qmcpack/pull/4422) |
| 35 | +* Optimization of spinor wavefunctions with spin-orbit and pseudopotentials re-enabled |
| 36 | + [\#4418](https://github.com/QMCPACK/qmcpack/pull/4418) |
| 37 | +* QMCPACK output now indicates status of QMC_COMPLEX [\#4412](https://github.com/QMCPACK/qmcpack/pull/4412) |
| 38 | +* Initial work for eventual GPU offloading of Gaussian basis wavefunctions for molecules and solids |
| 39 | + [\#4407](https://github.com/QMCPACK/qmcpack/pull/4407) |
| 40 | +* Bugfix to support one-body Jastrow functions where only a subset of elements is given |
| 41 | + [\#4405](https://github.com/QMCPACK/qmcpack/pull/4405) |
| 42 | +* Electron coordinates are printed in case a NaN is detected [\#4401](https://github.com/QMCPACK/qmcpack/pull/4401) |
| 43 | +* To evade support problems for complex reductions in OpenMP offload compilers, real builds no longer reference any complex |
| 44 | + reductions [\#4379](https://github.com/QMCPACK/qmcpack/pull/4379) |
| 45 | +* Enabled HIP as language in CMake (requires >= 3.21) [\#3646](https://github.com/QMCPACK/qmcpack/pull/3646). When using HIP |
| 46 | + targeting AMD GPUs, replace HIP_ARCH with CMAKE_HIP_ARCHITECTURES if HIP_ARCH was used to specify the GPU architectures. |
| 47 | +* Refinements to SYCL usage, e.g., [\#4384](https://github.com/QMCPACK/qmcpack/pull/4384), |
| 48 | + [\#4382](https://github.com/QMCPACK/qmcpack/pull/4382), [\#4380](https://github.com/QMCPACK/qmcpack/pull/4380) |
| 49 | +* Many expanded tests including for NLPP parameter derivatives [\#4394](https://github.com/QMCPACK/qmcpack/pull/4394), more boundary |
| 50 | + conditions in distance tables [\#4374](https://github.com/QMCPACK/qmcpack/pull/4374), for reptation Monte Carlo observables |
| 51 | + [\#4327](https://github.com/QMCPACK/qmcpack/pull/4327), and orbital rotations |
| 52 | + [\#4304](https://github.com/QMCPACK/qmcpack/pull/4304) |
| 53 | +* Many updates to HDF5 usage including adoption of HDF5 1.10 API [\#4352](https://github.com/QMCPACK/qmcpack/pull/4352) and |
| 54 | + related cleanup, e.g. [\#4300](https://github.com/QMCPACK/qmcpack/pull/4300) |
| 55 | +* Initial Perlmutter CPU build recipe [\#4398](https://github.com/QMCPACK/qmcpack/pull/4398) |
| 56 | +* Initial ALCF Sunspot build recipe including offloading to Intel Ponte Vecchio/Xe HPC GPU |
| 57 | + [\#4391](https://github.com/QMCPACK/qmcpack/pull/4391) |
| 58 | +* Better support for FreeBSD [\#4416](https://github.com/QMCPACK/qmcpack/pull/4416) |
| 59 | +* Minimum supported Intel classic compiler version is 2021.1. [\#4389](https://github.com/QMCPACK/qmcpack/pull/4389) |
| 60 | +* Ongoing improvement to orbital optimization and rotation, e.g. [\#4288](https://github.com/QMCPACK/qmcpack/pull/4288), [\#4402](https://github.com/QMCPACK/qmcpack/pull/4402) |
| 61 | +* Ongoing code cleanup, e.g. [\#4276](https://github.com/QMCPACK/qmcpack/pull/4276), |
| 62 | + [\#4275](https://github.com/QMCPACK/qmcpack/pull/4275), [\#4273](https://github.com/QMCPACK/qmcpack/pull/4273) |
| 63 | +* Updated bmpi3 MPI "wrapper" |
| 64 | +* Various other small bug fixes and quality of life improvements. See the full list of merged PRs on GitHub for details. |
| 65 | + |
| 66 | +### Known problems |
| 67 | + |
| 68 | +* When offload builds are compiled with CUDA toolkit versions above 11.2 (tested 11.3-11.8) using LLVM15, multideterminant tests and |
| 69 | + functionality will fail, seemingly due to an issue with the toolkit. This is discussed in |
| 70 | + https://github.com/llvm/llvm-project/issues/54633 . All other functionality appears to work as expected. As a workaround, the CUDA |
| 71 | + toolkit 11.2 can be used. The actual NVIDIA drivers can be more recent. |
| 72 | +* CUDA toolkit version 12.0 is not compatible with LLVM OpenMP offload https://github.com/llvm/llvm-project/issues/60296 |
| 73 | + |
| 74 | +### NEXUS |
| 75 | + |
| 76 | +* Nexus: Support for use of templates for job submission scripts [\#4344](https://github.com/QMCPACK/qmcpack/pull/4344) |
| 77 | +* Nexus: twist_info.dat files now added to results directory for easier analysis of twist average quantities |
| 78 | + [\#4302](https://github.com/QMCPACK/qmcpack/pull/4302) |
| 79 | +* Nexus: Initial support for Polaris at ALCF [\#4354](https://github.com/QMCPACK/qmcpack/pull/4354) |
| 80 | +* Nexus: Initial support for Perlmutter at NERSC [\#4356](https://github.com/QMCPACK/qmcpack/pull/4356) |
| 81 | +* Nexus: Support for gpusharing keyword for legacy CUDA [\#4403](https://github.com/QMCPACK/qmcpack/pull/4403) |
| 82 | +* Nexus: Support for handling multiple pickle protocols [\#4385](https://github.com/QMCPACK/qmcpack/pull/4385) |
| 83 | +* Nexus: CPU/GPU flags for batched code [\#4341](https://github.com/QMCPACK/qmcpack/pull/4341) |
| 84 | +* Nexus: Jastrow factors can be read from existing files [\#4339](https://github.com/QMCPACK/qmcpack/pull/4339) |
| 85 | +* Nexus: Fix VASP POSCAR write [\#4331](https://github.com/QMCPACK/qmcpack/pull/4331) |
| 86 | +* Nexus: Better handling of VASP pseudopotentials [\#4330](https://github.com/QMCPACK/qmcpack/pull/4330) |
| 87 | + |
| 88 | +### Known problems |
| 89 | + |
| 90 | +* The new QE7.1 DFT+U input style is not yet supported [\#4100](https://github.com/QMCPACK/qmcpack/issues/4100) |
| 91 | + |
5 | 92 | ## [3.15.0] - 2022-09-29
|
6 | 93 |
|
7 | 94 | This is a recommended release for all users. There are many quality of life
|
@@ -65,7 +152,7 @@ be required, we recommend trying these drivers now and reporting any issues.
|
65 | 152 | * Minimum CUDA version is 11.0 [\#3957](https://github.com/QMCPACK/qmcpack/pull/3957)
|
66 | 153 | * Minimum version of GCC is now v9.
|
67 | 154 |
|
68 |
| -### Nexus |
| 155 | +### NEXUS |
69 | 156 |
|
70 | 157 | * Nexus: support to current batched driver style. Example inputs for batched
|
71 | 158 | runs using trial wavefunctions from QE are included in
|
|
0 commit comments