From 401b6202b1f46a33a458a0be132ba320e4365eb9 Mon Sep 17 00:00:00 2001 From: sunlock0653 Date: Sat, 23 Nov 2024 19:15:05 +0800 Subject: [PATCH 1/5] add gitee proxy --- init.sh | 1 + .../abinit/8.10.3/bisheng/data.abinit.arm.gpu.config | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/init.sh b/init.sh index 99e53c7..1c94e0d 100644 --- a/init.sh +++ b/init.sh @@ -18,6 +18,7 @@ export JARVIS_TMP=/tmp export JARVIS_TMP_DOWNLOAD=${CUR_PATH}/tmp export JARVIS_EXE=${CUR_PATH}/exe export JARVIS_PROXY=https://gh.ddlc.top/https://github.com +export UseGitee=1 export DOWNLOAD_TOOL=${CUR_PATH}/package/common/download.sh diff --git a/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config b/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config index 13494ba..e2413f6 100644 --- a/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config +++ b/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config @@ -2,11 +2,23 @@ 11.11.11.11 [DOWNLOAD] +if [ "$UseGitee" == "1" ];then +abinit/8.10.3 https://gitee.com/sunlock0653/hpc-src/raw/master/abinit-8.10.3.tar.gz +atompaw/4.0.1.0 https://gitee.com/sunlock0653/hpc-src/raw/master/atompaw-4.0.1.0.tar.gz +bigdft/1.7.1.25https://gitee.com/sunlock0653/hpc-src/raw/master/bigdft-1.7.1.25.tar.gz +libxc/3.0.0 https://gitee.com/sunlock0653/hpc-src/raw/master/libxc-3.0.0.tar.gz +wannier90/2.0.1.1 https://gitee.com/sunlock0653/hpc-src/raw/master/wannier90-2.0.1.1.tar.gz + +else abinit/8.10.3 https://www.abinit.org/sites/default/files/packages/abinit-8.10.3.tar.gz atompaw/4.0.1.0 http://forge.abinit.org/fallbacks/atompaw-4.0.1.0.tar.gz bigdft/1.7.1.25 http://forge.abinit.org/fallbacks/bigdft-1.7.1.25.tar.gz libxc/3.0.0 http://forge.abinit.org/fallbacks/libxc-3.0.0.tar.gz wannier90/2.0.1.1 http://forge.abinit.org/fallbacks/wannier90-2.0.1.1.tar.gz +fi + + + abinit_package $JARVIS_PROXY/abinit/abinit/files/3586400/0001-Patching-m_polynomial_coeff.F90-for-ability-to-compi.patch.txt abinit_patch-8.10.3.patch [DEPENDENCY] -- Gitee From 2f3670d310ce63a669f2516984de0abc72152f8a Mon Sep 17 00:00:00 2001 From: sunlock0653 Date: Wed, 27 Nov 2024 10:57:49 +0800 Subject: [PATCH 2/5] add gitee source --- proxy.sh | 4 + src/dataService.py.fast | 218 ++++++++++++++++++ src/dataService.py.ori | 218 ++++++++++++++++++ .../8.10.3/bisheng/data.abinit.arm.gpu.config | 23 +- 4 files changed, 449 insertions(+), 14 deletions(-) create mode 100644 src/dataService.py.fast create mode 100644 src/dataService.py.ori diff --git a/proxy.sh b/proxy.sh index 0862b2f..6edfe4f 100644 --- a/proxy.sh +++ b/proxy.sh @@ -5,6 +5,8 @@ echo '2) 美国高速源1' echo '3) 美国高速源2' echo '4) 美国高速源3' echo '5) 韩国高速源1' +echo '6) Gitee高速源' +echo '7) 官方源' echo '你输入的数字为:' read aNum @@ -19,6 +21,8 @@ case $aNum in ;; 5) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/ghproxy.com\/https:\/\/github.com/g' init.sh ;; + 6) rm -rf src/dataService.py && cp src/dataService.py.ori src/dataService.py + ;; *) echo '你没有输入 1 到 5 之间的数字' ;; esac diff --git a/src/dataService.py.fast b/src/dataService.py.fast new file mode 100644 index 0000000..09e888d --- /dev/null +++ b/src/dataService.py.fast @@ -0,0 +1,218 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import platform + +from toolService import ToolService + +class Singleton(type): + + def __init__(self, name, bases, dictItem): + super(Singleton,self).__init__(name,bases, dictItem) + self._instance = None + + def __call__(self, *args, **kwargs): + if self._instance is None: + self._instance = super(Singleton,self).__call__(*args, **kwargs) + return self._instance + +class DataService(object,metaclass=Singleton): + # Hardware Info + avail_ips='' + # Dependent Software environment Info + dependency = '' + module_content='' + env_file = 'env.sh' + + # Application Info + app_name = '' + build_dir = '' + binary_dir = '' + binary_file = '' + case_dir = '' + + # cmd info + build_cmd = '' + clean_cmd = '' + run_cmd = {} + batch_cmd = '' + loop_cmd = '' + job_cmd = '' + job2_cmd = '' + #Other Info + env_config_file = 'JARVIS_CONFIG' + config_file = 'data.config' + meta_file = '.meta' + root_path = os.getcwd() + download_info = '' + #perf info + kperf_para = '' + perf_para = '' + nsys_para = '' + ncu_para = '' + hpccollect_para = '' + hpcreport_para = '' + def get_abspath(self, relpath): + return os.path.join(DataService.root_path, relpath) + + def __init__(self): + self.isARM = platform.machine() == 'aarch64' + self.tool = ToolService() + self.data_process() + # 优先读取环境变量的JARVIS_CONFIG配置,方便多人同时操控 + # 然后读取.meta文件中的值 + # 最后读取data.config中的值 + def get_config_file_name(self): + CONFIG_ENV = os.getenv(DataService.env_config_file) + if CONFIG_ENV is not None: + print("LOAD Config file from ENV:", CONFIG_ENV) + return CONFIG_ENV + if not os.path.exists(DataService.meta_file): + return DataService.config_file + return self.tool.read_file(DataService.meta_file) + + def get_data_config(self): + file_name = self.get_config_file_name() + file_path = self.get_abspath(file_name) + if not os.path.exists(file_path): + print("config file not found, switch to default data.config.") + file_path = self.get_abspath(DataService.config_file) + with open(file_path, encoding='utf-8') as file_obj: + contents = file_obj.read() + return contents.strip() + + def is_empty(self, content): + return len(content) == 0 or content.isspace() or content == '\n' + + def read_rows(self, rows, start_row, needs_strip=True): + data = '' + row = rows[start_row] + if needs_strip: + row = row.strip() + while not row.startswith('['): + if not self.is_empty(row): + data += row + '\n' + start_row += 1 + if start_row == len(rows): + break + row = rows[start_row] + if needs_strip: + row = row.strip() + return start_row, data + + def read_rows_kv(self, rows, start_row): + data = {} + row = rows[start_row].strip() + while not row.startswith('['): + if '=' in row: + key, value = row.split('=', 1) + data[key.strip()] = value.strip() + start_row += 1 + if start_row == len(rows): + break + row = rows[start_row].strip() + return start_row, data + + def set_app_info(self, data): + DataService.app_name = data['app_name'] + DataService.build_dir = data['build_dir'] + DataService.binary_dir = data['binary_dir'] + DataService.case_dir = data['case_dir'] + + def set_perf_info(self, data): + DataService.kperf_para = data['kperf'] if 'kperf' in data else '' + DataService.perf_para = data['perf'] if 'perf' in data else '' + DataService.nsys_para = data['nsys'] if 'nsys' in data else '' + DataService.ncu_para = data['ncu'] if 'ncu' in data else '' + DataService.hpccollect_para = data['hpccollect'] if 'hpccollect' in data else '' + DataService.hpcreport_para = data['hpcreport'] if 'hpcreport' in data else '' + + def split_two_part(self, data): + split_list = data.split(' ', 1) + first = split_list[0] + second = '' + if len(split_list) > 1: + second = split_list[1] + return (first, second) + + def data_integration(self, config_data): + DataService.avail_ips = config_data.get('[SERVER]','') + DataService.download_info = config_data.get('[DOWNLOAD]','') + DataService.dependency = config_data.get('[DEPENDENCY]','') + DataService.module_content = config_data.get('[ENV]','') + DataService.build_cmd = config_data.get('[BUILD]','') + DataService.clean_cmd = config_data.get('[CLEAN]','') + DataService.run_cmd = config_data.get('[RUN]','') + DataService.batch_cmd = config_data.get('[BATCH]','') + DataService.loop_cmd = config_data.get('[LOOP]','') + DataService.job_cmd = config_data.get('[JOB]','') + DataService.job2_cmd = config_data.get('[JOB2]','') + data = config_data.get('[APP]','') + perf_data = config_data.get('[PERF]','') + self.set_app_info(data) + self.set_perf_info(perf_data) + DataService.binary_file, DataService.binary_para = self.split_two_part(DataService.run_cmd['binary']) + + def data_process(self): + contents = self.get_data_config() + rows = contents.split('\n') + rowIndex = 0 + handlers = { + '[SERVER]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[DOWNLOAD]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[DEPENDENCY]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[ENV]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[APP]': lambda rows, rowIndex: self.read_rows_kv(rows, rowIndex+1), + '[BUILD]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[CLEAN]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[RUN]': lambda rows, rowIndex: self.read_rows_kv(rows, rowIndex+1), + '[BATCH]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[LOOP]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[JOB]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[JOB2]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[PERF]': lambda rows, rowIndex: self.read_rows_kv(rows, rowIndex+1) + } + config_data = {} + while rowIndex < len(rows): + row = rows[rowIndex].strip() + if row in handlers.keys(): + rowIndex, config_data[row] = handlers[row](rows, rowIndex) + else: + rowIndex += 1 + self.data_integration(config_data) + + def get_clean_cmd(self): + return f''' +{self.get_env()} +cd {DataService.build_dir} +{DataService.clean_cmd} +''' + def get_env(self): + return f'''source ./init.sh +./jarvis -e +source ./{DataService.env_file}''' + + def get_build_cmd(self): + return f''' +{self.get_env()} +cd {DataService.build_dir} +{DataService.build_cmd} +''' + + def get_run(self): + nodes = int(DataService.run_cmd['nodes']) + run_cmd = DataService.run_cmd['run'] + hostfile = '' + if nodes > 1: + hostfile = f'--hostfile {DataService.root_path}/hostfile' + if 'mpi' in run_cmd: + run_cmd = run_cmd.replace('mpirun', f'mpirun {hostfile}') + binary = os.path.join(DataService.binary_dir, DataService.binary_file) + return f'''{run_cmd} {binary} {DataService.binary_para}''' + + def get_run_cmd(self): + return f''' +{self.get_env()} +cd {DataService.case_dir} +{self.get_run()} +''' diff --git a/src/dataService.py.ori b/src/dataService.py.ori new file mode 100644 index 0000000..1d70cb2 --- /dev/null +++ b/src/dataService.py.ori @@ -0,0 +1,218 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +import os +import platform + +from toolService import ToolService + +class Singleton(type): + + def __init__(self, name, bases, dictItem): + super(Singleton,self).__init__(name,bases, dictItem) + self._instance = None + + def __call__(self, *args, **kwargs): + if self._instance is None: + self._instance = super(Singleton,self).__call__(*args, **kwargs) + return self._instance + +class DataService(object,metaclass=Singleton): + # Hardware Info + avail_ips='' + # Dependent Software environment Info + dependency = '' + module_content='' + env_file = 'env.sh' + + # Application Info + app_name = '' + build_dir = '' + binary_dir = '' + binary_file = '' + case_dir = '' + + # cmd info + build_cmd = '' + clean_cmd = '' + run_cmd = {} + batch_cmd = '' + loop_cmd = '' + job_cmd = '' + job2_cmd = '' + #Other Info + env_config_file = 'JARVIS_CONFIG' + config_file = 'data.config' + meta_file = '.meta' + root_path = os.getcwd() + download_info = '' + #perf info + kperf_para = '' + perf_para = '' + nsys_para = '' + ncu_para = '' + hpccollect_para = '' + hpcreport_para = '' + def get_abspath(self, relpath): + return os.path.join(DataService.root_path, relpath) + + def __init__(self): + self.isARM = platform.machine() == 'aarch64' + self.tool = ToolService() + self.data_process() + # 优先读取环境变量的JARVIS_CONFIG配置,方便多人同时操控 + # 然后读取.meta文件中的值 + # 最后读取data.config中的值 + def get_config_file_name(self): + CONFIG_ENV = os.getenv(DataService.env_config_file) + if CONFIG_ENV is not None: + print("LOAD Config file from ENV:", CONFIG_ENV) + return CONFIG_ENV + if not os.path.exists(DataService.meta_file): + return DataService.config_file + return self.tool.read_file(DataService.meta_file) + + def get_data_config(self): + file_name = self.get_config_file_name() + file_path = self.get_abspath(file_name) + if not os.path.exists(file_path): + print("config file not found, switch to default data.config.") + file_path = self.get_abspath(DataService.config_file) + with open(file_path, encoding='utf-8') as file_obj: + contents = file_obj.read() + return contents.strip() + + def is_empty(self, content): + return len(content) == 0 or content.isspace() or content == '\n' + + def read_rows(self, rows, start_row, needs_strip=True): + data = '' + row = rows[start_row] + if needs_strip: + row = row.strip() + while not row.startswith('['): + if not self.is_empty(row): + data += row + '\n' + start_row += 1 + if start_row == len(rows): + break + row = rows[start_row] + if needs_strip: + row = row.strip() + return start_row, data + + def read_rows_kv(self, rows, start_row): + data = {} + row = rows[start_row].strip() + while not row.startswith('['): + if '=' in row: + key, value = row.split('=', 1) + data[key.strip()] = value.strip() + start_row += 1 + if start_row == len(rows): + break + row = rows[start_row].strip() + return start_row, data + + def set_app_info(self, data): + DataService.app_name = data['app_name'] + DataService.build_dir = data['build_dir'] + DataService.binary_dir = data['binary_dir'] + DataService.case_dir = data['case_dir'] + + def set_perf_info(self, data): + DataService.kperf_para = data['kperf'] if 'kperf' in data else '' + DataService.perf_para = data['perf'] if 'perf' in data else '' + DataService.nsys_para = data['nsys'] if 'nsys' in data else '' + DataService.ncu_para = data['ncu'] if 'ncu' in data else '' + DataService.hpccollect_para = data['hpccollect'] if 'hpccollect' in data else '' + DataService.hpcreport_para = data['hpcreport'] if 'hpcreport' in data else '' + + def split_two_part(self, data): + split_list = data.split(' ', 1) + first = split_list[0] + second = '' + if len(split_list) > 1: + second = split_list[1] + return (first, second) + + def data_integration(self, config_data): + DataService.avail_ips = config_data.get('[SERVER]','') + DataService.download_info = config_data.get('[DOWNLOADORI]','') + DataService.dependency = config_data.get('[DEPENDENCY]','') + DataService.module_content = config_data.get('[ENV]','') + DataService.build_cmd = config_data.get('[BUILD]','') + DataService.clean_cmd = config_data.get('[CLEAN]','') + DataService.run_cmd = config_data.get('[RUN]','') + DataService.batch_cmd = config_data.get('[BATCH]','') + DataService.loop_cmd = config_data.get('[LOOP]','') + DataService.job_cmd = config_data.get('[JOB]','') + DataService.job2_cmd = config_data.get('[JOB2]','') + data = config_data.get('[APP]','') + perf_data = config_data.get('[PERF]','') + self.set_app_info(data) + self.set_perf_info(perf_data) + DataService.binary_file, DataService.binary_para = self.split_two_part(DataService.run_cmd['binary']) + + def data_process(self): + contents = self.get_data_config() + rows = contents.split('\n') + rowIndex = 0 + handlers = { + '[SERVER]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[DOWNLOADORI]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[DEPENDENCY]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[ENV]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[APP]': lambda rows, rowIndex: self.read_rows_kv(rows, rowIndex+1), + '[BUILD]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[CLEAN]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[RUN]': lambda rows, rowIndex: self.read_rows_kv(rows, rowIndex+1), + '[BATCH]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1), + '[LOOP]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[JOB]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[JOB2]': lambda rows, rowIndex: self.read_rows(rows, rowIndex+1, False), + '[PERF]': lambda rows, rowIndex: self.read_rows_kv(rows, rowIndex+1) + } + config_data = {} + while rowIndex < len(rows): + row = rows[rowIndex].strip() + if row in handlers.keys(): + rowIndex, config_data[row] = handlers[row](rows, rowIndex) + else: + rowIndex += 1 + self.data_integration(config_data) + + def get_clean_cmd(self): + return f''' +{self.get_env()} +cd {DataService.build_dir} +{DataService.clean_cmd} +''' + def get_env(self): + return f'''source ./init.sh +./jarvis -e +source ./{DataService.env_file}''' + + def get_build_cmd(self): + return f''' +{self.get_env()} +cd {DataService.build_dir} +{DataService.build_cmd} +''' + + def get_run(self): + nodes = int(DataService.run_cmd['nodes']) + run_cmd = DataService.run_cmd['run'] + hostfile = '' + if nodes > 1: + hostfile = f'--hostfile {DataService.root_path}/hostfile' + if 'mpi' in run_cmd: + run_cmd = run_cmd.replace('mpirun', f'mpirun {hostfile}') + binary = os.path.join(DataService.binary_dir, DataService.binary_file) + return f'''{run_cmd} {binary} {DataService.binary_para}''' + + def get_run_cmd(self): + return f''' +{self.get_env()} +cd {DataService.case_dir} +{self.get_run()} +''' diff --git a/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config b/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config index e2413f6..2d3eb57 100644 --- a/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config +++ b/templates/abinit/8.10.3/bisheng/data.abinit.arm.gpu.config @@ -1,25 +1,20 @@ [SERVER] 11.11.11.11 - [DOWNLOAD] -if [ "$UseGitee" == "1" ];then -abinit/8.10.3 https://gitee.com/sunlock0653/hpc-src/raw/master/abinit-8.10.3.tar.gz -atompaw/4.0.1.0 https://gitee.com/sunlock0653/hpc-src/raw/master/atompaw-4.0.1.0.tar.gz -bigdft/1.7.1.25https://gitee.com/sunlock0653/hpc-src/raw/master/bigdft-1.7.1.25.tar.gz -libxc/3.0.0 https://gitee.com/sunlock0653/hpc-src/raw/master/libxc-3.0.0.tar.gz -wannier90/2.0.1.1 https://gitee.com/sunlock0653/hpc-src/raw/master/wannier90-2.0.1.1.tar.gz - -else +abinit/8.10.3 $JARVIS_PROXY/abinit/abinit/archive/refs/tags/8.10.3.tar.gz +atompaw/4.0.1.0 https://gitee.com/kp-hpc-mod/hpc-src/raw/master/atompaw-4.0.1.0.tar.gz +bigdft/1.7.1.25 http://forge.abinit.org/fallbacks/bigdft-1.7.1.25.tar.gz +libxc/3.0.0 https://gitee.com/kp-hpc-mod/hpc-src/raw/master/libxc-3.0.0.tar.gz +wannier90/2.0.1.1 http://forge.abinit.org/fallbacks/wannier90-2.0.1.1.tar.gz +abinit_package https://gitee.com/kp-hpc-mod/hpc-src/raw/master/0001-Patching-m_polynomial_coeff.F90-for-ability-to-compi.patch.txt abinit_patch-8.10.3.patch + +[DOWNLOADORI] abinit/8.10.3 https://www.abinit.org/sites/default/files/packages/abinit-8.10.3.tar.gz atompaw/4.0.1.0 http://forge.abinit.org/fallbacks/atompaw-4.0.1.0.tar.gz bigdft/1.7.1.25 http://forge.abinit.org/fallbacks/bigdft-1.7.1.25.tar.gz libxc/3.0.0 http://forge.abinit.org/fallbacks/libxc-3.0.0.tar.gz wannier90/2.0.1.1 http://forge.abinit.org/fallbacks/wannier90-2.0.1.1.tar.gz -fi - - - -abinit_package $JARVIS_PROXY/abinit/abinit/files/3586400/0001-Patching-m_polynomial_coeff.F90-for-ability-to-compi.patch.txt abinit_patch-8.10.3.patch +abinit_package https://github.comY/abinit/abinit/files/3586400/0001-Patching-m_polynomial_coeff.F90-for-ability-to-compi.patch.txt abinit_patch-8.10.3.patch [DEPENDENCY] module use ./software/modulefiles -- Gitee From 4dd9fc072dbab447a9aa76ae2ea228c1b0438e27 Mon Sep 17 00:00:00 2001 From: sunlock0653 Date: Wed, 27 Nov 2024 16:08:22 +0800 Subject: [PATCH 3/5] add few package --- init.sh | 2 +- package/libvdwxc/0.4.1/install.sh | 9 ++ package/netcdf/4.7.0/clang/install.sh | 2 +- proxy.sh | 4 +- .../CP2K/7.1/bisheng/data.CP2K.arm.cpu.config | 19 ++-- templates/blat/35.1/data.blat.arm.cpu.config | 53 ++++++++++ .../10.3/data.octopus.arm.kpgcc.cpu.config | 2 +- .../11.4/data.octopus.arm.kgcc.cpu.config | 99 +++++++++++++++++++ .../palabos/2.1/data.palabos.arm.cpu.config | 53 ++++++++++ .../2016/data.randfold.arm.cpu.config | 52 ++++++++++ .../star/2.7.1a/data.blat.arm.cpu.config | 54 ++++++++++ 11 files changed, 338 insertions(+), 11 deletions(-) create mode 100644 package/libvdwxc/0.4.1/install.sh create mode 100644 templates/blat/35.1/data.blat.arm.cpu.config create mode 100644 templates/octopus/11.4/data.octopus.arm.kgcc.cpu.config create mode 100644 templates/palabos/2.1/data.palabos.arm.cpu.config create mode 100644 templates/randfold/2016/data.randfold.arm.cpu.config create mode 100644 templates/star/2.7.1a/data.blat.arm.cpu.config diff --git a/init.sh b/init.sh index 1c94e0d..0f421a8 100644 --- a/init.sh +++ b/init.sh @@ -18,7 +18,7 @@ export JARVIS_TMP=/tmp export JARVIS_TMP_DOWNLOAD=${CUR_PATH}/tmp export JARVIS_EXE=${CUR_PATH}/exe export JARVIS_PROXY=https://gh.ddlc.top/https://github.com -export UseGitee=1 + export DOWNLOAD_TOOL=${CUR_PATH}/package/common/download.sh diff --git a/package/libvdwxc/0.4.1/install.sh b/package/libvdwxc/0.4.1/install.sh new file mode 100644 index 0000000..9a798fb --- /dev/null +++ b/package/libvdwxc/0.4.1/install.sh @@ -0,0 +1,9 @@ +set -x +set -e +. ${DOWNLOAD_TOOL} -u https://launchpad.net/libvdwxc/stable/0.4.0/+download/libvdwxc-0.4.0.tar.gz +cd ${JARVIS_TMP} +tar xvf ${JARVIS_DOWNLOAD}/libvdwxc-0.4.0.tar.gz +cd libvdwxc-0.4.0 +./configure --prefix=$1 --enable-shared=yes --enable-static=yes +make -j +make install \ No newline at end of file diff --git a/package/netcdf/4.7.0/clang/install.sh b/package/netcdf/4.7.0/clang/install.sh index 5696ac4..73a8055 100755 --- a/package/netcdf/4.7.0/clang/install.sh +++ b/package/netcdf/4.7.0/clang/install.sh @@ -22,7 +22,7 @@ PNETCDF_DIR=${PNETCDF_PATH} cd include/ rm -rf ncconfigure.h -wget $JARVIS_PROXY/Unidata/netcdf-c/files/3234181/ncconfigure.zip --no-ch +wget https://github.com/Unidata/netcdf-c/files/3234181/ncconfigure.zip --no-ch unzip ncconfigure.zip cd .. diff --git a/proxy.sh b/proxy.sh index 6edfe4f..ffb10f8 100644 --- a/proxy.sh +++ b/proxy.sh @@ -21,8 +21,10 @@ case $aNum in ;; 5) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/ghproxy.com\/https:\/\/github.com/g' init.sh ;; - 6) rm -rf src/dataService.py && cp src/dataService.py.ori src/dataService.py + 6) rm -rf src/dataService.py && cp src/dataService.py.fast src/dataService.py ;; + 7) rm -rf src/dataService.py && cp src/dataService.py.ori src/dataService.py + ;; *) echo '你没有输入 1 到 5 之间的数字' ;; esac diff --git a/templates/CP2K/7.1/bisheng/data.CP2K.arm.cpu.config b/templates/CP2K/7.1/bisheng/data.CP2K.arm.cpu.config index e5bd41a..6bcbc70 100644 --- a/templates/CP2K/7.1/bisheng/data.CP2K.arm.cpu.config +++ b/templates/CP2K/7.1/bisheng/data.CP2K.arm.cpu.config @@ -31,13 +31,15 @@ module load gsl/2.6 module load hmpi/1.1.1 module load gmp/6.2.0 module load boost/1.72.0 +module load lapack-bisheng/3.8.0 export CC=mpicc CXX=mpicxx FC=mpifort ./jarvis -install libint/2.6.0 clang+mpi ./jarvis -install fftw/3.3.8 clang+mpi -./jarvis -install scalapack/2.1.0/lapack-bisheng clang+mpi +#./jarvis -install scalapack/2.1.0/lapack-bisheng clang+mpi +./jarvis -install scalapack/2.1.0/clang bisheng+mpi ./jarvis -install plumed/2.6.2 clang+mpi -module load scalapack-lapack-bisheng/2.1.0 openblas/0.3.18 +module load scalapack-clang/2.1.0 openblas/0.3.18 ./jarvis -install elpa/2019.05.001 clang+mpi tar -zxvf $JARVIS_DOWNLOAD/cp2k-7.1.tar.gz @@ -52,15 +54,19 @@ module load gsl/2.6 [APP] app_name = CP2K -build_dir = ${JARVIS_ROOT}/cp2k-7.1.0 +build_dir = ${JARVIS_ROOT} binary_dir = ${JARVIS_ROOT}/cp2k-7.1.0/exe/Linux-arm-clang/ case_dir = ${JARVIS_ROOT}/cp2k-7.1.0/benchmarks/QS/ [BUILD] +rm -rf cp2k-7.1.0 +tar -zxvf $JARVIS_DOWNLOAD/cp2k-7.1.tar.gz +tar -zxvf $JARVIS_DOWNLOAD/dbcsr-2.0.1.tar.gz -C ${JARVIS_ROOT}/cp2k-7.1.0/exts/dbcsr --strip-components=1 +cd cp2k-7.1.0 cd ./arch cp ${JARVIS_ROOT}/templates/CP2K/7.1/bisheng/Linux-arm-clang.psmp ./ -sed -i "10s%path1%${JARVIS_ROOT}/software/libs/bisheng2.1.0/hmpi1.1.11%g" Linux-arm-clang.psmp -sed -i "11s%path2%${JARVIS_ROOT}/software/libs/bisheng2%g" Linux-arm-clang.psmp +sed -i "10s%path1%${JARVIS_ROOT}/software/libs/bisheng2.1.0/hmpi1.1.1%g" Linux-arm-clang.psmp +sed -i "11s%path2%${JARVIS_ROOT}/software/libs/bisheng2.1.0/%g" Linux-arm-clang.psmp cd .. make -j 128 ARCH=Linux-arm-clang VERSION=psmp @@ -71,5 +77,4 @@ make -j 128 ARCH=Linux-arm-clang VERSION=psmp clean [RUN] run = numactl -C 0-63 mpirun --allow-run-as-root -np 64 -x OMP_NUM_THREADS=1 binary = cp2k.psmp H2O-256.inp -nodes = 1 - +nodes = 1 \ No newline at end of file diff --git a/templates/blat/35.1/data.blat.arm.cpu.config b/templates/blat/35.1/data.blat.arm.cpu.config new file mode 100644 index 0000000..a5fd20b --- /dev/null +++ b/templates/blat/35.1/data.blat.arm.cpu.config @@ -0,0 +1,53 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +blat/35.1 https://codeload.github.com/djhshih/blat/tar.gz/v35.1 blat-35.1.tar.gz + +[DEPENDENCY] +module use ./software/modulefiles +module purge +./jarvis -install kgcc/9.3.1 com +module load kgcc/9.3.1 + + + +[ENV] +module use ./software/modulefiles +module purge +module load kgcc/9.3.1 + +[APP] +app_name = blat +build_dir = $JARVIS_ROOT +binary_dir = ${JARVIS_TMP}/blat-35.1/bin +case_dir = + + + +[BUILD] +set -x +set -e + +module use ./software/modulefiles +module purge +module load kgcc/9.3.1 +yum -y install libpng-devel + +cd ${JARVIS_TMP} +rm -rf blat-35.1 +tar -zxvf $JARVIS_DOWNLOAD/blat-35.1.tar.gz +cd ${JARVIS_TMP}/blat-35.1/ +sed -i 's/jmp_buf htmlRecover/\/\/jmp_buf htmlRecover/g' src/inc/htmshell.h +export MACHTYPE=aarch64 +make + + + +[CLEAN] +./clean_build + +[RUN] +run = +binary = +nodes = 1 diff --git a/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config b/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config index 30c925e..9e9da4f 100644 --- a/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config +++ b/templates/octopus/10.3/data.octopus.arm.kpgcc.cpu.config @@ -2,7 +2,7 @@ 11.11.11.11 [DOWNLOAD] -octopus/10.3 https://octopus-code.org/down.php?file=10.3/octopus-10.3.tar.gz octopus-10.3.tar.gz +octopus/10.3 https://octopus-code.org/download/10.3/octopus-10.3.tar.gz octopus-10.3.tar.gz [DEPENDENCY] module purge diff --git a/templates/octopus/11.4/data.octopus.arm.kgcc.cpu.config b/templates/octopus/11.4/data.octopus.arm.kgcc.cpu.config new file mode 100644 index 0000000..4e89063 --- /dev/null +++ b/templates/octopus/11.4/data.octopus.arm.kgcc.cpu.config @@ -0,0 +1,99 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +octopus/11.4 https://octopus-code.org/download/11.4/octopus-11.4.tar.gz octopus-11.4.tar.gz + +[DEPENDENCY] +module purge + +./jarvis -install bisheng/2.4.0 com +module use ./software/modulefiles +module load bisheng/2.1.0 + +module purge +./jarvis -install kgcc/9.3.1 com +module use ./software/modulefiles + +module load kgcc/9.3.1 +export CC=`which gcc` +export CXX=`which g++` +export FC=`which gfortran` +./jarvis -install hmpi/1.1.1 gcc +./jarvis -install gsl/2.5 gcc +./jarvis -install lapack/3.10.1 gcc +./jarvis -install libxc/4.0.1 gcc + + + + + +module load hmpi/1.1.1 +export CC=`which mpicc` +export CXX=`which mpicxx` +export FC=`which mpifort` +export OPAL_PREFIX=$JARVIS_MPI/hmpi1.1.1-kgcc9.3.1/1.1.1 +./jarvis -install fftw/3.3.8 gcc+mpi +./jarvis -install libvdwxc/0.4.0 gcc+mpi +tar -xvf ${JARVIS_DOWNLOAD}/octopus-11.4.tar.gz + +[ENV] +module purge +module use ${JARVIS_ROOT}/software/modulefiles + +module load kgcc/9.3.1 + + +export OPAL_PREFIX=$JARVIS_MPI/hmpi1.1.1-bisheng2.4.0/1.1.1 +module load lapack/3.10.1 +module load gsl/2.5 +module load libxc/4.0.1 + +module add bisheng/2.4.0 +module load hmpi/1.1.1 + + + + + +[APP] +app_name = octopus +build_dir = ${JARVIS_ROOT}/octopus-11.4 +binary_dir = ./software/apps/bisheng/octopus/11.4 +case_dir = + +[BUILD] + + +./configure CC=mpicc CXX=mpicxx FC=mpifort \ +--prefix=${JARVIS_ROOT}/software/apps/bisheng/octopus/11.4 \ +CFLAGS='-lgfortran' \ +FCFLAGS=' -lgfortran' \ +--with-gsl-prefix==${JARVIS_LIBS}/kgcc9.3.1/gsl/2.5 \ +--with-libxc-prefix=${JARVIS_LIBS}/kgcc9.3.1/libxc/4.0.1 \ +--with-fftw-prefix=${JARVIS_LIBS}/kgcc9.3.1/hmpi1.1.1/fftw/3.3.8 \ +--with-libvdwxc-prefix=${JARVIS_LIBS}/kgcc9.3.1/hmpi1.1.1/libvdwxc/4.0.0 \ +--with-blas=${JARVIS_LIBS}/kgcc9.3.1/lapack/3.10.1/lib/librefblas.a \ +--with-lapack=${JARVIS_LIBS}/kgcc9.3.1/lapack/3.10.1/lib/liblapack.a \ +--enable-mpi \ +--disable-zdotc-test + + + + +sed -i -e '0,/FINISHED/{s/FINISHED/FINISHED1/}' -e 's/(FINISHED/(FINISHED1/g' src/multisystem/propagator.F90 +sed -i 's/type(\*)/type(c_ptr)/g' src/basic/cuda.F90 +sed -i '0,/private/{s/private/\!private/}' src/basic/clock.F90 +sed -i 's/FINISHED/FINISHED1/g' src/multisystem/system.F90 +sed -i -e 's/test_clock_a .lt. test_clock_b/clock_is_earlier(test_clock_a,test_clock_b)/g' -e 's/test_clock_a .le. test_clock_b/clock_is_equal_or_earlier(test_clock_a,test_clock_b)/g' -e 's/test_clock_a .gt. test_clock_b/clock_is_later(test_clock_a,test_clock_b)/g' -e 's/test_clock_a .ge. test_clock_b/clock_is_equal_or_later(test_clock_a,test_clock_b)/g' -e 's/test_clock_a .eq. test_clock_b/clock_is_equal(test_clock_a,test_clock_b)/g' src/main/test.F90 +sed -i '/SAFE_DEALLOCATE_P(systems)/s+^+!+g' src/main/run.F90 +sed -i -e 's/cuda_memcpy_htod(this%mem, data(1)/cuda_memcpy_htod(this%mem, c_loc(data(1))/g' -e 's/cuda_memcpy_htod(this%mem, data(1, 1)/cuda_memcpy_htod(this%mem, c_loc(data(1, 1))/g' -e 's/cuda_memcpy_htod(this%mem, data(1, 1, 1)/cuda_memcpy_htod(this%mem, c_loc(data(1, 1, 1))/g' -e 's/cuda_memcpy_dtoh(this%mem, data(1)/cuda_memcpy_dtoh(this%mem, c_loc(data(1))/g' -e 's/cuda_memcpy_dtoh(this%mem, data(1, 1)/cuda_memcpy_dtoh(this%mem, c_loc(data(1, 1))/g' -e 's/cuda_memcpy_dtoh(this%mem, data(1, 1, 1)/cuda_memcpy_dtoh(this%mem, c_loc(data(1, 1, 1))/g' src/basic/accel_inc.F90 + +make -j +make install + + +[RUN] +run = +binary = +nodes = 1 \ No newline at end of file diff --git a/templates/palabos/2.1/data.palabos.arm.cpu.config b/templates/palabos/2.1/data.palabos.arm.cpu.config new file mode 100644 index 0000000..faae46c --- /dev/null +++ b/templates/palabos/2.1/data.palabos.arm.cpu.config @@ -0,0 +1,53 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +palabos/2.1 https://gitlab.com/unigespc/palabos/-/archive/v2.1r0/palabos-v2.1r0.zip palabos-v2.1r0.zip + + +[DEPENDENCY] +module purge +./jarvis -install bisheng/3.2.0-mini com +module use ./software/modulefiles +module load bisheng/3.2.0-mini +export CC=clang CXX=clang++ FC=flang +./jarvis -install hmpi/2.3.0 clang +module use ./software/moduledeps/bisheng3.2.0 +module load hmpi/2.3.0 +./jarvis -install cmake/3.23.1 clang +module load cmake/3.23.1 + +[ENV] +module use ./software/modulefiles +module purge +module load bisheng/3.2.0-mini +module use ./software/moduledeps/bisheng3.2.0 +module load hmpi/2.3.0 +export CC=clang CXX=clang++ FC=flang +export PMIX_INSTALL_PREFIX=${OPAL_PREFIX} +cd /hpcrunner +CUR_PATH=$(pwd) +export JARVIS_ROOT=${CUR_PATH} +export JARVIS_TMP=${CUR_PATH}/tmp +export PATH=${JARVIS_TMP}/palabos-v2.1r0/examples/showCases/cavity2d:$PATH +export PATH=${JARVIS_TMP}/palabos-v2.1r0/examples/showCases/boussinesqThermal3d:$PATH + +[APP] +app_name = palabos +build_dir = ${JARVIS_ROOT} +binary_dir = ${JARVIS_TMP}/palabos-v2.1r0/ +case_dir = + +[BUILD] +cd ${JARVIS_TMP} +unzip ${JARVIS_DOWNLOAD}/palabos-v2.1r0.zip +cd palabos-v2.1r0 +cd examples/showCases/cavity2d +make -j +cd ${JARVIS_TMP}/palabos-v2.1r0/examples/showCases/boussinesqThermal3d +make -j + +[RUN] +run = +binary = +nodes = 1 diff --git a/templates/randfold/2016/data.randfold.arm.cpu.config b/templates/randfold/2016/data.randfold.arm.cpu.config new file mode 100644 index 0000000..047adc1 --- /dev/null +++ b/templates/randfold/2016/data.randfold.arm.cpu.config @@ -0,0 +1,52 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +randfold/2016 https://gitee.com/kp-hpc-mod/hpc-src/raw/master/randfold-2016.tar.gz + +[DEPENDENCY] +module use ./software/modulefiles +module purge +./jarvis -install kgcc/9.3.1 com +module load kgcc/9.3.1 + + + +[ENV] +module use ./software/modulefiles +module purge +module load kgcc/9.3.1 + +[APP] +app_name = randfold +build_dir = $JARVIS_ROOT +binary_dir = +case_dir = + + + +[BUILD] +set -x +set -e + +module use ./software/modulefiles +module purge +module load kgcc/9.3.1 + +cd ${JARVIS_TMP} +rm -rf randfold +tar -zxvf $JARVIS_DOWNLOAD/randfold-2016.tar.gz +cd ${JARVIS_TMP}/randfold/src/squid-1.9g +./configure && make +cd ${JARVIS_TMP}/randfold/src +make + + + +[CLEAN] +./clean_build + +[RUN] +run = +binary = +nodes = 1 diff --git a/templates/star/2.7.1a/data.blat.arm.cpu.config b/templates/star/2.7.1a/data.blat.arm.cpu.config new file mode 100644 index 0000000..962cbd3 --- /dev/null +++ b/templates/star/2.7.1a/data.blat.arm.cpu.config @@ -0,0 +1,54 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +STAR/2.7.1a https://gitee.com/kp-hpc-mod/hpc-src/raw/master/STAR-2.7.1a.tar.gz STAR-2.7.1a.tar.gz + +[DOWNLOADORI] +STAR/2.7.1a https://github.com/alexdobin/STAR/archive/refs/tags/2.7.1a.tar.gz STAR-2.7.1a.tar.gz + +[DEPENDENCY] +module use ./software/modulefiles +module purge +./jarvis -install kgcc/9.3.1 com +module load kgcc/9.3.1 + + + +[ENV] +module use ./software/modulefiles +module purge +module load kgcc/9.3.1 + +[APP] +app_name = STAR +build_dir = $JARVIS_ROOT +binary_dir = +case_dir = + + + +[BUILD] +set -x +set -e +module use ./software/modulefiles +module purge +module load kgcc/9.3.1 + + +cd ${JARVIS_TMP} +rm -rf STAR-2.7.1a +tar -zxvf $JARVIS_DOWNLOAD/STAR-2.7.1a.tar.gz +cd ${JARVIS_TMP}/STAR-2.7.1a +cd source +sed -i 's/\?\=/\?= \-flto \-march=native \-mcpu=tsv110/g' Makefile +make STAR + + +[CLEAN] +./clean_build + +[RUN] +run = +binary = +nodes = 1 -- Gitee From a9735b99b03110cdd7102ce6a4fb48c06e2f0c2d Mon Sep 17 00:00:00 2001 From: sunlock0653 Date: Mon, 2 Dec 2024 19:18:32 +0800 Subject: [PATCH 4/5] fix wrf --- proxy.sh | 57 ++++---- .../wrf/4.3.3/bisheng/data.wrf.arm.cpu.config | 72 ++++++++++ templates/wrf/4.3.3/wrf.4.3.config | 126 ++++++++++++------ 3 files changed, 189 insertions(+), 66 deletions(-) create mode 100644 templates/wrf/4.3.3/bisheng/data.wrf.arm.cpu.config diff --git a/proxy.sh b/proxy.sh index ffb10f8..b62767e 100644 --- a/proxy.sh +++ b/proxy.sh @@ -1,34 +1,39 @@ +#!/bin/bash -echo '输入 1 到 4 之间的数字,选择合适的github源' +# 定义代理URL +declare -A proxies=( + [1]="https://github.com" + [2]="https://gh.ddlc.top/https://github.com" + [3]="https://gh.con.sh/https://github.com" + [4]="https://hub.gitmirror.com/https://github.com" + [5]="https://ghproxy.com/https://github.com" + [6]="https://ghproxy.cc/https://github.com" +) + +echo '输入 1 到 7 之间的数字,选择合适的git源' echo '1) 官方源' echo '2) 美国高速源1' echo '3) 美国高速源2' echo '4) 美国高速源3' echo '5) 韩国高速源1' -echo '6) Gitee高速源' -echo '7) 官方源' - -echo '你输入的数字为:' -read aNum -case $aNum in - 1) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/github.com/g' init.sh - ;; - 2) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/gh.ddlc.top\/https:\/\/github.com/g' init.sh - ;; - 3) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/gh.con.sh\/https:\/\/github.com/g' init.sh - ;; - 4) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/hub.gitmirror.com\/https:\/\/github.com/g' init.sh - ;; - 5) sed -i -e 's/JARVIS_PROXY=.*/JARVIS_PROXY=https:\/\/ghproxy.com\/https:\/\/github.com/g' init.sh - ;; - 6) rm -rf src/dataService.py && cp src/dataService.py.fast src/dataService.py - ;; - 7) rm -rf src/dataService.py && cp src/dataService.py.ori src/dataService.py - ;; - *) echo '你没有输入 1 到 5 之间的数字' - ;; -esac - - +echo '6) 韩国高速源2' +echo '7) Gitee高速源' +echo '8) 恢复官方源' +read -p '你输入的数字为: ' aNum +if [[ $aNum =~ ^[1-6]$ ]]; then + # 更新init.sh中的代理URL + sed -i -e "s|JARVIS_PROXY=.*|JARVIS_PROXY=${proxies[$aNum]}|g" init.sh + source init.sh +elif [[ $aNum -eq 'a' ]]; then + # 备份并替换dataService.py文件 + rm -rf src/dataService.py + cp src/dataService.py.fast src/dataService.py +elif [[ $aNum -eq 'b' ]]; then + # 恢复dataService.py文件 + rm -rf src/dataService.py + cp src/dataService.py.ori src/dataService.py +else + echo '无效输入,请输入 1 到 7 之间的数字' +fi \ No newline at end of file diff --git a/templates/wrf/4.3.3/bisheng/data.wrf.arm.cpu.config b/templates/wrf/4.3.3/bisheng/data.wrf.arm.cpu.config new file mode 100644 index 0000000..2e83460 --- /dev/null +++ b/templates/wrf/4.3.3/bisheng/data.wrf.arm.cpu.config @@ -0,0 +1,72 @@ +[SERVER] +11.11.11.11 + +[DOWNLOAD] +wrf/4.3.3 $JARVIS_PROXY/wrf-model/WRF/archive/refs/tags/v4.3.3.tar.gz wrf-4.3.3.tar.gz + +[DEPENDENCY] +set -e +set -x +module purge +module use ./software/modulefiles +./jarvis -install kml/1.6.0/gcc any +./jarvis -install bisheng/2.5.0 com +module load bisheng/2.5.0 +export CC=clang CXX=clang++ FC=flang +./jarvis -install jasper/1.900.2 clang +module load jasper/1.900.2 +./jarvis -install hmpi/1.2.0 clang +module load hmpi/1.2.0 +export CC=mpicc CXX=mpicxx FC=mpifort +./jarvis -install hdf5/1.12.0/clang clang+mpi +module load hdf5-clang/1.12.0 +./jarvis -install netcdf/4.7.4/clang clang+mpi +module load netcdf-clang/4.7.4 +./jarvis -install pnetcdf/1.12.1 clang+mpi +module load pnetcdf/1.12.1 +#tar -zxvf $JARVIS_DOWNLOAD/wrf-4.3.3.tar.gz + +[ENV] +#!/bin/bash +module purge +module use ./software/modulefiles +module load bisheng/2.5.0 +module load jasper/1.900.2 +module load hmpi/1.2.0 +module load hdf5-clang/1.12.0 netcdf-clang/4.7.4 pnetcdf/1.12.1 +module load kml-gcc/1.6.0 +export WRFIO_NCD_LARGE_FILE_SUPPORT=1 +export NETCDF=$NETCDF_CLANG_PATH +export HDF5=$HDF5_CLANG_PATH +export PHDF5=$HDF5 +export PNETCDF=$PNETCDF_PATH +export JASPER=$JASPER_PATH +export JASPERLIB=$JASPER_PATH/lib +export JASPREINC=$$JASPER_PATH/include +export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include" +export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" +export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 +export WRF_DIR=$JARVIS_ROOT/WRF-4.3.3 +export MPI_LIB="-L$MPI_LIB -lmpi -lomp" +export INCLUDE=$WRF_DIR/include:$INCLUDE +export WRFIO_NCD_LARGE_FILE_SUPPORT=1 +#移动run/目录下的初始场数据 + +[APP] +app_name = WRF +build_dir = ${WRF_DIR} +binary_dir = +case_dir = ${JARVIS_ROOT}/workloads/test_wrf + +[BUILD] +echo 4 | ./configure +./compile -j 16 em_real 2>&1 | tee compile.log + +[CLEAN] +./clean + +[RUN] +run = dsub -s run.sh +binary = +nodes = 1 + diff --git a/templates/wrf/4.3.3/wrf.4.3.config b/templates/wrf/4.3.3/wrf.4.3.config index b7e6481..e864ece 100644 --- a/templates/wrf/4.3.3/wrf.4.3.config +++ b/templates/wrf/4.3.3/wrf.4.3.config @@ -5,52 +5,34 @@ wrf/4.3.3 $JARVIS_PROXY/wrf-model/WRF/archive/refs/tags/v4.3.3.tar.gz wrf-4.3.3.tar.gz [DEPENDENCY] -set -e -set -x + module purge module use ./software/modulefiles -./jarvis -install kml/1.6.0/gcc any -./jarvis -install bisheng/2.5.0 com -module load bisheng/2.5.0 -export CC=clang CXX=clang++ FC=flang -./jarvis -install jasper/1.900.2 clang -module load jasper/1.900.2 -./jarvis -install hmpi/1.2.0 clang -module load hmpi/1.2.0 +./jarvis -install kgcc/9.3.1 com +module load kgcc/9.3.1 +export CC=gcc CXX=g++ FC=gfortran + +./jarvis -install hmpi/1.1.1 gcc +module load hmpi/1.1.1 export CC=mpicc CXX=mpicxx FC=mpifort -./jarvis -install hdf5/1.12.0/clang clang+mpi -module load hdf5-clang/1.12.0 -./jarvis -install netcdf/4.7.4/clang clang+mpi -module load netcdf-clang/4.7.4 -./jarvis -install pnetcdf/1.12.1 clang+mpi -module load pnetcdf/1.12.1 -#tar -zxvf $JARVIS_DOWNLOAD/wrf-4.3.3.tar.gz +./jarvis -install hdf5/1.10.1 gcc+mpi +./jarvis -install package/pnetcdf/1.11.2 gcc+mpi +./jarvis -install package/netcdf/4.7.0 gcc+mpi +./jarvis -install optimized-routines/20.02 gcc+mpi +cd ${JARVIS_TMP} + +tar -zxvf $JARVIS_DOWNLOAD/wrf-4.3.3.tar.gz [ENV] -#!/bin/bash module purge module use ./software/modulefiles -module load bisheng/2.5.0 -module load jasper/1.900.2 -module load hmpi/1.2.0 -module load hdf5-clang/1.12.0 netcdf-clang/4.7.4 pnetcdf/1.12.1 -module load kml-gcc/1.6.0 -export WRFIO_NCD_LARGE_FILE_SUPPORT=1 -export NETCDF=$NETCDF_CLANG_PATH -export HDF5=$HDF5_CLANG_PATH -export PHDF5=$HDF5 -export PNETCDF=$PNETCDF_PATH -export JASPER=$JASPER_PATH -export JASPERLIB=$JASPER_PATH/lib -export JASPREINC=$$JASPER_PATH/include -export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include" -export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" -export CC=mpicc CXX=mpicxx FC=mpif90 F77=mpif90 F90=mpif90 -export WRF_DIR=$JARVIS_ROOT/WRF-4.3.3 -export MPI_LIB="-L$MPI_LIB -lmpi -lomp" -export INCLUDE=$WRF_DIR/include:$INCLUDE -export WRFIO_NCD_LARGE_FILE_SUPPORT=1 -#移动run/目录下的初始场数据 +module load kgcc/9.3.1 +module load hmpi/1.1.1 +export CC=mpicc CXX=mpicxx FC=mpifort +module load pnetcdf/1.11.2 +module load netcdf/4.7.0 +module load optimized-routines/20.02 + [APP] app_name = WRF @@ -59,8 +41,72 @@ binary_dir = case_dir = ${JARVIS_ROOT}/workloads/test_wrf [BUILD] +cd ${JARVIS_TMP} +cd WRF-4.3.3 + +export HDF5=`which h5diff` +export HDF5=${HDF5%/*/*} +export NETCDF=`nc-config --prefix` +export PNETCDF=`pnetcdf-config --prefix` + +export CPPFLAGS="-I$HDF5/include -I$PNETCDF/include -I$NETCDF/include" +export LDFLAGS="-L$HDF5/lib -L$PNETCDF/lib -L$NETCDF/lib -lnetcdf -lnetcdff -lpnetcdf -lhdf5_hl -lhdf5 -lz" +export WRFIO_NCD_LARGE_FILE_SUPPORT=1 + +sed -i $((`sed -n '$=' arch/configure.defaults`-2)),$((`sed -n '$=' arch/configure.defaults`))d arch/configure.defaults + +mathlib_path=$JARVIS_ROOT/software/compiler/kgcc/9.3.1/lib64/libhpc +cat >> arch/configure.defaults <&1 | tee compile.log + +./compile em_real 2>&1 | tee -a compile.log + [CLEAN] ./clean -- Gitee From 21ddf7d15ee06c1a25eac63471dad93eb1a29871 Mon Sep 17 00:00:00 2001 From: sunlock0653 Date: Tue, 3 Dec 2024 14:14:29 +0800 Subject: [PATCH 5/5] update the proxy --- proxy.sh | 2 +- templates/wrf/4.3.3/wrf.4.3.config | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/proxy.sh b/proxy.sh index b62767e..b44a75e 100644 --- a/proxy.sh +++ b/proxy.sh @@ -25,7 +25,7 @@ read -p '你输入的数字为: ' aNum if [[ $aNum =~ ^[1-6]$ ]]; then # 更新init.sh中的代理URL sed -i -e "s|JARVIS_PROXY=.*|JARVIS_PROXY=${proxies[$aNum]}|g" init.sh - source init.sh + source ./init.sh elif [[ $aNum -eq 'a' ]]; then # 备份并替换dataService.py文件 rm -rf src/dataService.py diff --git a/templates/wrf/4.3.3/wrf.4.3.config b/templates/wrf/4.3.3/wrf.4.3.config index e864ece..a439e1b 100644 --- a/templates/wrf/4.3.3/wrf.4.3.config +++ b/templates/wrf/4.3.3/wrf.4.3.config @@ -15,10 +15,10 @@ export CC=gcc CXX=g++ FC=gfortran ./jarvis -install hmpi/1.1.1 gcc module load hmpi/1.1.1 export CC=mpicc CXX=mpicxx FC=mpifort -./jarvis -install hdf5/1.10.1 gcc+mpi -./jarvis -install package/pnetcdf/1.11.2 gcc+mpi -./jarvis -install package/netcdf/4.7.0 gcc+mpi -./jarvis -install optimized-routines/20.02 gcc+mpi +./jarvis -install hdf5/1.10.1 gcc +./jarvis -install package/pnetcdf/1.11.2 gcc +./jarvis -install package/netcdf/4.7.0 gcc +./jarvis -install optimized-routines/20.02 gcc cd ${JARVIS_TMP} tar -zxvf $JARVIS_DOWNLOAD/wrf-4.3.3.tar.gz -- Gitee