diff --git a/INSTALL.md b/INSTALL.md index c646348222..ff9700a85e 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -197,7 +197,7 @@ the FFTW3 threading library libfftw3_threads (or libfftw3_omp) is required. - The version 5.1.0 (or later) of LIBXC can be downloaded from - CP2K does not make use of fourth derivates such that LIBXC may be configured - with './configure --disable-lxc \'. + with './configure --disable-lxc \'. - During the installation, the directories `$(LIBXC_DIR)/lib` and `$(LIBXC_DIR)/include` are created. - Add `-D__LIBXC` to DFLAGS, `-I$(LIBXC_DIR)/include` to FCFLAGS @@ -333,8 +333,7 @@ should work out of the box on Nvidia hardware as well. - Add `GPUVER=Mi50, Mi60, Mi100, Mi250` - Add `OFFLOAD_CC = hipcc` - Add `-lamdhip64` to the `LIBS` variable -- Add `OFFLOAD_FLAGS = '-fopenmp -m64 -pthread -fPIC -D__GRID_HIP -O2 - --offload-arch=gfx908 --rocm-path=$(ROCM_PATH)'` where `ROCM_PATH` is the path +- Add `OFFLOAD_FLAGS = '-fopenmp -m64 -pthread -fPIC -D__GRID_HIP -O2 --offload-arch=gfx908 --rocm-path=$(ROCM_PATH)'` where `ROCM_PATH` is the path where the rocm sdk resides. Architectures Mi250 (gfx90a), Mi100 (gfx908), Mi50 (gfx906) the hip backend for the grid library supports nvidia hardware as well. It uses the same code and can be used to validate the backend in case @@ -429,13 +428,13 @@ Alternatively, provides sample arch files as part o the testing reports (click on the status field, search for 'ARCH-file'). - With -DNDEBUG assertions may be stripped ("compiled out"). -- NDEBUG is the ANSI-conforming symbol name (not __NDEBUG). +- NDEBUG is the ANSI-conforming symbol name (not \_\_NDEBUG). - Regular release builds may carry assertions for safety. Conventionally, there are six versions: -| Acronym | Meaning | -|---------|----------------------------------| +| Acronym | Meaning | +| ------- | -------------------------------- | | sdbg | OpenMP + debug settings | | sopt | OpenMP + OMP_NUM_THREADS=1 | | ssmp | OpenMP | @@ -589,4 +588,4 @@ can be generated using the cp2k executable, see -| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | -| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | --------------------------------- | ---------------- | -| HECToR | Cray XE6 | 21/1/2014 | 13196 | 403.928 | 512 cores | 2 OMP threads per MPI task | [hector-h2o-64](https://www.cp2k.org/performance:hector-h2o-64) | -| ARCHER | Cray XC30 | 9/1/2014 | 13473 | 197.117 | 576 cores | 1 OMP thread per MPI task | [archer-h2o-64](https://www.cp2k.org/performance:archer-h2o-64) | -| Magnus | Cray XC40 | 6/11/2014 | 14377 | 150.493 | 384 cores | 1 OMP thread per MPI task | [magnus-h2o-64](https://www.cp2k.org/performance:magnus-h2o-64) | +| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | +| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | --------------------------------- | --------------------------------------------------------------------- | +| HECToR | Cray XE6 | 21/1/2014 | 13196 | 403.928 | 512 cores | 2 OMP threads per MPI task | [hector-h2o-64](https://www.cp2k.org/performance:hector-h2o-64) | +| ARCHER | Cray XC30 | 9/1/2014 | 13473 | 197.117 | 576 cores | 1 OMP thread per MPI task | [archer-h2o-64](https://www.cp2k.org/performance:archer-h2o-64) | +| Magnus | Cray XC40 | 6/11/2014 | 14377 | 150.493 | 384 cores | 1 OMP thread per MPI task | [magnus-h2o-64](https://www.cp2k.org/performance:magnus-h2o-64) | | Piz Daint | Cray XC30 | 12/05/2015 | 15268 | 207.972 | 192 cores | 1 OMP thread per MPI task, no GPU | [piz-daint-h2o-64](https://www.cp2k.org/performance:piz-daint-h2o-64) | -| Cirrus | SGI ICE XA | 24/11/2016 | 7566 | 166.192 | 1152 cores | 9 OMP threads per MPI task | [cirrus-h2o-64](https://www.cp2k.org/performance:cirrus-h2o-64) | -| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 119.820 | 640 cores | 10 OMP thread per MPI task | [noctua-h2o-64](https://www.cp2k.org/performance:noctua-h2o-64) | - +| Cirrus | SGI ICE XA | 24/11/2016 | 7566 | 166.192 | 1152 cores | 9 OMP threads per MPI task | [cirrus-h2o-64](https://www.cp2k.org/performance:cirrus-h2o-64) | +| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 119.820 | 640 cores | 10 OMP thread per MPI task | [noctua-h2o-64](https://www.cp2k.org/performance:noctua-h2o-64) | diff --git a/benchmarks/QMMM_CBD_PHY/README.md b/benchmarks/QMMM_CBD_PHY/README.md index 94f7977581..045c9729a5 100644 --- a/benchmarks/QMMM_CBD_PHY/README.md +++ b/benchmarks/QMMM_CBD_PHY/README.md @@ -14,17 +14,17 @@ Generalized Hybrid Orbital (GHO) method. ## Files description -``CBD_PHY.inp`` - CP2K input file. +`CBD_PHY.inp` - CP2K input file. -``CBD_PHY.prmtop`` - Amber forcefield for MM atoms. The Amber03 forcefield and +`CBD_PHY.prmtop` - Amber forcefield for MM atoms. The Amber03 forcefield and the TIP3P water model are used. -``CBD_PHY.pdb`` - Atomic input coordinates. +`CBD_PHY.pdb` - Atomic input coordinates. ## Results ### MD Energy file - + ```cp2k-output # Step Nr. Time[fs] Kin.[a.u.] Temp[K] Pot.[a.u.] Cons Qty[a.u.] UsedTime[s] 0 0.000000 239.300084734 300.000000000 -1095.757596412 -856.457511678 0.000000000 @@ -34,14 +34,11 @@ the TIP3P water model are used. 4 4.000000 237.524625019 297.774184180 -1087.284636223 -849.760011204 26.518459213 5 5.000000 245.799648725 308.148217747 -1101.835669561 -856.036020836 27.761591604 ``` - ### Best Configurations The best configurations are shown below. - -| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | -| ------------ | ------------ | ---------- | -----------| ---------------- | --------------- | --------------------------------- | -| ARCHER | Cray XC30 | 07/06/2020 | 6e0731f | 358.478 | 576 | 6 OMP threads per MPI task | - +| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | +| ------------ | ------------ | ---------- | ---------- | ---------------- | --------------- | -------------------------- | +| ARCHER | Cray XC30 | 07/06/2020 | 6e0731f | 358.478 | 576 | 6 OMP threads per MPI task | diff --git a/benchmarks/QMMM_ClC/README.md b/benchmarks/QMMM_ClC/README.md index 4869b60e2c..3c65273ab7 100644 --- a/benchmarks/QMMM_ClC/README.md +++ b/benchmarks/QMMM_ClC/README.md @@ -20,20 +20,19 @@ See also . ## Files description -``ClC-19.inp`` - ClC with 19 QM atoms. +`ClC-19.inp` - ClC with 19 QM atoms. -``ClC-253.inp`` - ClC with 253 QM atoms. +`ClC-253.inp` - ClC with 253 QM atoms. -``ClC.prmtop`` - Amber forcefield for MM atoms. The Amber14 forcefield and +`ClC.prmtop` - Amber forcefield for MM atoms. The Amber14 forcefield and the TIP3P water model are used. -``ClC.pdb`` - Atomic input coordinates. +`ClC.pdb` - Atomic input coordinates. ## Results ### MD Energy file for ClC-19 - ```cp2k-output # Step Nr. Time[fs] Kin.[a.u.] Temp[K] Pot.[a.u.] Cons Qty[a.u.] UsedTime[s] 0 0.000000 215.076797492 300.000000000 -596.086687006 -381.009889515 0.000000000 @@ -58,13 +57,12 @@ the TIP3P water model are used. ### Best Configuration for ClC-19 -| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | -| ------------ | ------------ | ---------- | -----------| ---------------- | --------------- | --------------------------------- | -| ARCHER | Cray XC30 | 16/06/2020 | 6e0731f | 225.171 | 384 | 4 OMP threads per MPI task | +| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | +| ------------ | ------------ | ---------- | ---------- | ---------------- | --------------- | -------------------------- | +| ARCHER | Cray XC30 | 16/06/2020 | 6e0731f | 225.171 | 384 | 4 OMP threads per MPI task | ### Best Configuration for ClC-253 -| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | -| ------------ | ------------ | ---------- | -----------| ---------------- | --------------- | --------------------------------- | -| ARCHER | Cray XC30 | 16/06/2020 | 6e0731f | 937.151 | 576 | 6 OMP threads per MPI task | - +| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | +| ------------ | ------------ | ---------- | ---------- | ---------------- | --------------- | -------------------------- | +| ARCHER | Cray XC30 | 16/06/2020 | 6e0731f | 937.151 | 576 | 6 OMP threads per MPI task | diff --git a/benchmarks/QMMM_MQAE/README.md b/benchmarks/QMMM_MQAE/README.md index e280d908d0..e4c63f798f 100644 --- a/benchmarks/QMMM_MQAE/README.md +++ b/benchmarks/QMMM_MQAE/README.md @@ -17,17 +17,17 @@ See also . ## Files description -``MQAE.inp`` - CP2K input file. +`MQAE.inp` - CP2K input file. -``MQAE.prmtop`` - Amber forcefield for MM atoms. The Amber14 forcefield and +`MQAE.prmtop` - Amber forcefield for MM atoms. The Amber14 forcefield and the SPCE water model are used. -``MQAE.pdb`` - Atomic input coordinates. +`MQAE.pdb` - Atomic input coordinates. ## Results ### MD Energy file - + ```cp2k-output # Step Nr. Time[fs] Kin.[a.u.] Temp[K] Pot.[a.u.] Cons Qty[a.u.] UsedTime[s] 0 0.000000 10.239105709 300.000000000 -191.999316391 -181.760210683 0.000000000 @@ -42,7 +42,6 @@ the SPCE water model are used. The best configurations are shown below. -| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | -| ------------ | ------------ | ---------- | -----------| ---------------- | --------------- | --------------------------------- | -| ARCHER | Cray XC30 | 16/06/2020 | 6e0731f | 72.439 | 384 | 6 OMP threads per MPI task | - +| Machine Name | Architecture | Date | Commit No. | Fastest time (s) | Number of Cores | Number of Threads | +| ------------ | ------------ | ---------- | ---------- | ---------------- | --------------- | -------------------------- | +| ARCHER | Cray XC30 | 16/06/2020 | 6e0731f | 72.439 | 384 | 6 OMP threads per MPI task | diff --git a/benchmarks/QS/README.md b/benchmarks/QS/README.md index 075bb12c34..ba5080171f 100644 --- a/benchmarks/QS/README.md +++ b/benchmarks/QS/README.md @@ -35,13 +35,11 @@ initial guess of the electronic density is made based on Atomic Orbitals. The best configurations are shown below. Click the links under "Detailed Results" to see more detail. - -| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | -| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | --------------------------------- | ---------------- | -| HECToR | Cray XE6 | 21/1/2014 | 13196 | 39.066 | 512 cores | 2 OMP threads per MPI task | [hector-h2o-64](https://www.cp2k.org/performance:hector-h2o-64) | -| ARCHER | Cray XC30 | 8/1/2014 | 13473 | 18.11 | 576 cores | 1 OMP thread per MPI task | [archer-h2o-64](https://www.cp2k.org/performance:archer-h2o-64) | -| Magnus | Cray XC40 | 22/10/2014 | 14377 | 17.275 | 384 cores | 1 OMP thread per MPI task | [magnus-h2o-64](https://www.cp2k.org/performance:magnus-h2o-64) | +| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | +| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | --------------------------------- | --------------------------------------------------------------------- | +| HECToR | Cray XE6 | 21/1/2014 | 13196 | 39.066 | 512 cores | 2 OMP threads per MPI task | [hector-h2o-64](https://www.cp2k.org/performance:hector-h2o-64) | +| ARCHER | Cray XC30 | 8/1/2014 | 13473 | 18.11 | 576 cores | 1 OMP thread per MPI task | [archer-h2o-64](https://www.cp2k.org/performance:archer-h2o-64) | +| Magnus | Cray XC40 | 22/10/2014 | 14377 | 17.275 | 384 cores | 1 OMP thread per MPI task | [magnus-h2o-64](https://www.cp2k.org/performance:magnus-h2o-64) | | Piz Daint | Cray XC30 | 12/05/2015 | 15268 | 19.885 | 192 cores | 1 OMP thread per MPI task, no GPU | [piz-daint-h2o-64](https://www.cp2k.org/performance:piz-daint-h2o-64) | -| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 15.560 | 1152 cores | 9 OMP threads per MPI task | [cirrus-h2o-64](https://www.cp2k.org/performance:cirrus-h2o-64) | -| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 13.3 | 640 cores | 10 OMP threads per MPI task | [noctua-h2o-64](https://www.cp2k.org/performance:noctua-h2o-64) | - \ No newline at end of file +| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 15.560 | 1152 cores | 9 OMP threads per MPI task | [cirrus-h2o-64](https://www.cp2k.org/performance:cirrus-h2o-64) | +| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 13.3 | 640 cores | 10 OMP threads per MPI task | [noctua-h2o-64](https://www.cp2k.org/performance:noctua-h2o-64) | diff --git a/benchmarks/QS_DM_LS/README.md b/benchmarks/QS_DM_LS/README.md index 1f109b9593..01122988c1 100644 --- a/benchmarks/QS_DM_LS/README.md +++ b/benchmarks/QS_DM_LS/README.md @@ -41,16 +41,14 @@ the number of atoms scales cubically with `NREP`. The best configurations are shown below. Click the links under "Detailed Results" to see more detail. - -| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | -| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | ---------------------------------- | ---------------- | -| HECToR | Cray XE6 | 16/1/2014 | 13196 | 98.256 | 65536 | 8 OMP threads per MPI task | [hector-h2o-dft-ls](https://www.cp2k.org/performance:hector-h2o-dft-ls) | -| ARCHER | Cray XC30 | 8/1/2014 | 13473 | 28.476 | 49152 | 4 OMP threads per MPI task | [archer-h2o-dft-ls](https://www.cp2k.org/performance:archer-h2o-dft-ls) | -| Magnus | Cray XC40 | 3/12/2014 | 14377 | 30.921 | 24576 | 2 OMP threads per MPI task | [magnus-h2o-dft-ls](https://www.cp2k.org/performance:magnus-h2o-dft-ls) | +| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | +| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | ---------------------------------- | ----------------------------------------------------------------------------- | +| HECToR | Cray XE6 | 16/1/2014 | 13196 | 98.256 | 65536 | 8 OMP threads per MPI task | [hector-h2o-dft-ls](https://www.cp2k.org/performance:hector-h2o-dft-ls) | +| ARCHER | Cray XC30 | 8/1/2014 | 13473 | 28.476 | 49152 | 4 OMP threads per MPI task | [archer-h2o-dft-ls](https://www.cp2k.org/performance:archer-h2o-dft-ls) | +| Magnus | Cray XC40 | 3/12/2014 | 14377 | 30.921 | 24576 | 2 OMP threads per MPI task | [magnus-h2o-dft-ls](https://www.cp2k.org/performance:magnus-h2o-dft-ls) | | Piz Daint | Cray XC30 | 12/05/2015 | 15268 | 27.900 | 32768 | 2 OMP threads per MPI task, no GPU | [piz-daint-h2o-dft-ls](https://www.cp2k.org/performance:piz-daint-h2o-dft-ls) | -| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 543.032 | 2016 | 2 OMP threads per MPI task | [cirrus-h2o-dft-ls](https://www.cp2k.org/performance:cirrus-h2o-dft-ls) | -| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 37.730 | 10240 | 10 OMP threads per MPI task | [noctua-h2o-dft-ls](https://www.cp2k.org/performance:noctua-h2o-dft-ls) | - +| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 543.032 | 2016 | 2 OMP threads per MPI task | [cirrus-h2o-dft-ls](https://www.cp2k.org/performance:cirrus-h2o-dft-ls) | +| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 37.730 | 10240 | 10 OMP threads per MPI task | [noctua-h2o-dft-ls](https://www.cp2k.org/performance:noctua-h2o-dft-ls) | ### Weak Scaling on Piz Daint, CSCS @@ -67,26 +65,24 @@ Following results were obtained in the following conditions: while the cells marked with an `X` crashed with out-of-memory errors, and the cells left empty weren't measured. -| nodes / NREP | NREP=1 | NREP=2 | NREP=3 | NREP=4 | NREP=6 | NREP=8 | NREP=9 | -| ------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | -| 1 node | 7.4 | 60.3 | X | | | | | -| 2 nodes | 7.4 | 35.0 | 269.4 | X | | | | -| 4 nodes | 9.9 | 22.7 | 149.8 | X | | | | -| 6 nodes | 12.1 | 19.7 | 113.0 | X | | | | -| 8 nodes | 11.4 | 16.4 | 90.2 | 253.4 | X | | | -| 12 nodes | 15.5 | 21.7 | 71.5 | 193.8 | X | | | -| 16 nodes | 15.5 | 20.8 | 61.5 | 159.2 | X | | | -| 24 nodes | 22.0 | 24.7 | 51.8 | 130.2 | X | | | -| 32 nodes | 15.9 | 20.4 | 42.8 | 101.8 | 352.9 | X | | -| 36 nodes | 21.9 | 25.6 | 44.0 | 99.8 | 333.0 | X | | -| 48 nodes | 24.5 | 34.1 | 42.0 | 84.1 | 277.9 | X | | -| 64 nodes | 24.9 | 29.0 | 40.4 | 79.7 | 257.5 | X | | -| 128 nodes | 26.3 | 32.8 | 36.6 | 62.5 | 181.9 | 400.6 | X | +| nodes / NREP | NREP=1 | NREP=2 | NREP=3 | NREP=4 | NREP=6 | NREP=8 | NREP=9 | +| ------------ | ------ | ------ | ------ | ------ | ------ | ------ | ------ | +| 1 node | 7.4 | 60.3 | X | | | | | +| 2 nodes | 7.4 | 35.0 | 269.4 | X | | | | +| 4 nodes | 9.9 | 22.7 | 149.8 | X | | | | +| 6 nodes | 12.1 | 19.7 | 113.0 | X | | | | +| 8 nodes | 11.4 | 16.4 | 90.2 | 253.4 | X | | | +| 12 nodes | 15.5 | 21.7 | 71.5 | 193.8 | X | | | +| 16 nodes | 15.5 | 20.8 | 61.5 | 159.2 | X | | | +| 24 nodes | 22.0 | 24.7 | 51.8 | 130.2 | X | | | +| 32 nodes | 15.9 | 20.4 | 42.8 | 101.8 | 352.9 | X | | +| 36 nodes | 21.9 | 25.6 | 44.0 | 99.8 | 333.0 | X | | +| 48 nodes | 24.5 | 34.1 | 42.0 | 84.1 | 277.9 | X | | +| 64 nodes | 24.9 | 29.0 | 40.4 | 79.7 | 257.5 | X | | +| 128 nodes | 26.3 | 32.8 | 36.6 | 62.5 | 181.9 | 400.6 | X | - -| nodes / NREP | NREP=6 | NREP=8 | NREP=9 | NREP=10 | NREP=11 | NREP=12 | NREP=13 | NREP=14 | NREP=16 | NREP=18 | NREP=19 | NREP=20 | -| ------------- | ----- | ----- | ----- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -| 256 nodes | 132.6 | 262.3 | 359.2 | 498.8 | 647.1 | X | | | | | | | -| 512 nodes | 106.0 | 212.5 | 290.2 | 409.2 | 534.0 | 732.3 | 875.2 | 1030.1 | X | | | | -| 1024 nodes | 98.1 | 168.9 | | 284.7 | | 510.8 | | 786.5 | 1161.1 | 1607.3 | 1872.8 | X | - +| nodes / NREP | NREP=6 | NREP=8 | NREP=9 | NREP=10 | NREP=11 | NREP=12 | NREP=13 | NREP=14 | NREP=16 | NREP=18 | NREP=19 | NREP=20 | +| ------------ | ------ | ------ | ------ | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | +| 256 nodes | 132.6 | 262.3 | 359.2 | 498.8 | 647.1 | X | | | | | | | +| 512 nodes | 106.0 | 212.5 | 290.2 | 409.2 | 534.0 | 732.3 | 875.2 | 1030.1 | X | | | | +| 1024 nodes | 98.1 | 168.9 | | 284.7 | | 510.8 | | 786.5 | 1161.1 | 1607.3 | 1872.8 | X | diff --git a/benchmarks/QS_LiH_HFX/README.md b/benchmarks/QS_LiH_HFX/README.md index 36f7b76832..a6d505f220 100644 --- a/benchmarks/QS_LiH_HFX/README.md +++ b/benchmarks/QS_LiH_HFX/README.md @@ -29,7 +29,7 @@ avoid recomputing any integrals on-the-fly, improving performance. ## Benchmark Requirements To run these this benchmark, CP2K needs to be compiled with libint support -(-D__LIBINT), and it is advantageous to have a OMP/MPI hybrid code (cp2k.psmp). +(-D\_\_LIBINT), and it is advantageous to have a OMP/MPI hybrid code (cp2k.psmp). ## How to Run the Benchmark @@ -41,7 +41,7 @@ To run these this benchmark, CP2K needs to be compiled with libint support cp LiH_bulk_3-RESTART.wfn B88.wfn ``` -2. run `input_bulk_HFX_3.inp` on a number of nodes (about 30min on 2048 cores) +1. run `input_bulk_HFX_3.inp` on a number of nodes (about 30min on 2048 cores) The obtained energies should be similar to (obtained on 2048 MPI x 8 OMP cores): @@ -108,18 +108,16 @@ BASIS_SET OPT1 The best configurations are shown below. Click the links under "Detailed Results" to see more detail. - -| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of cores | Number of threads | Detailed results | -| ------------:| ------------:| ----------:| ------------:| ----------------:| ---------------:| ----------------------------------:| ----------------:| -| HECToR | Cray XE6 | 21/1/2014 | 13196(*) | 121.362 | 65536 | 8 OMP threads per MPI task | [hector-lih-hfx](https://www.cp2k.org/performance:hector-lih-hfx) | -| ARCHER | Cray XC30 | 9/1/2014 | 13473(*) | 51.172 | 49152 | 6 OMP threads per MPI task | [archer-lih-hfx](https://www.cp2k.org/performance:archer-lih-hfx) | -| Magnus | Cray XC40 | 10/11/2014 | 14377(*) | 62.075 | 24576 | 4 OMP threads per MPI task | [magnus-lih-hfx](https://www.cp2k.org/performance:magnus-lih-hfx) | -| Piz Daint | Cray XC30 | 12/05/2015 | 15268 | 66.051 | 32768 | 4 OMP threads per MPI task, no GPU | [piz-daint-lih-hfx](https://www.cp2k.org/performance:piz-daint-lih-hfx) | -| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 483.676 | 2016 | 6 OMP threads per MPI task | [cirrus-lih-hfx](https://www.cp2k.org/performance:cirrus-lih-hfx) | -| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 131.290 | 10240 | 4 OMP threads per MPI task | [noctua-lih-hfx](https://www.cp2k.org/performance:noctua-lih-hfx) | - +| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of cores | Number of threads | Detailed results | +| -----------: | -----------: | ---------: | -----------: | ---------------: | --------------: | ---------------------------------: | ----------------------------------------------------------------------: | +| HECToR | Cray XE6 | 21/1/2014 | 13196(\*) | 121.362 | 65536 | 8 OMP threads per MPI task | [hector-lih-hfx](https://www.cp2k.org/performance:hector-lih-hfx) | +| ARCHER | Cray XC30 | 9/1/2014 | 13473(\*) | 51.172 | 49152 | 6 OMP threads per MPI task | [archer-lih-hfx](https://www.cp2k.org/performance:archer-lih-hfx) | +| Magnus | Cray XC40 | 10/11/2014 | 14377(\*) | 62.075 | 24576 | 4 OMP threads per MPI task | [magnus-lih-hfx](https://www.cp2k.org/performance:magnus-lih-hfx) | +| Piz Daint | Cray XC30 | 12/05/2015 | 15268 | 66.051 | 32768 | 4 OMP threads per MPI task, no GPU | [piz-daint-lih-hfx](https://www.cp2k.org/performance:piz-daint-lih-hfx) | +| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 483.676 | 2016 | 6 OMP threads per MPI task | [cirrus-lih-hfx](https://www.cp2k.org/performance:cirrus-lih-hfx) | +| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 131.290 | 10240 | 4 OMP threads per MPI task | [noctua-lih-hfx](https://www.cp2k.org/performance:noctua-lih-hfx) | -(*) Prior to r14945, a bug resulted in an underestimation of the number of ERIs +(\*) Prior to r14945, a bug resulted in an underestimation of the number of ERIs which should be computed (by roughly 50% for this benchmark. Therefore these results cannot be compared directly with later ones. @@ -128,12 +126,12 @@ results cannot be compared directly with later ones. Running on ORNL's Cray XT5 (Jaguar) the following runtime has been obtained in a setup using 8 OMP threads per node (8 cores per node / 16 Gb per node). -| Cores | Full CP2K[s] | HFX[s] | local HFX[s] | Mem/node[Mb] | -| -----:| ------------:| -------:| ------------:| ------------:| -| 1024 | 6569.07 | 6488.24 | 6406.99 | 14845.00 | -| 2048 | 1369.92 | 1314.86 | 1259.82 | 13468.00 | -| 4096 | 722.24 | 670.18 | 631.11 | 7293.00 | -| 8192 | 402.18 | 352.21 | 317.59 | 4306.00 | -| 16384 | 274.41 | 213.88 | 172.88 | 2801.00 | -| 32768 | 201.71 | 135.47 | 85.29 | 2046.00 | -| 65536 | 255.97 | 117.33 | 41.43 | 1673.00 | +| Cores | Full CP2K\[s\] | HFX\[s\] | local HFX\[s\] | Mem/node\[Mb\] | +| ----: | -------------: | -------: | -------------: | -------------: | +| 1024 | 6569.07 | 6488.24 | 6406.99 | 14845.00 | +| 2048 | 1369.92 | 1314.86 | 1259.82 | 13468.00 | +| 4096 | 722.24 | 670.18 | 631.11 | 7293.00 | +| 8192 | 402.18 | 352.21 | 317.59 | 4306.00 | +| 16384 | 274.41 | 213.88 | 172.88 | 2801.00 | +| 32768 | 201.71 | 135.47 | 85.29 | 2046.00 | +| 65536 | 255.97 | 117.33 | 41.43 | 1673.00 | diff --git a/benchmarks/QS_low_scaling_GW/README.md b/benchmarks/QS_low_scaling_GW/README.md index f364fe4d3b..99c6dd9365 100644 --- a/benchmarks/QS_low_scaling_GW/README.md +++ b/benchmarks/QS_low_scaling_GW/README.md @@ -18,8 +18,8 @@ To run the benchmark, CP2K needs to be compiled with libint support (`-D__LIBINT ## Results on Piz Dora, CSCS -| Input File | Configuration | Total Number of Cores| Runtime [s] | -| ---------- | -------------------------:| --------------------:| ------------:| -| GW.inp | 16 nodes x 36 MPI x 1 OMP | 576 | 305 | +| Input File | Configuration | Total Number of Cores | Runtime \[s\] | +| ---------- | ------------------------: | --------------------: | ------------: | +| GW.inp | 16 nodes x 36 MPI x 1 OMP | 576 | 305 | The timings have been obtained on CRAY-XC40 (PizDora@CSCS) diff --git a/benchmarks/QS_mp2_rpa/128-H2O/README.md b/benchmarks/QS_mp2_rpa/128-H2O/README.md index 14e6f6386e..051f6c51fa 100644 --- a/benchmarks/QS_mp2_rpa/128-H2O/README.md +++ b/benchmarks/QS_mp2_rpa/128-H2O/README.md @@ -16,17 +16,16 @@ 1. run `H2O-128-PBE-TZ.inp`: this will generate the file `H2O-128-PBE-TZ-RESTART.wfn`, necessary for the benchmark run. -2. run `H2O-128-RI-dRPA-TZ.inp` for the RI-RPA benchmark. +1. run `H2O-128-RI-dRPA-TZ.inp` for the RI-RPA benchmark. ## Results ### Results on Piz Daint, CSCS - -| Input File | Date | CP2K Git SHA | Number of nodes | Node Configuration | Runtime | -| ---------------------- | ---------- | ------------:| ---------------:| ------------------- | ------- | -| H2O-128-PBE-TZ.inp | 2019-08-19 | 4519a8ad7 | 4 nodes | 12 MPI x 1 OMP | ~2 min | -| H2O-128-RI-dRPA-TZ.inp | 2019-08-19 | 4519a8ad7 | 128 nodes | 2 MPI x 6 OMP | 80 min | -| H2O-128-RI-dRPA-TZ.inp | 2019-12-03 | 78cea8eee | 1024 nodes | 2 MPI x 6 OMP | 487 sec | - -*) The timings have been obtained on CRAY-XC50 (PizDaint@CSCS, GPU partition) +| Input File | Date | CP2K Git SHA | Number of nodes | Node Configuration | Runtime | +| ---------------------- | ---------- | -----------: | --------------: | ------------------ | ------- | +| H2O-128-PBE-TZ.inp | 2019-08-19 | 4519a8ad7 | 4 nodes | 12 MPI x 1 OMP | ~2 min | +| H2O-128-RI-dRPA-TZ.inp | 2019-08-19 | 4519a8ad7 | 128 nodes | 2 MPI x 6 OMP | 80 min | +| H2O-128-RI-dRPA-TZ.inp | 2019-12-03 | 78cea8eee | 1024 nodes | 2 MPI x 6 OMP | 487 sec | + +\*) The timings have been obtained on CRAY-XC50 (PizDaint@CSCS, GPU partition) diff --git a/benchmarks/QS_mp2_rpa/32-H2O/README.md b/benchmarks/QS_mp2_rpa/32-H2O/README.md index d91c894c9d..0f31a2a64c 100644 --- a/benchmarks/QS_mp2_rpa/32-H2O/README.md +++ b/benchmarks/QS_mp2_rpa/32-H2O/README.md @@ -23,16 +23,16 @@ are taken from [cp2k/data](../../../data) directory. 1. run `H2O-32-PBE-TZ.inp`: this will generate the file `H2O-32-PBE-TZ-RESTART.wfn`, necessary for the two benchmark runs. -2. run `H2O-32-RI-MP2-TZ.inp` for the RI-MP2 benchmark. -3. and/or run `H2O-32-RI-dRPA-TZ.inp` for the RI-RPA benchmark. +1. run `H2O-32-RI-MP2-TZ.inp` for the RI-MP2 benchmark. +1. and/or run `H2O-32-RI-dRPA-TZ.inp` for the RI-RPA benchmark. ## Results ### Results on Piz Dora, CSCS -| Input File | Configuration | Total Number of Cores| Runtime [s] | -| ---------- | -------------------------:| --------------------:| ------------:| -| RI-MP2.inp | 16 nodes x 16 MPI x 1 OMP | 256 | 392 | -| RI-RPA.inp | 16 nodes x 16 MPI x 1 OMP | 256 | 221 | +| Input File | Configuration | Total Number of Cores | Runtime \[s\] | +| ---------- | ------------------------: | --------------------: | ------------: | +| RI-MP2.inp | 16 nodes x 16 MPI x 1 OMP | 256 | 392 | +| RI-RPA.inp | 16 nodes x 16 MPI x 1 OMP | 256 | 221 | -*) The timings have been obtained on CRAY-XC40 (PizDora@CSCS) +\*) The timings have been obtained on CRAY-XC40 (PizDora@CSCS) diff --git a/benchmarks/QS_mp2_rpa/64-H2O/README.md b/benchmarks/QS_mp2_rpa/64-H2O/README.md index 8ee1cafbf8..c27aa2dd0a 100644 --- a/benchmarks/QS_mp2_rpa/64-H2O/README.md +++ b/benchmarks/QS_mp2_rpa/64-H2O/README.md @@ -24,8 +24,8 @@ RI-MP2 run, and can be found in the [cp2k/data](../../../data) directory. 1. run `H2O-64-PBE-TZ.inp`: this will generate the file `H2O-64-PBE-TZ-RESTART.wfn`, necessary for the two benchmark runs. -2. run `H2O-64-RI-MP2-TZ.inp` for the RI-MP2 benchmark. -3. and/or run `H2O-64-RI-dRPA-TZ.inp` for the RI-RPA benchmark. +1. run `H2O-64-RI-MP2-TZ.inp` for the RI-MP2 benchmark. +1. and/or run `H2O-64-RI-dRPA-TZ.inp` for the RI-RPA benchmark. ## Results @@ -34,33 +34,30 @@ RI-MP2 run, and can be found in the [cp2k/data](../../../data) directory. The best configurations are shown below. Click the links under "Detailed Results"to see more detail. - -| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | -| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | ---------------------------------- | ---------------- | -| HECToR | Cray XE6 | 13/01/2014 | 13196 | 141.633 | 49152 | 8 OMP threads per MPI task | [hector-h2o-64-ri-mp2](https://www.cp2k.org/performance:hector-h2o-64-ri-mp2) | -| ARCHER | Cray XC30 | 09/01/2014 | 13473 | 83.945 | 36864 | 4 OMP threads per MPI task | [archer-h2o-64-ri-mp2](https://www.cp2k.org/performance:archer-h2o-64-ri-mp2) | -| Magnus | Cray XC40 | 04/11/2014 | 14377 | 63.891 | 24576 | 6 OMP threads per MPI task | [magnus-h2o-64-ri-mp2](https://www.cp2k.org/performance:magnus-h2o-64-ri-mp2) | +| Machine Name | Architecture | Date | SVN Revision | Fastest time (s) | Number of Cores | Number of Threads | Detailed Results | +| ------------ | ------------ | ---------- | ------------ | ---------------- | --------------- | ---------------------------------- | ----------------------------------------------------------------------------------- | +| HECToR | Cray XE6 | 13/01/2014 | 13196 | 141.633 | 49152 | 8 OMP threads per MPI task | [hector-h2o-64-ri-mp2](https://www.cp2k.org/performance:hector-h2o-64-ri-mp2) | +| ARCHER | Cray XC30 | 09/01/2014 | 13473 | 83.945 | 36864 | 4 OMP threads per MPI task | [archer-h2o-64-ri-mp2](https://www.cp2k.org/performance:archer-h2o-64-ri-mp2) | +| Magnus | Cray XC40 | 04/11/2014 | 14377 | 63.891 | 24576 | 6 OMP threads per MPI task | [magnus-h2o-64-ri-mp2](https://www.cp2k.org/performance:magnus-h2o-64-ri-mp2) | | Piz Daint | Cray XC30 | 12/05/2015 | 15268 | 48.15 | 32768 | 8 OMP threads per MPI task, no GPU | [piz-daint-h2o-64-ri-mp2](https://www.cp2k.org/performance:piz-daint-h2o-64-ri-mp2) | -| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 303.571 | 2016 | 1 OMP thread per MPI task | [cirrus-h2o-64-ri-mp2](https://www.cp2k.org/performance:cirrus-h2o-64-ri-mp2) | -| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 82.571 | 10240 | 2 OMP threads per MPI task | [noctua-h2o-64-ri-mp2](https://www.cp2k.org/performance:noctua-h2o-64-ri-mp2) | - +| Cirrus | SGI ICE XA | 24/11/2016 | 17566 | 303.571 | 2016 | 1 OMP thread per MPI task | [cirrus-h2o-64-ri-mp2](https://www.cp2k.org/performance:cirrus-h2o-64-ri-mp2) | +| Noctua | Cray CS500 | 25/09/2019 | 9f58d81 | 82.571 | 10240 | 2 OMP threads per MPI task | [noctua-h2o-64-ri-mp2](https://www.cp2k.org/performance:noctua-h2o-64-ri-mp2) | ### Results on Monte Rosa, CSCS -| Input File | Configuration | Total Number of Cores| Runtime | -| --------------------- | -------------------:| --------------------:| -------:| -| H2O-64-PBE-TZ.inp | 128 MPI x 2 OMP | 256 | 50 s | -| H2O-64-RI-MP2-TZ.inp | 1024 MPI x 2 OMP | 2048 | ~18 min | -| H2O-64-RI-dRPA-TZ.inp | 1024 MPI x 2 OMP | 2048 | ~12 min | +| Input File | Configuration | Total Number of Cores | Runtime | +| --------------------- | ---------------: | --------------------: | ------: | +| H2O-64-PBE-TZ.inp | 128 MPI x 2 OMP | 256 | 50 s | +| H2O-64-RI-MP2-TZ.inp | 1024 MPI x 2 OMP | 2048 | ~18 min | +| H2O-64-RI-dRPA-TZ.inp | 1024 MPI x 2 OMP | 2048 | ~12 min | -*) The timings have been obtained on CRAY-XE6 (MonteRosa@CSCS) +\*) The timings have been obtained on CRAY-XE6 (MonteRosa@CSCS) ### Results on Piz Daint, CSCS - -| Input File | Date | CP2K Git SHA | Number of nodes | Node Configuration | Runtime | -| --------------------- | ---------- | ------------:| ---------------:| ------------------- | ------- | -| H2O-64-PBE-TZ.inp | 2019-08-07 | 4519a8ad7 | 4 nodes | 12 MPI x 1 OMP | 69 s | -| H2O-64-RI-dRPA-TZ.inp | 2019-08-07 | 4519a8ad7 | 128 nodes | 2 MPI x 6 OMP | 455 s | - -*) The timings have been obtained on CRAY-XC50 (PizDaint@CSCS, GPU partition) +| Input File | Date | CP2K Git SHA | Number of nodes | Node Configuration | Runtime | +| --------------------- | ---------- | -----------: | --------------: | ------------------ | ------- | +| H2O-64-PBE-TZ.inp | 2019-08-07 | 4519a8ad7 | 4 nodes | 12 MPI x 1 OMP | 69 s | +| H2O-64-RI-dRPA-TZ.inp | 2019-08-07 | 4519a8ad7 | 128 nodes | 2 MPI x 6 OMP | 455 s | + +\*) The timings have been obtained on CRAY-XC50 (PizDaint@CSCS, GPU partition) diff --git a/benchmarks/QS_ot_ls/README.md b/benchmarks/QS_ot_ls/README.md index 05a15a1ad9..c0a3809529 100644 --- a/benchmarks/QS_ot_ls/README.md +++ b/benchmarks/QS_ot_ls/README.md @@ -23,11 +23,11 @@ linear algebra routines as displayed at the end of the cp2k output. On rosa the total run times are approximately: -| Input file | Number cores | Runtime | -| ------------- | ------------:| ---------------------:| -| H2O-256.inp | 576 cores | 5 min | -| H2O-1024.inp | 576 cores | 40 min | -| H2O-4096.inp | 2304 cores | 15 min | +| Input file | Number cores | Runtime | +| ------------- | -----------: | --------------------: | +| H2O-256.inp | 576 cores | 5 min | +| H2O-1024.inp | 576 cores | 40 min | +| H2O-4096.inp | 2304 cores | 15 min | | H2O-65536.inp | | doesn't run so far... | Runs performed with cp2k from 30.01.09 (no libdbcsr routines used), compiled diff --git a/benchmarks/QS_pao_ml_tio2/README.md b/benchmarks/QS_pao_ml_tio2/README.md index cc92c9e26f..c88a3d2909 100644 --- a/benchmarks/QS_pao_ml_tio2/README.md +++ b/benchmarks/QS_pao_ml_tio2/README.md @@ -38,7 +38,7 @@ nodes, SB + K20X, +- 8Gb mem used per node ``` ### MD Energy File - + ```shell > cat pao_ml_md-1.ener # Step Nr. Time[fs] Kin.[a.u.] Temp[K] Pot.[a.u.] Cons Qty[a.u.] UsedTime[s] @@ -64,7 +64,6 @@ nodes, SB + K20X, +- 8Gb mem used per node 19 9.500000 105.405738067 286.181305486 -554932.815285468 -554827.409547401 365.768221021 20 10.000000 102.522367308 278.352824576 -554929.882289568 -554827.359922261 364.275226861 ``` - ### Timings diff --git a/benchmarks/QS_single_node/README.md b/benchmarks/QS_single_node/README.md index 02ae7c8148..ae2a5e9e7e 100644 --- a/benchmarks/QS_single_node/README.md +++ b/benchmarks/QS_single_node/README.md @@ -2,5 +2,5 @@ The purpose of these tests is to give a quick idea of the performance of a system, when only a single node is available. -The tests should run in < 5 minutes on a modern node, +The tests should run in \< 5 minutes on a modern node, and require less than 16Gb of memory. diff --git a/data/NNP/bulkH2O-jcp2020-cnnp/README.md b/data/NNP/bulkH2O-jcp2020-cnnp/README.md index 31f5cecca5..e8a2331237 100644 --- a/data/NNP/bulkH2O-jcp2020-cnnp/README.md +++ b/data/NNP/bulkH2O-jcp2020-cnnp/README.md @@ -5,11 +5,10 @@ This directory contains NNP models from the following paper: Committee neural network potentials control generalization errors and enable active learning Christoph Schran, Kyrstof Brezina, and Ondrej Marsalek -J. Chem. Phys. 153, 2020, DOI: [10.1063/5.0016004]( -https://doi.org/10.1063/5.0016004) +J. Chem. Phys. 153, 2020, DOI: [10.1063/5.0016004](https://doi.org/10.1063/5.0016004) arXiv: [2006.01541](https://arxiv.org/abs/2006.01541) ## Contents -* `nnp-1/2/3/4/5/6/7/8` -All parameters of the C-NNP model from generation 4 of the active learning procedure. +- `nnp-1/2/3/4/5/6/7/8` + All parameters of the C-NNP model from generation 4 of the active learning procedure. diff --git a/src/dbm/README.md b/src/dbm/README.md index 1daa655ec5..083b855504 100644 --- a/src/dbm/README.md +++ b/src/dbm/README.md @@ -5,7 +5,7 @@ written in C. For the time being only features required by [DBT](../dbt/) are im ## Storage -The DBM uses [coordinate lists](https://en.wikipedia.org/wiki/Sparse_matrix#Coordinate_list_(COO)) +The DBM uses [coordinate lists]() as internal storage format. An existing block is represented by the following data structure: @@ -18,7 +18,7 @@ typedef struct { ``` To allow for efficient OpenMP parallelism the blocks are -[sharded](https://en.wikipedia.org/wiki/Shard_(database_architecture)) via round-robin: +[sharded]() via round-robin: ```C const int ishard = row % matrix->nshards; @@ -45,7 +45,6 @@ The last stage of the multiplication are the backends for specific hardware, e.g They are passed batches of task for processing. Each task describes a single block multiplication. A simplest backend implementation looks like this: - ```C for (int itask = 0; itask < ntasks; itask++) { const dbm_task_t task = batch[itask]; @@ -58,7 +57,6 @@ for (int itask = 0; itask < ntasks; itask++) { dgemm(transa, transb, task.m, task.n, task.k, alpha, data_a, lda, data_b, ldb, 1.0, data_c, ldc); } ``` - ## MiniApp diff --git a/src/grid/README.md b/src/grid/README.md index ce7e379fa1..fd1783a234 100644 --- a/src/grid/README.md +++ b/src/grid/README.md @@ -50,7 +50,6 @@ The `grid_collocate_miniapp.x` binary allows to run individual .task files. By default `grid_collocate_pgf_product_cpu` is called. When the `--batch` flag is set then `grid_collocate_task_list` is called instead. - ```shell $ cd cp2k/src/grid $ make @@ -60,7 +59,6 @@ Usage: grid_base_ref_miniapp.x [--batch ] $ ./grid_collocate_miniapp.x --batch 10 100 sample_tasks/collocate_ortho_density_l2200.task Task: sample_tasks/collocate_ortho_density_l2200.task Batched: yes Cycles: 1.000000e+02 Max value: 1.579830e+02 Max diff: 1.705303e-13 Time: 1.884854e-03 sec ``` - ## Unit Test @@ -69,7 +67,6 @@ The `grid_collocate_unittest.x` binary runs the .task files from the Beware that this is merely a smoke test. The cp2k regtest suite provides much more thorough testing. - ```shell $ cd cp2k/src/grid $ make @@ -83,4 +80,3 @@ Task: ../../src/grid/sample_tasks/collocate_ortho_density_l0000.task Batche Task: ../../src/grid/sample_tasks/collocate_ortho_non_periodic.task Batched: yes Cycles: 1.000000e+00 Max value: 4.483815e-01 Max diff: 0.000000e+00 Time: 1.882868e-02 sec All tests have passed :-) ``` - diff --git a/src/start/python/README.md b/src/start/python/README.md index da12fe7a61..d39e5b5442 100644 --- a/src/start/python/README.md +++ b/src/start/python/README.md @@ -23,7 +23,7 @@ Python interpreter instances due to side effects in the library. ## Known Issues -* If libcp2k is built with MPI support, you may get an MPI initialization error +- If libcp2k is built with MPI support, you may get an MPI initialization error depending on your MPI implementation/configuration. In that case MPI must be initialized first by using Mpi4py and the Fortran MPI communicator handler must be passed down the CP2K via the respective `...comm` functions. diff --git a/tests/Fist/EAM_LIB/README.md b/tests/Fist/EAM_LIB/README.md index f633f22241..0e5dde6c72 100644 --- a/tests/Fist/EAM_LIB/README.md +++ b/tests/Fist/EAM_LIB/README.md @@ -1,6 +1,6 @@ # Fist EAM Regression Tests The potentials for Ag, Pt and Au listed here are converted from the [LAMMPS distribution](http://lammps.sandia.gov). -The mixed file is generated by multiplication of Za(R)*Zb(R)/R as prescribed in +The mixed file is generated by multiplication of Za(R)\*Zb(R)/R as prescribed in Foiles et al., PRB 33 (1986) 7983. Note that the grid is quite loose, so `EMAX_SPLINE` is set to a high value (D. Passerone). diff --git a/tools/docker/README.md b/tools/docker/README.md index 08067969a4..3f7a48cfca 100644 --- a/tools/docker/README.md +++ b/tools/docker/README.md @@ -5,27 +5,23 @@ The only prerequisite is to [install Docker](https://docs.docker.com/get-docker/ ## Production Images - 1. Build the container image: +1. Build the container image: - - ```shell - docker build -f Dockerfile.prod_psmp --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) -t cp2k_prod_psmp ../../ - ``` - + ```shell + docker build -f Dockerfile.prod_psmp --build-arg GIT_COMMIT_SHA=$(git rev-parse HEAD) -t cp2k_prod_psmp ../../ + ``` - 2. Go to the directory with your input files: +1. Go to the directory with your input files: - ```shell - cd ../../benchmarks/QS_single_node - ``` + ```shell + cd ../../benchmarks/QS_single_node + ``` - 3. Run the container: +1. Run the container: - - ```shell - docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=2 -np 16 cp2k dbcsr.inp - ``` - + ```shell + docker run --shm-size=1g -ti -v "$(pwd)":/mnt cp2k_prod_psmp mpiexec -genv OMP_NUM_THREADS=2 -np 16 cp2k dbcsr.inp + ``` ## Test Images diff --git a/tools/doxify/README.md b/tools/doxify/README.md index 0b9eb40100..230e167998 100644 --- a/tools/doxify/README.md +++ b/tools/doxify/README.md @@ -10,11 +10,11 @@ The driver script `doxyify.sh` will process CP2K source code (`*.F` files) proce one file at a time. The following steps are carried out for each `*.F` file: 1. Run `remove_double_ampersands.pl` - removes any any double ampersand characters -2. Run `fixcomments.pl` - does the addition of missing comments or updating of +1. Run `fixcomments.pl` - does the addition of missing comments or updating of existing comments -3. Run `remove_extra_comments.pl` - removes any extra comment lines which arise +1. Run `remove_extra_comments.pl` - removes any extra comment lines which arise from application of `fixcomments.pl` -4. Finally, overwrite the original `*.F` file with the updated version +1. Finally, overwrite the original `*.F` file with the updated version To run the script, you should execute it with the name of the source file you want to process: diff --git a/tools/input_editing/emacs/README.md b/tools/input_editing/emacs/README.md index 87c1894767..a5e5fab9a6 100644 --- a/tools/input_editing/emacs/README.md +++ b/tools/input_editing/emacs/README.md @@ -27,16 +27,16 @@ files. It has been tested on emacs 2.1, 2.3 and 2.4. ### Key Bindings -| character | | -| ------------- |---------------| -| `` | `cp2k-indent-line` -| C-j | `newline-and-indent` -| C-c ; | `comment-region` -| C-M-a | `cp2k-beginning-of-block` -| C-M-e | `cp2k-end-of-block` -| C-c C-c | `outline-toggle-children` -| C-c C-a | `show-all` -| C-c C-t | `show-subtree` +| character | | +| --------- | ------------------------- | +| `` | `cp2k-indent-line` | +| C-j | `newline-and-indent` | +| C-c ; | `comment-region` | +| C-M-a | `cp2k-beginning-of-block` | +| C-M-e | `cp2k-end-of-block` | +| C-c C-c | `outline-toggle-children` | +| C-c C-a | `show-all` | +| C-c C-t | `show-subtree` | ## Installation diff --git a/tools/input_editing/vim/README.md b/tools/input_editing/vim/README.md index 03859a30db..6b52598030 100644 --- a/tools/input_editing/vim/README.md +++ b/tools/input_editing/vim/README.md @@ -2,6 +2,6 @@ For more information on -* obtaining and using the Vim editor plugin for CP2K, see [CP2K Tools:vim](https://www.cp2k.org/tools:vim) -* creating the Vim editor plugin file cp2k.vim (together with the manual), +- obtaining and using the Vim editor plugin for CP2K, see [CP2K Tools:vim](https://www.cp2k.org/tools:vim) +- creating the Vim editor plugin file cp2k.vim (together with the manual), see [How to generate the CP2K input reference manual](https://manual.cp2k.org/trunk/generate_manual_howto.html) diff --git a/tools/plan_mpi_omp/README.md b/tools/plan_mpi_omp/README.md index 8d158f96be..b5e1a530bf 100644 --- a/tools/plan_mpi_omp/README.md +++ b/tools/plan_mpi_omp/README.md @@ -19,10 +19,10 @@ between ranks for the OpenMP threads. Because of the above-mentioned complexity, a script for planning MPI/OpenMP-hybrid execution (`plan.sh`) is available. Here is a first example for running the PSMP-binary on an SMP-enabled (Hyperthreads) dual-socket system -with 24 cores per processor/socket (96 hardware threads in total). At -first, a run with 48 ranks and 2 threads per core comes to the mind -(`48x2`). However, for instance 16 ranks with 6 threads per rank can -be better for performance (`16x6`). To easily place the ranks, Intel MPI +with 24 cores per processor/socket (96 hardware threads in total). At +first, a run with 48 ranks and 2 threads per core comes to the mind +(`48x2`). However, for instance 16 ranks with 6 threads per rank can +be better for performance (`16x6`). To easily place the ranks, Intel MPI is used: ```bash @@ -40,7 +40,7 @@ not necessary and not recommended to build a rather complicated to log the pinning and thread affinization at the startup of an application, `I_MPI_DEBUG=4` can be used with no performance penalty. The recommended `I_MPI_PIN_ORDER=bunch` ensures that ranks per node are split as even as -possible with respect to sockets (e.g., 36 ranks on a 2x20-core system +possible with respect to sockets (e.g., 36 ranks on a 2x20-core system are put in 2x18 ranks instead of 20+16 ranks). To achieve a similar placement with OpenMPI, ranks are mapped to "execution @@ -55,7 +55,7 @@ mpirun -np 16 --map-by slot:PE=3 \ exe/Linux-x86-64-intelx/cp2k.psmp workload.inp ``` -**NOTE**: Intel MPI's `I_MPI_PIN_ORDER=bunch` to balance the number of +**NOTE**: Intel MPI's `I_MPI_PIN_ORDER=bunch` to balance the number of ranks between sockets (see above) appears hard to achieve with OpenMPI therefore an undersubscribed system may not be recommended. To display and to log the pinning and thread affinization at the startup of an application, @@ -69,9 +69,8 @@ to multiple nodes of the above-mentioned system. To configure the plan-script, the metric of the compute nodes can be given for future invocations so that only the node-count is required as an argument. The script's help output (`-h` or `--help`) initially shows the "system metric" of -the computer the script is invoked on. For a system with 48 cores (two -sockets, SMP/HT enabled), setting up the "system metric" looks like (`plan.sh -[num-nodes] [ncores-per-node] [nthreads-per-core] [nsockets-per-node]`): +the computer the script is invoked on. For a system with 48 cores (two +sockets, SMP/HT enabled), setting up the "system metric" looks like (`plan.sh [num-nodes] [ncores-per-node] [nthreads-per-core] [nsockets-per-node]`): ```bash ./plan.sh 1 48 2 2 @@ -80,7 +79,7 @@ sockets, SMP/HT enabled), setting up the "system metric" looks like (`plan.sh The script is storing the arguments (except for the node-count) as default values for the next plan (file: `$HOME/.xconfigure-cp2k-plan`). This allows to supply the system-type once, and to plan with varying node-counts in a -convenient fashion. Planning for 8 nodes of the above kind yields the +convenient fashion. Planning for 8 nodes of the above kind yields the following output (`plan.sh 8`): ```text @@ -102,8 +101,8 @@ The first group of the output displays POT-style (trivial) MPI/OpenMP configurations (penalty denotes potential communication overhead), however the second group (if present) shows rank/thread combinations with the total rank-count hitting a square number (penalty denotes waste of compute due to not -filling each node). For the given example, 8 ranks per node with -12 threads per rank is chosen (`8x12`) and MPI-executed: +filling each node). For the given example, 8 ranks per node with +12 threads per rank is chosen (`8x12`) and MPI-executed: ```bash mpirun -perhost 8 -host node1,node2,node3,node4,node5,node6,node7,node8 \ @@ -112,8 +111,7 @@ mpirun -perhost 8 -host node1,node2,node3,node4,node5,node6,node7,node8 \ exe/Linux-x86-64-intelx/cp2k.psmp workload.inp ``` -**NOTE**: For Intel MPI as well as OpenMPI, mpirun's host-list (`mpirun --host`) is setup with unique node-names, and this is the only style that is +**NOTE**: For Intel MPI as well as OpenMPI, mpirun's host-list (`mpirun -host`) is setup with unique node-names, and this is the only style that is explained in this article. There is a competing style where nodes names are duplicated for the sake of enumerating available ranks (or "execution slots" in case of OpenMPI), which is not exercised in this article. diff --git a/tools/precommit/README.md b/tools/precommit/README.md index b922ccc9df..dea326eee7 100644 --- a/tools/precommit/README.md +++ b/tools/precommit/README.md @@ -4,23 +4,25 @@ The precommit system consists of the following tools that analyze and format the source code: - [doxify](../doxify/) - to add Doxygen templates. + to add Doxygen templates. - [prettify](../prettify/) - to format Fortran files. + to format Fortran files. - [analyze_src](../conventions/analyze_src.py) - to check copyright banners and a few other things. + to check copyright banners and a few other things. - [ast.parse](https://docs.python.org/3/library/ast.html) - to check Python syntax. + to check Python syntax. - [clang-format](https://clang.llvm.org/docs/ClangFormat.html) - to format C and Cuda files. + to format C and Cuda files. - [black](https://github.com/psf/black) - to format Python scripts. + to format Python scripts. - [shfmt](https://github.com/mvdan/sh) - to format Shell scripts. + to format Shell scripts. - [shellcheck](https://github.com/koalaman/shellcheck) - to analyze Shell scripts. -- [markdownlint](https://github.com/DavidAnson/markdownlint) - to analyze Markdown files. + to analyze Shell scripts. +- [mdformat](https://github.com/executablebooks/mdformat) with [gfm plugin](https://github.com/hukkin/mdformat-gfm) + to format Markdown scripts. +- [cmake-format](https://github.com/cheshirekow/cmake_format) + to format CMake scripts. In contrast to the [CP2K-CI](https://github.com/cp2k/cp2k-ci) these tools process each file individually, which makes them much more lightweight. diff --git a/tools/precommit/install_requirements.sh b/tools/precommit/install_requirements.sh index 7cd49da4f4..4a69e84fd8 100755 --- a/tools/precommit/install_requirements.sh +++ b/tools/precommit/install_requirements.sh @@ -13,7 +13,6 @@ apt-get install -qq --no-install-recommends \ git \ less \ nano \ - npm \ python3 \ python3-pip \ python3-wheel \ @@ -22,14 +21,9 @@ apt-get install -qq --no-install-recommends \ wget rm -rf /var/lib/apt/lists/* -# Install markdownlint-cli and dependencies. -# https://github.com/DavidAnson/markdownlint -# https://github.com/igorshubovych/markdownlint-cli -npm install . -ln -s /opt/cp2k-precommit/node_modules/markdownlint-cli/markdownlint.js /usr/bin/markdownlint - -# Install black, flask, gunicorn, and dependencies. -# https://github.com/psf/black +# Install Python packages. Upgrade via: +# pip3 install black flask gunicorn mdformat-gfm cmake-format +# pip3 freeze > requirements.txt pip3 install --quiet -r requirements.txt # Install shfmt. diff --git a/tools/precommit/package-lock.json b/tools/precommit/package-lock.json deleted file mode 100644 index 14003d8a02..0000000000 --- a/tools/precommit/package-lock.json +++ /dev/null @@ -1,257 +0,0 @@ -{ - "name": "cp2k-precommit", - "version": "1.0.0", - "lockfileVersion": 1, - "requires": true, - "dependencies": { - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "commander": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", - "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "requires": { - "graceful-readlink": ">= 1.0.0" - } - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" - }, - "deep-extend": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.5.1.tgz", - "integrity": "sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==" - }, - "entities": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", - "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" - }, - "get-stdin": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-5.0.1.tgz", - "integrity": "sha1-Ei4WFZHiH/TFJTAwVpPyDmOTo5g=" - }, - "glob": { - "version": "7.1.6", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", - "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "graceful-readlink": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", - "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" - }, - "ignore": { - "version": "5.1.8", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.1.8.tgz", - "integrity": "sha512-BMpfD7PpiETpBl/A6S498BaIJ6Y/ABT93ETbby2fP00v4EbvPBXWEoaR1UBPKs3iR53pJY7EtZk5KACI57i1Uw==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "ini": { - "version": "1.3.8", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", - "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" - }, - "js-yaml": { - "version": "3.13.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", - "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "jsonc-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-2.2.1.tgz", - "integrity": "sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w==" - }, - "linkify-it": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz", - "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==", - "requires": { - "uc.micro": "^1.0.1" - } - }, - "lodash.differencewith": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.differencewith/-/lodash.differencewith-4.5.0.tgz", - "integrity": "sha1-uvr7yRi1UVTheRdqALsK76rIVLc=" - }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" - }, - "markdown-it": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-10.0.0.tgz", - "integrity": "sha512-YWOP1j7UbDNz+TumYP1kpwnP0aEa711cJjrAQrzd0UXlbJfc5aAq0F/PZHjiioqDC1NKgvIMX+o+9Bk7yuM2dg==", - "requires": { - "argparse": "^1.0.7", - "entities": "~2.0.0", - "linkify-it": "^2.0.0", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - } - }, - "markdownlint": { - "version": "0.20.4", - "resolved": "https://registry.npmjs.org/markdownlint/-/markdownlint-0.20.4.tgz", - "integrity": "sha512-jpfaPgjT0OpeBbemjYNZbzGG3hCLcAIvrm/pEY3+q/szDScG6ZonDacqySVRJAv9glbo8y4wBPJ0wgW17+9GGA==", - "requires": { - "markdown-it": "10.0.0" - } - }, - "markdownlint-cli": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/markdownlint-cli/-/markdownlint-cli-0.23.2.tgz", - "integrity": "sha512-OSl5OZ8xzGN6z355cqRkiq67zPi3reJimklaF72p0554q85Dng5ToOjjSB9tDKZebSt85jX8cp+ruoQlPqOsPA==", - "requires": { - "commander": "~2.9.0", - "deep-extend": "~0.5.1", - "get-stdin": "~5.0.1", - "glob": "~7.1.2", - "ignore": "~5.1.4", - "js-yaml": "~3.13.1", - "jsonc-parser": "~2.2.0", - "lodash.differencewith": "~4.5.0", - "lodash.flatten": "~4.4.0", - "markdownlint": "~0.20.4", - "markdownlint-rule-helpers": "~0.11.0", - "minimatch": "~3.0.4", - "minimist": "~1.2.5", - "rc": "~1.2.7" - } - }, - "markdownlint-rule-helpers": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/markdownlint-rule-helpers/-/markdownlint-rule-helpers-0.11.0.tgz", - "integrity": "sha512-PhGii9dOiDJDXxiRMpK8N0FM9powprvRPsXALgkjlSPTwLh6ymH+iF3iUe3nq8KGu26tclFBlLL5xAGy/zb7FA==" - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4=" - }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz", - "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "requires": { - "wrappy": "1" - } - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "dependencies": { - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==" - } - } - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==" - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" - } - } -} diff --git a/tools/precommit/package.json b/tools/precommit/package.json deleted file mode 100644 index 08ed3db6d2..0000000000 --- a/tools/precommit/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "cp2k-precommit", - "version": "1.0.0", - "description": "Tools used by the cp2k-precomit system", - "main": "index.js", - "repository": "", - "scripts": { - "test": "echo \"Error: no test specified\" && exit 1" - }, - "repository": { - "type": "git", - "url": "" - }, - "keywords": [], - "author": "", - "license": "ISC", - "dependencies": { - "markdownlint-cli": "^0.23.2" - } -} diff --git a/tools/precommit/precommit.py b/tools/precommit/precommit.py index 07bff29926..aee6f95fb3 100755 --- a/tools/precommit/precommit.py +++ b/tools/precommit/precommit.py @@ -204,7 +204,7 @@ def process_file(fn: str, allow_modifications: bool) -> None: run_remote_tool("shellcheck", fn) if re.match(r".*\.md$", fn): - run_remote_tool("markdownlint", fn) + run_remote_tool("mdformat", fn) if re.match(r"(.*/CMakeLists.txt)|(.*\.cmake)$", fn): run_remote_tool("cmakeformat", fn) diff --git a/tools/precommit/precommit_server.py b/tools/precommit/precommit_server.py index 0bb30c6c01..e2bb934a13 100755 --- a/tools/precommit/precommit_server.py +++ b/tools/precommit/precommit_server.py @@ -41,9 +41,10 @@ def shellcheck(): # ====================================================================================== -@app.route("/markdownlint", methods=["POST"]) -def markdownlint(): - return run_tool(["markdownlint"]) +@app.route("/mdformat", methods=["POST"]) +@app.route("/markdownlint", methods=["POST"]) # for backwards compatibility +def mdformat(): + return run_tool(["mdformat"]) # ====================================================================================== diff --git a/tools/precommit/requirements.txt b/tools/precommit/requirements.txt index f2ac351ff6..f543f9e7ce 100644 --- a/tools/precommit/requirements.txt +++ b/tools/precommit/requirements.txt @@ -1,21 +1,23 @@ -appdirs==1.4.4 -attrs==21.4.0 -black==22.3.0 +black==22.10.0 click==8.1.3 cmake-format==0.6.13 cmakelang==0.6.13 -Flask==2.1.2 +Flask==2.2.2 gunicorn==20.1.0 -gyp==0.1 itsdangerous==2.1.2 Jinja2==3.1.2 +linkify-it-py==1.0.3 +markdown-it-py==2.1.0 MarkupSafe==2.1.1 +mdformat==0.7.16 +mdformat-gfm==0.3.5 +mdformat_tables==0.4.1 +mdit-py-plugins==0.3.1 +mdurl==0.1.2 mypy-extensions==0.4.3 -pathspec==0.9.0 +pathspec==0.10.1 platformdirs==2.5.2 -regex==2022.4.24 six==1.16.0 -toml==0.10.2 tomli==2.0.1 -typed-ast==1.5.3 -Werkzeug==2.1.2 +uc-micro-py==1.0.1 +Werkzeug==2.2.2 diff --git a/tools/toolchain/README.md b/tools/toolchain/README.md index 61713e58d4..5063dcf954 100644 --- a/tools/toolchain/README.md +++ b/tools/toolchain/README.md @@ -107,37 +107,35 @@ The following table list the licenses of all those packages. While the toolchain does support linking proprietary software packages, like e.g. MKL, these have to be installed separately by the user. - -| Package | License | GPL Compatible | -| --------- | --------------------------------------------------------------------------------------- | -------------- | -| cmake | [BSD 3-Clause](https://gitlab.kitware.com/cmake/cmake/raw/master/Copyright.txt) | Yes | -| cosma | [BSD 3-Clause](https://github.com/eth-cscs/COSMA/blob/master/LICENCE) | Yes | -| elpa | [LGPL](https://gitlab.mpcdf.mpg.de/elpa/elpa/blob/master/LICENSE) | Yes | -| fftw | [GPL](http://www.fftw.org/doc/License-and-Copyright.html) | Yes | -| gcc | [GPL](https://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=COPYING;hb=HEAD) | Yes | -| gsl | [GPL](https://www.gnu.org/software/gsl/doc/html/gpl.html) | Yes | -| hdf5 | [BSD 3-Clause](https://support.hdfgroup.org/ftp/HDF5/releases/COPYING) | Yes | -| libint | [GPL](https://github.com/evaleev/libint/blob/master/LICENSE) | Yes | -| libvori | LGPL-3 | Yes | -| libvdwxc | [GPL](https://gitlab.com/libvdwxc/libvdwxc/blob/master/LICENSE) | Yes | -| libxc | [MPL](https://gitlab.com/libxc/libxc/blob/master/COPYING) | Yes | -| libxsmm | [BSD 3-Clause](https://github.com/hfp/libxsmm/blob/master/LICENSE.md) | Yes | -| mpich | [MPICH](https://github.com/pmodels/mpich/blob/master/COPYRIGHT) | [Yes](https://enterprise.dejacode.com/licenses/public/mpich/#license-conditions) | -| openblas | [BSD 3-Clause](https://github.com/xianyi/OpenBLAS/blob/develop/LICENSE) | Yes | -| openmpi | [BSD 3-Clause](https://github.com/open-mpi/ompi/blob/master/LICENSE) | Yes | -| pexsi | [BSD 3-Clause](https://bitbucket.org/berkeleylab/pexsi/src/master/LICENSE) | Yes | -| plumed | [LGPL](https://github.com/plumed/plumed2/blob/master/COPYING.LESSER) | Yes | -| ptscotch | [CeCILL-C](https://www.labri.fr/perso/pelegrin/scotch/) | [Yes](https://cecill.info/faq.en.html#gpl) | -| quip | [GPL](https://github.com/libAtoms/QUIP/blob/public/src/libAtoms/COPYRIGHT) | Yes | -| fox | [BSD 3-Clause](https://github.com/andreww/fox/blob/master/LICENSE) | Yes | -| reflapack | [BSD 3-Clause](http://www.netlib.org/lapack/LICENSE.txt) | Yes | -| scalapack | [BSD 3-Clause](http://www.netlib.org/scalapack/LICENSE) | Yes | -| sirius | [BSD 2-Clause](https://github.com/electronic-structure/SIRIUS/blob/master/LICENSE) | Yes | -| spfft | [BSD 3-Clause](https://github.com/eth-cscs/SpFFT/blob/master/LICENSE) | Yes | -| spglib | [BSD 3-Clause](https://github.com/atztogo/spglib/blob/master/COPYING) | Yes | -| superlu | [BSD 3-Clause](https://github.com/xiaoyeli/superlu/blob/master/License.txt) | Yes | -| valgrind | [GPL](https://sourceware.org/git/?p=valgrind.git;a=blob_plain;f=COPYING;hb=HEAD) | Yes | - +| Package | License | GPL Compatible | +| --------- | ---------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| cmake | [BSD 3-Clause](https://gitlab.kitware.com/cmake/cmake/raw/master/Copyright.txt) | Yes | +| cosma | [BSD 3-Clause](https://github.com/eth-cscs/COSMA/blob/master/LICENCE) | Yes | +| elpa | [LGPL](https://gitlab.mpcdf.mpg.de/elpa/elpa/blob/master/LICENSE) | Yes | +| fftw | [GPL](http://www.fftw.org/doc/License-and-Copyright.html) | Yes | +| gcc | [GPL](https://gcc.gnu.org/git/?p=gcc.git;a=blob_plain;f=COPYING;hb=HEAD) | Yes | +| gsl | [GPL](https://www.gnu.org/software/gsl/doc/html/gpl.html) | Yes | +| hdf5 | [BSD 3-Clause](https://support.hdfgroup.org/ftp/HDF5/releases/COPYING) | Yes | +| libint | [GPL](https://github.com/evaleev/libint/blob/master/LICENSE) | Yes | +| libvori | LGPL-3 | Yes | +| libvdwxc | [GPL](https://gitlab.com/libvdwxc/libvdwxc/blob/master/LICENSE) | Yes | +| libxc | [MPL](https://gitlab.com/libxc/libxc/blob/master/COPYING) | Yes | +| libxsmm | [BSD 3-Clause](https://github.com/hfp/libxsmm/blob/master/LICENSE.md) | Yes | +| mpich | [MPICH](https://github.com/pmodels/mpich/blob/master/COPYRIGHT) | [Yes](https://enterprise.dejacode.com/licenses/public/mpich/#license-conditions) | +| openblas | [BSD 3-Clause](https://github.com/xianyi/OpenBLAS/blob/develop/LICENSE) | Yes | +| openmpi | [BSD 3-Clause](https://github.com/open-mpi/ompi/blob/master/LICENSE) | Yes | +| pexsi | [BSD 3-Clause](https://bitbucket.org/berkeleylab/pexsi/src/master/LICENSE) | Yes | +| plumed | [LGPL](https://github.com/plumed/plumed2/blob/master/COPYING.LESSER) | Yes | +| ptscotch | [CeCILL-C](https://www.labri.fr/perso/pelegrin/scotch/) | [Yes](https://cecill.info/faq.en.html#gpl) | +| quip | [GPL](https://github.com/libAtoms/QUIP/blob/public/src/libAtoms/COPYRIGHT) | Yes | +| fox | [BSD 3-Clause](https://github.com/andreww/fox/blob/master/LICENSE) | Yes | +| reflapack | [BSD 3-Clause](http://www.netlib.org/lapack/LICENSE.txt) | Yes | +| scalapack | [BSD 3-Clause](http://www.netlib.org/scalapack/LICENSE) | Yes | +| sirius | [BSD 2-Clause](https://github.com/electronic-structure/SIRIUS/blob/master/LICENSE) | Yes | +| spfft | [BSD 3-Clause](https://github.com/eth-cscs/SpFFT/blob/master/LICENSE) | Yes | +| spglib | [BSD 3-Clause](https://github.com/atztogo/spglib/blob/master/COPYING) | Yes | +| superlu | [BSD 3-Clause](https://github.com/xiaoyeli/superlu/blob/master/License.txt) | Yes | +| valgrind | [GPL](https://sourceware.org/git/?p=valgrind.git;a=blob_plain;f=COPYING;hb=HEAD) | Yes | ## For Developers @@ -156,6 +154,7 @@ be installed separately by the user. on other libraries being already installed and the correct environment variables set. At the end of each script, it should write to __two__ files: `build/setup_PKG` and `install/setup`. + - The `build/setup_PKG` file contains all the instructions to set the variables used by the `install_cp2k_toolchain.sh` and other `script/install_PKG.sh` scripts in order for them to correctly