Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update EXX #382

Merged
merged 160 commits into from
Dec 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
160 commits
Select commit Hold shift + click to select a range
5b5a7ca
Merge branch 'develop' into f-exx-opt
lionelalexandre Nov 15, 2023
dcada1c
Merge branch 'develop' into f-exx-opt
lionelalexandre Nov 15, 2023
34a12c9
solve issues related to dummy and optional arguments in evaluate_pao …
lionelalexandre Nov 15, 2023
c463b07
modify printing of EXX memoru usage
lionelalexandre Nov 16, 2023
cd2a4e9
polish EXX ouptput
lionelalexandre Nov 17, 2023
b0cbec2
restrict EXX print output for Poisson solver
lionelalexandre Nov 17, 2023
6192c48
restrict print output of GTO basis for iprint > 2
lionelalexandre Nov 17, 2023
b119039
Change indentation of Simulation cell dimensions: to conform with output
lionelalexandre Nov 17, 2023
4a94ba6
change intent of This calculation includes non-local pseudopotentials
lionelalexandre Nov 17, 2023
b778da4
add space line befor Kpoint Gamma printoutput
lionelalexandre Nov 17, 2023
a430601
intent 4x This calculation includes non-local pseudopotentials
lionelalexandre Nov 17, 2023
569e6fc
add dpace line after print output
lionelalexandre Nov 17, 2023
c328cb1
delete usnused types in exx
lionelalexandre Nov 23, 2023
463ca51
comment unused subroutines in exx_modules
lionelalexandre Nov 23, 2023
648add4
set CRI algo for EXX as default
lionelalexandre Nov 23, 2023
b21a6b0
delete unused variables in EXX
lionelalexandre Nov 23, 2023
13098b4
added EXX test004 to testsuite
lionelalexandre Nov 23, 2023
d08e231
add test005 EXX+GTO to testsuite
lionelalexandre Nov 23, 2023
0e820fd
delete unused variable phil_scheme from exx_module.f90
lionelalexandre Nov 28, 2023
25b4040
add X matrix build after N SCF iterations
lionelalexandre Nov 28, 2023
a1b33ad
add X matrix build after N SCF iterations
lionelalexandre Nov 28, 2023
ed3cc8f
reworked exx tests in testsuite
lionelalexandre Nov 30, 2023
123493e
adapt DFT exchange to new parameter exx_siter
lionelalexandre Nov 30, 2023
ddc9e43
adapt EXX fraction to new parameter exx_siter
lionelalexandre Dec 1, 2023
d65c488
change EXX.StartAfterIter to 2 by default
lionelalexandre Dec 1, 2023
41cf7e2
added key accurate to precision function
lionelalexandre Dec 1, 2023
3581843
Compiling with -xAVX
connoraird Jan 29, 2024
5899b49
use libxc library
connoraird Jan 29, 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
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
6cfcb4f
Removing unused allocatables and excess timers
connoraird Feb 9, 2024
e5a8d5b
tiny modifications of EXX printing state
lionelalexandre Feb 9, 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
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
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
c00a071
Merge pull request #320 from OrderN/276-combine-nsf-loops
tkoskela Mar 5, 2024
547786c
Run CI on pushes to this branch during development.
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
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
f4b5057
Add reframe exx_runonly test and write output to screen for reframe b…
connoraird May 17, 2024
987e318
Fix CRI omp bug by increasing OMP_STACKSIZE and fix exx timers regex
connoraird May 21, 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
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
4f66f82
Merge pull request #352 from OrderN/346-refactor-kernels
lionelalexandre Jun 3, 2024
71a53f8
Fix spin bug
davidbowler Sep 11, 2024
dc468f6
play around with cutoff on X matrix building
lionelalexandre 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
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
67b749c
Symmetrize the X matrix
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
753f8c8
Merge remote-tracking branch 'origin/f-DefaultBlockSize' into f-exx-opt
davidbowler Nov 6, 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
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
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 27 additions & 3 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 @@ -117,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/*/**/
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