# optkit-client **Repository Path**: scchpc/optkit-client ## Basic Information - **Project Name**: optkit-client - **Description**: optkit-client - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-18 - **Last Updated**: 2026-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## (一)基本流程说明 ### 1.1 举例目录结构 在demo目录下存放两个目录caseInfo,optkit和一个脚本文件slurm.sh。 ![1731503191750](image/1731503191750.png) ① 目录caseInfo中包含vasp必要输入文件,INCAR,KPOINTS,POSCAR等。 ② 目录optkit包含运行优化脚本及其对应配置。 ③ 脚本slurm.sh用于向slurm作业调度系统提交任务。 现说明slurm.sh脚本内容。以“#SBATCH ”开头的若干行为sbach slurm.sh提交脚本至slurm作业调度系统时的运行参数。cur_dir工作目录设置为当前目录,通过export命令设置一些必要的环境变量,为优化脚本opt_vasp_mpirun的运行做准备。此外还有一些必要的设置,如通过module确定安装的软件环境,优化脚本opt_vasp_mpirun配置参数等。 正常运行优化脚本控制台打印信息如下: ![1731504258822](image/1731504258822.png) 之后在设置某目录下生成INCAR_best,此处以dir_ojob_input为例,将最新的INCAR_best命名为INCAR,作为最终任务运行mpirun vasp_std的输入文件。 slurm脚本举例如下: ![1731503132738](image/1731503132738.png) ## (二)sbatch脚本提交的相关参数 这里只对举例参数解释,其他多样化设置参见[简介 — 中国科大超级计算中心用户使用手册 :2024-05-18版 文档](https://scc.ustc.edu.cn/zlsc/user_doc/html/slurm/slurm.html#id2)。 ### 2.1 命名 --job-name 是sbarch 提交该脚本后作业名称,同样会出现在作业队列和会计信息中。 --output, --error分别指定作业标准输出和标准错误的文件名称。%j是一个特殊的占位符,它会被替换为作业的ID。例如作业ID是12345,标准输出文件将是12345.out。 ### 2.2 指定提交分区 -p 设置作业提交的分区。服务器为了更好管理用户提交的作业,将节点分成不同集合,即设置分区对作业大小,允许用户等条件进行限制。 ### 2.3 指定节点和核数 使用命令查看账户关联的QOS,并从QOS说明中找到对应的核数,节点数运行限制: ``` sacctmgr show assoc sacctmgr show qos ``` -N 指定作业分配节点数,-n 指定作业分配总核数。建议将一个节点上的所有核数均分配给作业,此处一个节点包含64核心,-N说明申请两个节点,因此-n数为128。同时结合上述qos信息可能规定用户最大运行时间设置此任务的限制时间--time,格式有--time=mm(即mm分钟),--time=hh:mm(即hh小时mm分钟),--time=dd-hh:mm(dd天hh小时mm分钟)。 ## (三)优化脚本可定义的相关参数 假设此处运行命令 ./opt_vasp_mpirun.sh --netopts "( )" --cmd "(vasp_std)" --token "(eyJ1c2VyX2lkIjoxLCJzZWVkIjowLk1) " 优化脚本正常运行后,控制台打印所示信息前几行如下页首图。图中第六行"args : number"计算执行脚本命令中参数选项的列表数目, 如--netopts "( )"中参数选项"--netopts"和参数值 "()"记为两个。同理上图显示的"opts","cmd","hostopts", "ncores_orig", "otheropts","token"均可通过"--参数选项:参数值"的格式在执行脚本时更改设置。接下来先说明这七个参数。 ![1731492178688](image/1731492178688.png) ### 3.1 mpirun参数 此处包含netopts,hostopts,otheropts三项参数,分别用于配置网络通信,指定运行MPI进程的主机,以及其他附加参数选项。因为三项参数仅用于mpirun命令,具体可参见mpirun命令说明来更好的学习使用。 优化脚本若检测到此脚本未提交至slurm作业调度系统,会依据三个参数查询本服务器总核数,获取分配给任务核数corelist。同时,如果设置"testNetSpeed"为"True", 会结合前述三个参数进行Intel IMB-MPI1基准测试得到的一些MPI时延和带宽测试结果,前提是已经安装好intel编译器和intel MPI环境。如果没有MPI网络测试的需求,无需显式指定netopts,hostopts,otheropts。 ### 3.2 核数信息 此处指参数列表中的ncore_orig, 即总核数。无论优化脚提交至slurm调度系统或者在本地运行,默认ncore_orig均会自动分配该服务器所有核心数。ncore_orig将会用于总核数的初始化,并用于最初计算真实预测参数KPAR或NPAR,在之后的流程中总核数会进一步被优化。 ### 3.3 后端鉴权 请获取合法token并填入参数中。该token会经过加密传到服务器后端,用于请求机器学习优化工具实现对参数的预测。前提是设置“use_mlopt”为“True”,该值默认为False。关于token是否合法,以及远程工具是否正常运行可通过运行作业是否输出如下语句判断: ``` "*Ini: Failed to obtain the results of mlopt, TargetPs=(...), exiting ... " ``` ### 3.4 vasp设置 ① runbin:该参数可通过--cmd ("参数值")确定,可选项有vasp_gam,vasp_std两个版本,默认结合输入文件K点数选择合适版本 注意:3.1截至3.4以上所有参数均可以通过执行 ./opt_vasp_mpirun.sh {--参数名 "(参数值)", ... }设置。以下至 “3.7其他计算指标”需要通过在slurm脚本中通过export手动设置环境变量。 ② vaspTimeLimit4Ini 默认设置为60,vaspTimeLimit 默认设置为19000,二者分别用于脚本自动监视vasp运行任务运行时间的不同阶段,如果超时会取消该服务器节点上运行该任务的进程。 ### 3.5 路径 ① 模块路径:需要的确认安装好intel编译器,intel MPI环境,以及对应vasp软件。可以通过module list查看当前服务器所提供软件包,并通过module load安装。对应于1.1中slurm.sh脚本的如下两行: ``` module list 2>&1 module load vasp/6.3.2/vtst_oneapi_latest ``` ② 输入路径dir_ojob_input :存放vasp所需输入文件所在目录,输入文件如INCAR,KPOINTS,POSCAR,POTCAR等,该值默认为当前目录。对应于1.1中slurm.sh脚本的如下三行: ``` cur_dir=$(pwd) export dir_ojob_input="$cur_dir/caseInfo" export dir_of_optmpirun="$cur_dir/optkit" ``` ③ 优化结果保存路径 dir_save_INCAR:存放该优化后的输入文件INCAR_best的位置,默认与上述输入路径保持一致。同时能否在该目录下得到INCAR_best, 也取决于optvasp_test_speed是否选择加速测试,不加速测试则不保存结果文件。 ④ 反馈至数据集的路径opt_vasp_fulldata:每次执行结果会自动添加至该本地位置的数据集中。 ### 3.6 模块选择 ① 是否开启机器学习优化工具对参数进行预测 use_mlopt: 默认为false。对于参数的初步预测采取机器学习优化工具预测或者经验模型预测其中一个,前者需要获取合法token提交优化请求。对应于1.1中slurm.sh脚本的如下一行: ``` export use_mlopt="True" ``` ② 是否进行加速测试optvasp_test_speed:默认为True。开启后会默认计算加速比等指标,微调并测试输出参数,保存最优结果等。 ③ 预测参数的方法ini_predict_target:默认同时启用三种微调参数的方法,并从中选择较优结果。