Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
301 commits
Select commit Hold shift + click to select a range
b07653d
Ignore more files in tests and benchmarks
tkoskela Jan 31, 2024
453ae68
Move index precomputation out of parallel loop
tkoskela Jan 31, 2024
6774d1f
combine three nsf# loops into one and reduce required allocatable mem…
connoraird Jan 29, 2024
e142c54
Initial attempt to thread nsf loop
connoraird Jan 30, 2024
8d859ea
make exx_v_on_grid thread safe
connoraird Feb 1, 2024
d0f0db7
Add syste.make file for myriad
tkoskela Feb 2, 2024
ef65a38
Merge branch 'tk-add-system.make.myriad' into tk-optimize-multiply-ke…
tkoskela Feb 2, 2024
411bdbf
Add XC_COMPFLAGS to compiler with libxc v4
tkoskela Feb 5, 2024
8ba4ef9
Thread exx_phi_on_grid xyz loops
connoraird Feb 5, 2024
8fa4bad
Revert "Thread exx_phi_on_grid xyz loops"
connoraird Feb 6, 2024
f046aa2
Thread rst loop
connoraird Feb 6, 2024
47764e7
Timing threaded kernel
connoraird Feb 6, 2024
27b48fb
reseting to nsf loop with collapse
connoraird Feb 6, 2024
1a94b96
Fix copy c loop. Add comments
tkoskela Feb 8, 2024
80c6b53
Use right multiply kernel on myriad
tkoskela Feb 8, 2024
6cfcb4f
Removing unused allocatables and excess timers
connoraird Feb 9, 2024
e5a8d5b
tiny modifications of EXX printing state
lionelalexandre Feb 9, 2024
2da61e5
WIP: refactor m_kern_min
tkoskela Feb 13, 2024
c40a8cc
add more EXX tests to benchmark
lionelalexandre Feb 13, 2024
b03f4d9
add another EXX test with SZP for benzene
lionelalexandre Feb 13, 2024
37b6792
abort on errors and stick to minimum line lengths
connoraird Feb 16, 2024
444a377
First attempt
connoraird Feb 7, 2024
a324ddf
Fixing references to phi_i and Ome_kj
connoraird Feb 7, 2024
74df999
Redefine phi_i and Ome_kj
connoraird Feb 7, 2024
69e3efd
Fixing array declarations
connoraird Feb 7, 2024
ece73a0
Cleaning up code
connoraird Feb 7, 2024
1f80cfd
allocate 1d buffers
connoraird Feb 8, 2024
90d0f79
calling correct deallocate and adding print statements
connoraird Feb 8, 2024
a4e986c
Remving typo
connoraird Feb 8, 2024
9792a66
Make Ome_kj_reduced firstprivate
connoraird Feb 8, 2024
f3aab62
Removing print statements
connoraird Feb 8, 2024
8376f5c
point inside parallel region
connoraird Feb 8, 2024
dabf0af
Fixing broken stuff after rebase
connoraird Feb 9, 2024
cfa1b96
Fix broken phi_i allocation
connoraird Feb 9, 2024
6791e7e
make Ome_kj_1d_buffer a target
connoraird Feb 9, 2024
a241c36
Remove extra stop_timer for tmr_std_exx_accumul
connoraird Feb 12, 2024
7eb8dd8
Making Ome_kj private
connoraird Feb 12, 2024
cee9e0f
remove trailing &
connoraird Feb 13, 2024
41c1c9f
Merge pull request #323 from OrderN/276-use-blas
connoraird Feb 16, 2024
f760861
Merge remote-tracking branch 'origin/f-exx-opt' into 276-combine-nsf-…
connoraird Feb 19, 2024
a076735
Test ompGemm_m in main workflow
tkoskela Feb 19, 2024
71e7c1e
Add missing 'call' to cq_abort
connoraird Feb 19, 2024
38ace69
Thread xyz loops
connoraird Feb 6, 2024
70b1539
Ending parallel do
connoraird Feb 7, 2024
ffc3025
Adding missing omp variables
connoraird Feb 7, 2024
3dfeabf
Removing unnecessary zeroing of arrays
connoraird Feb 12, 2024
be386f1
Only zeroing if needed
connoraird Feb 12, 2024
442640c
Merge pull request #324 from OrderN/276-thread-exx-phi-on-grid
connoraird Feb 20, 2024
0e3bf8c
cleaning up comments and max memory allocations
connoraird Feb 21, 2024
8ca8295
Adding new tmr_std_exx_nsup timer
connoraird Feb 21, 2024
0018828
Refactor index computations out of m_kern_min and m_kern_max
tkoskela Feb 21, 2024
c2c6801
Removing repeated code in python test file
connoraird Feb 21, 2024
5a19e49
Remove commented out code
tkoskela Feb 26, 2024
1cbf5f8
Adding documentation on decisions made
connoraird Feb 28, 2024
c94c274
Cleanup + array syntax copies of B and C
tkoskela Mar 1, 2024
c00a071
Merge pull request #320 from OrderN/276-combine-nsf-loops
tkoskela Mar 5, 2024
6fe131f
Merge branch 'develop' into tk-optimize-multiply-kernel
tkoskela Mar 14, 2024
c35452e
remove extra kernel
tkoskela Mar 18, 2024
daff6b3
remove experimental kernels
tkoskela Mar 21, 2024
f534039
Clean up code and comments
tkoskela Mar 21, 2024
d4e6225
Merge branch 'develop' into tk-optimize-multiply-kernel
tkoskela Mar 21, 2024
0acdb7f
Merge branch 'tk-optimize-multiply-kernel' of github.com:OrderN/CONQU…
tkoskela Mar 21, 2024
1bea12a
Revert inefficient vectorized copies, add explaining comment
tkoskela Mar 21, 2024
6cecd58
Add missing variable declaration
tkoskela Mar 21, 2024
4fddbce
Rename myriad make file to new convention
tkoskela Mar 21, 2024
64e1282
Add system.make file for archer2
tkoskela Mar 22, 2024
119c2aa
Get fftw lib path from module
tkoskela Mar 22, 2024
7ebcc8e
Clarify comments
tkoskela Mar 22, 2024
3f6a49a
Add system.make file for cosma
tkoskela Mar 27, 2024
8153ae8
link to non-threaded libs
tkoskela Mar 27, 2024
e73356c
remove commented scorep lines
tkoskela Mar 27, 2024
e967fc8
Merge pull request #340 from OrderN/tk-add-archer2-make
davidbowler Apr 5, 2024
ee05240
Correct indexing error
davidbowler Apr 15, 2024
843db36
Remove barriers in multiply_module
tkoskela Apr 19, 2024
950f2f2
Update to myriad makefile
tkoskela Apr 23, 2024
547786c
Run CI on pushes to this branch during development.
tkoskela Apr 24, 2024
3ba1ec2
Update versions of github actions
tkoskela Apr 24, 2024
23277d5
Merge pull request #348 from OrderN/tk-update-actions
tkoskela Apr 24, 2024
0d11988
added examples for EXX using ERI and ERI-GTO kernels
lionelalexandre Apr 24, 2024
c93b88d
Merge branch 'f-exx-opt' of https://github.com/OrderN/CONQUEST-releas…
lionelalexandre Apr 24, 2024
e98f6a8
Merge pull request #334 from OrderN/304-reduce-repeated-test-code
connoraird Apr 25, 2024
d9681b1
Merge pull request #345 from OrderN/bugfix-lm-resolved-pDOS
davidbowler Apr 26, 2024
c623318
Merge remote-tracking branch 'origin/develop' into f-exx-opt
connoraird May 1, 2024
261b687
corr species_module.f90 after develop merge
lionelalexandre May 1, 2024
744d635
Remove unused targets and commented out pointers
tkoskela May 3, 2024
4347802
Merge branch 'develop' into tk-optimize-multiply-kernel
tkoskela May 13, 2024
cdd509e
Revert back to loop-based implementation of c copy
tkoskela May 17, 2024
f4b5057
Add reframe exx_runonly test and write output to screen for reframe b…
connoraird May 17, 2024
7b0a456
changed the order of atoms in velocity.dat
tsuyoshi38 May 21, 2024
987e318
Fix CRI omp bug by increasing OMP_STACKSIZE and fix exx timers regex
connoraird May 21, 2024
aa0a2b4
Changed the comment in the subroutine read_velocity
tsuyoshi38 May 22, 2024
5211954
Merge pull request #351 from OrderN/f-ordering_in_velocity.dat
tsuyoshi38 May 22, 2024
35302e8
Merge pull request #327 from OrderN/tk-optimize-multiply-kernel
tkoskela May 22, 2024
a800aa4
Initial implementation
davidbowler May 23, 2024
1452d87
Mostly working implementation of GTH/HGH pseudopotentials
davidbowler May 24, 2024
64a2992
Bug fix: in sub: matrix_trace in mult_module.f90,
ayakon May 27, 2024
4688528
Add eri becnhmarks to testsuite
connoraird May 28, 2024
2bce959
Extract inner cri calc into seperate subroutine
connoraird Apr 25, 2024
e341dab
Update count calculation to allow running the loop indices out of ord…
connoraird Apr 26, 2024
185bae6
Refactor m_kern_exx_eri to call cri_eri_inner_calculation
connoraird Apr 26, 2024
aaa47b1
Passing in correct nsf index
connoraird Apr 26, 2024
c3b4b98
Account for looping from 1 to length i.e. missing one iteration
connoraird Apr 29, 2024
ca7f4d9
Use temporary array to store backup values inside threaded regions
connoraird Apr 29, 2024
c4fc40b
Fix compiler errors
connoraird Apr 29, 2024
3e3bce2
Use pointer array instead of directly counting iterations
connoraird Apr 29, 2024
60ca5d5
Change pointer param to inout and type to target
connoraird Apr 29, 2024
e2d2787
Add one to count to prevent repeating store indices
connoraird Apr 29, 2024
7bc3a2e
Swap store_eris_inner dimensions to match loops
connoraird Apr 29, 2024
d2f7a4e
Pass correct multiplier into shared cri and eri subroutine
connoraird Apr 30, 2024
c775fbe
Add dv back in to signature
connoraird Apr 30, 2024
0f10d52
Fix incrementing counter
connoraird May 1, 2024
672cc07
Tidy up m_kern_exx_eri and correct phi_k index in cri_eri_inner_calcu…
connoraird May 15, 2024
7ddfccd
Add mac homebrew system.make
connoraird May 17, 2024
391215f
Tidy up cri omp call and add omp parallel to eri kernel
connoraird May 17, 2024
4fd608e
WIP add omp threading tojb_loop for ei kernel
connoraird May 20, 2024
19a8539
Remove unused variables and comments
connoraird May 21, 2024
3fb2135
Add notes about kernel differences
connoraird Apr 22, 2024
c598dfc
Remove unused imports from m_kern_exx_eri
connoraird Apr 22, 2024
076db72
Remove unused variables from m_kern_exx_eri
connoraird Apr 22, 2024
d426e47
Removing old comments and unused input param from m_kern_exx_eri
connoraird Apr 22, 2024
a07c516
Add myriad system.make
connoraird Apr 23, 2024
0b74c9b
Removed unused code from m_kern_exx_eri_gto and reorder to match m_ke…
connoraird Apr 23, 2024
db4cee8
add test_004_isol_C2H4_4proc_PBE0ERI
connoraird Apr 24, 2024
39bf0ac
Removing unused code from compiler warnings
connoraird Apr 24, 2024
d118d09
Set MULT_KERN to default for myriad
connoraird Apr 24, 2024
37c85e8
Add test_007_isol_C2H4_4proc_PBE0ERI_GTO
connoraird Apr 24, 2024
2119c56
Adding reference Conquest_out to test 6
connoraird Apr 24, 2024
10eb708
splitting tests from shared functions to allow testing in benchmarks …
connoraird Apr 25, 2024
a513e88
WIP: merge eri and eri_gto into one subroutine
connoraird Apr 25, 2024
bb8d664
Reverting test changes
connoraird May 21, 2024
d3c7333
Extract gto inner cal into subroutine and remove old GTO subroutine
connoraird May 21, 2024
19111d4
Fix exx timers in reframe test
connoraird May 22, 2024
7b10ae5
Rename myriad system make file and ignore folders wihtin benchmarks
connoraird May 22, 2024
b56a72a
Add other EXX benchmarks to reframe test
connoraird May 22, 2024
41a6879
Remove comments and bring logical out of loops
connoraird May 22, 2024
58067c6
Adding reframe tests for 2, 4 and 8 MPI ranks
connoraird May 22, 2024
f624353
Write output to stdout for all test_EXX benchmarks for reframe
connoraird May 22, 2024
336ef13
Dynamic scheduling for eri
connoraird May 23, 2024
b35b00c
Removed num_tasks = 8 from reframe tests
connoraird May 23, 2024
58a57e4
Dynamic scheduling for cri
connoraird May 23, 2024
ec477ec
update changelog
connoraird May 24, 2024
5c614cd
Add eri tests back to testsuite
connoraird May 28, 2024
c55a3c1
Fix input files for eri tests
connoraird May 28, 2024
98cc96f
Add myriad refrence files for eri tests
connoraird May 28, 2024
8b2e3b4
Updates to HGH implementation
davidbowler May 29, 2024
9fc36f0
Add eri tests to workflow
connoraird May 29, 2024
8367dbb
Fix test 7
connoraird May 29, 2024
a38fb17
use exx_gto instead of is_gto and make nsf_jb index clearer
connoraird May 30, 2024
a6a6add
Fix for #350
connoraird May 30, 2024
560c178
Tweaks to try and help convergence
davidbowler May 31, 2024
d25f1dd
Initial check-in of GTH format LDA pseudopotentials
davidbowler May 31, 2024
4f66f82
Merge pull request #352 from OrderN/346-refactor-kernels
lionelalexandre Jun 3, 2024
5bf9b32
Updates to improve convergence with GTH potentials
davidbowler Jun 5, 2024
66c91f3
Update input files to fix most elements
davidbowler Jun 6, 2024
606fb71
Close to finishing GTH/HGH PAO solver
davidbowler Jun 7, 2024
8926b2a
Tweak for purely local potentials
davidbowler Jun 10, 2024
fd41d68
Updates to H, He, Li, Be local only
davidbowler Jun 10, 2024
fab34a2
Tweaks to allow full generation except for Ba q=2, Ta q=5
davidbowler Jun 10, 2024
0a68c28
Remove accidental commit of ion files
davidbowler Jun 10, 2024
42b9dd3
Merge branch 'develop' into f-implement-gthhgh-pseudopotentials
davidbowler Jun 10, 2024
3a3b869
Adding end_ops for SXrange and Xrange in subroutine:fmmi
ayakon Jun 12, 2024
5ade455
Adding files for PBE GTH potentials
davidbowler Jun 12, 2024
e3202ec
Updated README files
davidbowler Jun 12, 2024
b13588b
Updates to fix issues with local potentials
davidbowler Jun 12, 2024
87d7751
Updates for local potentials
davidbowler Jun 12, 2024
da241fd
Merge pull request #356 from OrderN/bugfix_deallocation-mat-in-fmmi
ayakon Jun 13, 2024
7ff3df2
Add partial core corrections and tidy code
davidbowler Jun 24, 2024
16bdec9
Merge pull request #354 from OrderN/bugfix_matrix_trace
davidbowler Jun 24, 2024
398275f
Merge pull request #294 from OrderN/tk-refactor-multiply-module-pointers
tkoskela Jun 27, 2024
faa73e5
Merge pull request #342 from OrderN/tk-add-cosma-make
tkoskela Jun 27, 2024
1115d8d
Improvements and bug fixes for HGH potentials
davidbowler Jun 28, 2024
0f0c628
Add documentation on openmp runtime schedule
tkoskela Jul 19, 2024
f3e221c
Merge pull request #360 from OrderN/tk-openmp-schedule-docs
tkoskela Jul 19, 2024
06c5401
Tweak output for basis generation
davidbowler Jul 22, 2024
6649ff9
Small tweak to form of HGH PCC function
davidbowler Jul 24, 2024
1964008
Removing unnecessary files
davidbowler Jul 24, 2024
029b2cc
Merge pull request #357 from OrderN/f-implement-gthhgh-pseudopotentials
davidbowler Jul 24, 2024
e157d25
Updates to GTH/HGH LDA parameters
davidbowler Jul 24, 2024
cb5194a
Updates to GTH PBE parameters
davidbowler Jul 24, 2024
aab7786
Added input files for partial core corrections
davidbowler Jul 24, 2024
595bd4b
Tweak to note that Ba_q2 and Ta_q5 should not be used
davidbowler Jul 24, 2024
2e811ac
Add instructions for installation on Ubuntu.
AugustinLu Aug 6, 2024
f618314
matSatomf and matKatomf are used for Mulliken analysis
ayakon Sep 3, 2024
682f1f5
Add location of executable after compilation on Ubuntu.
AugustinLu Sep 4, 2024
5ce1edc
Merge pull request #364 from OrderN/Mulliken_MSSFs
ayakon Sep 4, 2024
0ae8027
Subroutine write_Rij_MatrixElements is added to store_matrix_module.f90
tsuyoshi38 Sep 4, 2024
10619b8
Merge pull request #367 from OrderN/f_CheckMatrixElements
tsuyoshi38 Sep 4, 2024
9d2f18e
Add system.ubuntu.make. Order of parameters in makefile in documentat…
AugustinLu Sep 4, 2024
d959f01
Merge pull request #366 from OrderN/f-doc-install-ubuntu
AugustinLu Sep 5, 2024
5cfd452
Changed Fe to use energies instead of radii for cutoffs
davidbowler Sep 11, 2024
71a53f8
Fix spin bug
davidbowler Sep 11, 2024
dc468f6
play around with cutoff on X matrix building
lionelalexandre Sep 11, 2024
ae5f5ef
Changed XC code to Conquest PW91 from LibXC
davidbowler Sep 11, 2024
25c2424
Merge pull request #368 from OrderN/bugfix-test003-Conquest-XC
davidbowler Sep 11, 2024
569294f
setup transpose index for matX
lionelalexandre Sep 11, 2024
7a3512a
corr for useless condition in setting up exx grid
lionelalexandre Sep 11, 2024
d331987
More output on type of pseudopotential added
davidbowler Sep 18, 2024
9248f1e
Use one system.make file for all compilations
davidbowler Sep 18, 2024
10846c2
Merge pull request #370 from OrderN/f-one-system-make
davidbowler Sep 18, 2024
1451c42
Merge branch 'f-exx-opt' of https://github.com/OrderN/CONQUEST-releas…
lionelalexandre Sep 18, 2024
78e9479
Change matX to matXatomf and fix bug
davidbowler Sep 19, 2024
a94eae3
Merge pull request #371 from OrderN/f-exx-opt-update-matrix
davidbowler Sep 19, 2024
e102f9d
Added grid spacing option to input
davidbowler Sep 19, 2024
205c83b
Added k-point spacing parameter
davidbowler Sep 19, 2024
3b21468
Merge pull request #372 from OrderN/f-grid-spacing
davidbowler Sep 20, 2024
fe7a7ce
Changed the default setting of Diag.BlockSizeR and C
tsuyoshi38 Oct 18, 2024
39fff6a
Merge pull request #369 from OrderN/f-more-pseudo-info
davidbowler Oct 18, 2024
6ba8a29
Merge pull request #373 from OrderN/f-DefaultBlockSize
tsuyoshi38 Oct 21, 2024
598ea03
Made pseudopotential read compatible with new code
davidbowler Oct 24, 2024
d8de151
Merge pull request #375 from OrderN/bugfix-read-gth-pseudos
davidbowler Oct 25, 2024
67b749c
Symmetrize the X matrix
davidbowler Oct 31, 2024
842569e
Remove double application of alpha
davidbowler Oct 31, 2024
7437529
Merge pull request #377 from OrderN/bugfix-matrix-sum
davidbowler Oct 31, 2024
3569739
Merge branch 'develop' into f-exx-opt
davidbowler Oct 31, 2024
fd32402
Updated reference output for symmetric X matrix
davidbowler Oct 31, 2024
f873ac9
Add stress to extXYZ file.
AugustinLu Nov 4, 2024
46899ed
Modify unit of output stress from eV to eV/ang**3 by division by cell…
AugustinLu Nov 5, 2024
b89ccfb
Merge pull request #379 from OrderN/f-extxyz-stress
AugustinLu Nov 5, 2024
c7b9d69
Removed a bug when Diag.PaddingHmatrix is true for small systems with…
tsuyoshi38 Nov 6, 2024
753f8c8
Merge remote-tracking branch 'origin/f-DefaultBlockSize' into f-exx-opt
davidbowler Nov 6, 2024
7baa3fb
Updated LDA and PBE_PCC inputs
davidbowler Nov 6, 2024
5be7c72
Merge pull request #380 from OrderN/f-DefaultBlockSize
tsuyoshi38 Nov 7, 2024
efe0460
Updated GTH PBE inputs
davidbowler Nov 7, 2024
fe08b5c
start docs on EXX
lionelalexandre Nov 27, 2024
5c45f3b
add EXX grid specification coarse/standard/fine
lionelalexandre Dec 3, 2024
528d629
removed useless EXX examples and added spinpol
lionelalexandre Dec 3, 2024
580840e
modify EXX doc
lionelalexandre Dec 3, 2024
d78a0ce
polish new test for EXX
lionelalexandre Dec 3, 2024
56d2618
update pytest files
lionelalexandre Dec 3, 2024
018f6d6
Merge branch 'develop' into f-exx-opt
lionelalexandre Dec 3, 2024
40754bd
Add warning message for forces with EXX
lionelalexandre Dec 3, 2024
810c0bc
added missing ref output file for test_006
lionelalexandre Dec 3, 2024
5ef7ea2
added missing ref output file for test_007
lionelalexandre Dec 3, 2024
60d506c
correction test for spin-pol and EXX
lionelalexandre Dec 3, 2024
09ef660
input correction test for spin-pol and EXX
lionelalexandre Dec 3, 2024
5fc7d54
Added note to README that GTH/HGH have not been tested
davidbowler Dec 5, 2024
ee32196
Warn user if optimising cell and ions with cell constraints
davidbowler Dec 5, 2024
8836137
Merge pull request #361 from OrderN/f-gth-input-file
davidbowler Dec 5, 2024
759baab
Initial atomic spin only set for spin polarised calculations
davidbowler Dec 5, 2024
88ed35e
recover develop verion of test_check_output.py and add EXX tests
lionelalexandre Dec 5, 2024
2be6761
restore mem printing from memory_module
lionelalexandre Dec 5, 2024
f9d0064
retore n1 = floor(r/del_x) in ol_ang_coeff_subs
lionelalexandre Dec 5, 2024
20a199a
Merge pull request #384 from OrderN/bugfix-atom-spin-no-system-spin
davidbowler Dec 5, 2024
710f66e
Merge pull request #383 from OrderN/f-warn-cellopt3
davidbowler Dec 5, 2024
2f9e575
Merge pull request #382 from OrderN/f-exx-opt
lionelalexandre Dec 9, 2024
3a6da30
Updated version numbers
davidbowler Dec 13, 2024
45beb52
changed the part "Diag.BlockSizeR" in manual
tsuyoshi38 Dec 17, 2024
473310d
Merge pull request #386 from OrderN/add-release-1.4
davidbowler Dec 17, 2024
c27c068
changed the default value of BlockSizeR from 30 to 32
tsuyoshi38 Dec 18, 2024
7102b55
Merge pull request #387 from OrderN/add-release-1.4
davidbowler Dec 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
36 changes: 29 additions & 7 deletions .github/workflows/makefile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ name: Makefile CI

on:
push:
branches: [ "develop" ]
branches: [ "develop", "f-exx-opt" ]
pull_request:
branches: [ "develop" ]
branches: [ "develop", "f-exx-opt" ]
# Manual dispatch for including all multiply kernels in matrix.
# We don't want this to run on every commit, but it's useful
# to be able to launch it manually
Expand Down Expand Up @@ -70,11 +70,9 @@ jobs:
multiply_kernel: ompDojk
- test_all_multiply_kernels: false
multiply_kernel: ompGemm
- test_all_multiply_kernels: false
multiply_kernel: ompGemm_m

steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v4
with:
fetch-depth: '0'

Expand All @@ -84,7 +82,7 @@ jobs:
sudo apt install openmpi-bin libopenmpi-dev libfftw3-dev libblas3 liblapack3 libscalapack-openmpi-dev libxc-dev

- name: Set up Python
uses: actions/setup-python@v4
uses: actions/setup-python@v5
with:
python-version: '3.10'

Expand Down Expand Up @@ -119,7 +117,31 @@ jobs:
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out


- name: Run test 004
working-directory: ${{github.workspace}}/testsuite/test_004_isol_C2H4_4proc_PBE0CRI
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out

- name: Run test 005
working-directory: ${{github.workspace}}/testsuite/test_005_isol_C2H4_4proc_PBE0GTO
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out

- name: Run test 006
working-directory: ${{github.workspace}}/testsuite/test_006_isol_C2H4_4proc_PBE0ERI
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out

- name: Run test 007
working-directory: ${{github.workspace}}/testsuite/test_007_isol_CH_spinpol_1proc_PBE0CRI
run: |
mpirun -np ${{matrix.np}} ../../bin/Conquest
cat Conquest_out

- name: Check test results
working-directory: ${{github.workspace}}/testsuite
run: pytest test_check_output.py
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
bin/*
deps.obj.inc
*~
src/system/system.make
src/system/system.make

# Ignore folders within each benchmark but not files
benchmarks/*/**/
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,4 @@ DOI for the specific version you have used in any given study.

## Version number

CONQUEST is now at version 1.3 (tag:v1.3)
CONQUEST is now at version 1.4 (tag:v1.4)
8 changes: 8 additions & 0 deletions benchmarks/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
__pycache__
Conquest_o*
Conquest_w*
*.i00*
*.bib
*.dat
*.log
fort.*
220 changes: 220 additions & 0 deletions benchmarks/reframe/exx_runonly.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
# Import modules from reframe and excalibur-tests
import reframe as rfm
import reframe.utility.sanity as sn

class ConquestBaseBenchmark(rfm.RunOnlyRegressionTest):

# Run configuration
## Mandatory ReFrame setup
valid_systems = ['-gpu']
valid_prog_environs = ['default']

## Executable
executable_opts = ['']

## Scheduler options
time_limit = '30m'

conquest_base_dir = variable(str, value='foo')

@run_after('setup')
def setup_variables(self):
self.executable = f"{self.conquest_base_dir}/bin/Conquest"
self.num_tasks = self.num_tasks_param
self.num_cpus_per_task = self.num_cpus_per_task_param
self.env_vars['OMP_NUM_THREADS'] = f'{self.num_cpus_per_task}'
self.env_vars['OMP_STACKSIZE'] = '100M'

if self.current_partition.scheduler.registered_name == 'sge':
# `self.num_tasks` or `self.num_cpus_per_task` may be `None`, here
# we default to `1` if not set.
num_tasks = self.num_tasks or 1
num_cpus_per_task = self.num_cpus_per_task or 1
# Set the total number of CPUs to be requested for the SGE scheduler.
# Set to a full node size to reduce runtime variance.
self.extra_resources['mpi'] = {'num_slots': self.current_partition.processor.num_cpus} #num_tasks * num_cpus_per_task}

@sanity_function
def validate_solution(self):
return sn.assert_found(r'Total run time was:.*', self.stdout)

@performance_function('s', perf_key='Runtime')
def extract_runtime_perf(self):
return sn.extractsingle(r'Total run time was:\s+(\S+)\s+seconds', self.stdout, 1, float)

@performance_function('s', perf_key='exx_setup_runtime')
def extract_exx_setup_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_setup\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('s', perf_key='exx_fetch_runtime')
def extract_exx_fetch_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_fetch\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('s', perf_key='exx_evalpao_runtime')
def extract_exx_evalpao_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_evalpao\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('s', perf_key='exx_allocat_runtime')
def extract_exx_allocat_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_allocat\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('s', perf_key='exx_dealloc_runtime')
def extract_exx_dealloc_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_dealloc\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('s', perf_key='exx_kernel_runtime')
def extract_exx_kernel_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_kernel\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('s', perf_key='exx_total_runtime')
def extract_exx_total_runtime_perf(self):
return sn.extractsingle(r'Time spent in exx_total\s+time:\s+=\s+(\S+)\ss', self.stdout, 1, float)

@performance_function('MB', perf_key='Memory')
def extract_memory_perf(self):
return sn.extractsingle(r'Max total mem use is\s+(\S+)\s+MB', self.stdout, 1, float)

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0_2(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.2"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.2/C_PBE_DZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.2/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.2/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.2/H_PBE_DZP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0_4(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.4"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.4/C_PBE_DZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.4/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.4/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.4/H_PBE_DZP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0_6(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.6"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.6/C_PBE_DZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.6/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.6/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullDZP_0.6/H_PBE_DZP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0CRI_fullSZP_0_4_SCF(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0CRI_fullSZP_0.4_SCF"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullSZP_0.4_SCF/C_PBE_SZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullSZP_0.4_SCF/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullSZP_0.4_SCF/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullSZP_0.4_SCF/H_PBE_SZP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0CRI_fullTZTP_0_6(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0CRI_fullTZTP_0.6"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullTZTP_0.6/C_PBE_TZTP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullTZTP_0.6/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullTZTP_0.6/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0CRI_fullTZTP_0.6/H_PBE_TZTP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_0_4_SCF(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_0.4_SCF"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_0.4_SCF/C_PBE_SZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_0.4_SCF/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_0.4_SCF/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_0.4_SCF/H_PBE_SZP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF/C_PBE_SZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF/C.gto .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF/H_PBE_SZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C2H4_4proc_PBE0ERI_fullSZP_GTO_SCF/H.gto .")

@rfm.simple_test
class test_EXX_isol_C6H6_4proc_PBE0CRI_fullDZP_0_6(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C6H6_4proc_PBE0CRI_fullDZP_0.6"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullDZP_0.6/C_PBE_DZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullDZP_0.6/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullDZP_0.6/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullDZP_0.6/H_PBE_DZP_CQ.ion .")

@rfm.simple_test
class test_EXX_isol_C6H6_4proc_PBE0CRI_fullSZP_0_6(ConquestBaseBenchmark):

tags = {"test_EXX_isol_C6H6_4proc_PBE0CRI_fullSZP_0.6"}
num_tasks_param = parameter([2,4])
num_cpus_per_task_param = parameter([1,2,4,8])

@run_before('run')
def get_input(self):
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullSZP_0.6/C_PBE_SZP_CQ.ion .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullSZP_0.6/Conquest_coord .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullSZP_0.6/Conquest_input .")
self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/test_EXX_isol_C6H6_4proc_PBE0CRI_fullSZP_0.6/H_PBE_SZP_CQ.ion .")


# @rfm.simple_test
# class Water64(ConquestBaseBenchmark):

# tags = {"water64"}
# num_tasks_param = 8
# num_cpus_per_task = 4

# @run_before('run')
# def get_input(self):
# self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/water_64mols/Conquest_input .")
# self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/water_64mols/H2O_coord.in .")
# self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/water_64mols/H_SZ.ion .")
# self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/water_64mols/H_SZP.ion .")
# self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/water_64mols/O_SZ.ion .")
# self.prerun_cmds.append(f"cp {self.conquest_base_dir}/benchmarks/water_64mols/O_SZP.ion .")
Loading