如何安装高斯计算服务器排队系统,安装教程?

高斯计算软件是量子化学领域广泛使用的工具,其计算任务通常需要消耗大量CPU和内存资源,在服务器或集群上部署高斯时,为了提高资源利用率和任务管理效率,必须安装排队系统(Job Scheduling System),排队系统能够管理作业提交、分配计算节点、监控作业状态,确保多个用户的高斯作业有序运行,避免资源冲突,实现自动化调度,本文将详细介绍高斯计算服务器排队系统的安装与配置过程,以常见的SLURM和PBS/Torque为例,涵盖从系统选型到作业脚本编写的完整步骤,并提供常见问题解决方案。

高斯计算服务器排队系统安装

排队系统选型与对比

目前主流的排队系统有SLURM、PBS/Torque、SGE(Sun Grid Engine)以及HTCondor等,对于高斯计算,SLURM因其高性能、易扩展和社区活跃而成为首选,下表对比了三种常见系统的特点:

特性 SLURM PBS/Torque SGE
架构 集中式管理,部分支持联邦 集中式,插件化 集中式,较老
配置复杂度 中等,配置文件清晰 较高,需要设置多个文件 较低,但文档不完善
作业提交命令 sbatch, srun, salloc qsub, qstat, qdel qsub, qstat, qdel
资源管理 节点、分区、作业步骤 队列、节点、虚拟节点 队列、并行环境
对高斯友好度 高,可通过脚本直接调用 高,需注意环境变量传递 一般,可能需要额外配置
社区与更新 活跃,新功能多 维护较慢,但稳定 已停止更新,建议迁移

根据实际集群规模和管理需求,选择适合的排队系统,如果从零开始,推荐SLURM;如果已有PBS基础,可继续使用Torque,本文以SLURM为例进行安装说明,同时提供PBS的作业脚本示例。

安装SLURM排队系统(以Ubuntu 20.04为例)

安装前准备

确保所有节点(管理节点和计算节点)时间同步,并配置好主机名解析,安装依赖包:

sudo apt update
sudo apt install -y build-essential munge libmunge-dev libmunge2 
    libmysqlclient-dev libssl-dev libpam0g-dev libnuma-dev 
    perl libswitch-perl

Munge用于认证,必须安装并启动服务。

下载编译SLURM

从官网下载最新稳定版,解压后编译安装(各节点需相同版本):

wget https://download.schedmd.com/slurm/slurm-23.02.6.tar.bz2
tar -xf slurm-23.02.6.tar.bz2
cd slurm-23.02.6
./configure --prefix=/usr/local/slurm
make -j$(nproc)
sudo make install

安装后,将/usr/local/slurm/sbin/usr/local/slurm/bin加入PATH,并创建必要目录:

sudo mkdir -p /var/spool/slurm /var/log/slurm /var/run/slurm
sudo chown -R slurm:slurm /var/spool/slurm /var/log/slurm /var/run/slurm

配置Munge认证

Munge是SLURM必需的认证服务,在管理节点生成密钥,并复制到所有计算节点:

sudo /usr/sbin/mungekey -f
sudo chmod 400 /etc/munge/munge.key
sudo cp /etc/munge/munge.key /path/to/share/   # 复制到共享目录

在每个计算节点上,将密钥文件放置到/etc/munge/,并启动munge服务:

sudo systemctl enable munge
sudo systemctl start munge

配置SLURM主配置文件

编辑/usr/local/slurm/etc/slurm.conf(或/etc/slurm.conf),定义集群名称、分区、节点信息等,示例配置:

ClusterName=gaussian-cluster
ControlMachine=master
SlurmUser=slurm
SlurmctldPort=6817
SlurmdPort=6818
AuthType=auth/munge
StateSaveLocation=/var/spool/slurm/ctld
SlurmdSpoolDir=/var/spool/slurm/d
SlurmctldPidFile=/var/run/slurm/slurmctld.pid
SlurmdPidFile=/var/run/slurm/slurmd.pid
# 节点定义
NodeName=compute[01-08] CPUs=24 RealMemory=64000 Sockets=2 CoresPerSocket=12 ThreadsPerCore=1
PartitionName=normal Nodes=compute[01-08] Default=YES MaxTime=INFINITE State=UP

注意:需要根据实际硬件调整CPU和内存参数,高斯计算通常需要独占节点或指定CPU核心,可以设置Shared=NOOverSubscribe=NO

高斯计算服务器排队系统安装

启动SLURM服务

在管理节点启动slurmctld,在所有计算节点启动slurmd:

sudo systemctl enable slurmctld
sudo systemctl start slurmctld
sudo systemctl enable slurmd   # 计算节点
sudo systemctl start slurmd

检查节点状态:sinfo应显示节点UP状态,使用sinfo -N查看详细。

配置高斯作业提交脚本

排队系统安装完成后,需要编写作业提交脚本(Job Script)来调用高斯计算,以下分别给出SLURM和PBS的脚本示例。

SLURM作业脚本示例

创建一个gaussian.slurm文件:

#!/bin/bash
#SBATCH -J Gaussian_Job         # 作业名称
#SBATCH -p normal               # 分区名称
#SBATCH -N 1                    # 节点数
#SBATCH -n 24                   # 总CPU核心数(与高斯并行设置一致)
#SBATCH --mem=64GB              # 内存需求(与高斯route相应)
#SBATCH -t 48:00:00             # 运行时间上限
#SBATCH -o %j.out               # 标准输出文件
#SBATCH -e %j.err               # 错误输出文件
# 加载高斯环境(根据实际安装路径修改)
export g09root=/opt/gaussian
source $g09root/g09/bsd/g09.profile
# 设置高斯临时目录(建议使用本地磁盘)
export GAUSS_SCRDIR=/scratch/$SLURM_JOB_ID
mkdir -p $GAUSS_SCRDIR
# 设置并行环境(SLURM自动提供MPI,但高斯需指定CPU数量)
export GAUSS_PDEF=$SLURM_NTASKS
# 运行高斯(输入文件为input.com,输出为output.log)
cd $SLURM_SUBMIT_DIR
g09 < input.com > output.log
# 清理临时文件
rm -rf $GAUSS_SCRDIR

提交作业:sbatch gaussian.slurm

PBS/Torque作业脚本示例

如果使用PBS,脚本类似:

#!/bin/bash
#PBS -N Gaussian_Job
#PBS -l nodes=1:ppn=24
#PBS -l mem=64gb
#PBS -l walltime=48:00:00
#PBS -o $PBS_JOBNAME.o$PBS_JOBID
#PBS -e $PBS_JOBNAME.e$PBS_JOBID
export g09root=/opt/gaussian
source $g09root/g09/bsd/g09.profile
export GAUSS_SCRDIR=/scratch/$PBS_JOBID
mkdir -p $GAUSS_SCRDIR
export GAUSS_PDEF=$PBS_NP
cd $PBS_O_WORKDIR
g09 < input.com > output.log
rm -rf $GAUSS_SCRDIR

使用qsub提交。

高斯计算排队系统的优化与注意事项

  1. 临时目录设置:高斯计算会产生大量临时文件,建议使用计算节点的本地SSD(如/scratch),并设置GAUSS_SCRDIR环境变量,如果使用共享存储,需注意I/O瓶颈。

  2. 并行核心数:高斯支持并行计算(通过%nprocsharedGAUSS_PDEF),排队系统分配的CPU核心数必须与高斯内部设置一致,避免资源浪费或内存不足,在route部分写%nprocshared=24,脚本中#SBATCH -n 24

  3. 内存管理:高斯使用%mem指定内存,排队系统申请的内存总量应略大于此值,以容纳系统开销,建议%mem不超过申请内存的90%。

    高斯计算服务器排队系统安装

  4. 作业队列优先级:可通过设置qospriority来区分作业优先级,确保紧急任务优先运行。

  5. 环境变量传递:排队系统在提交节点上执行脚本,某些环境变量(如LD_LIBRARY_PATH)可能不会自动传递,需在脚本中显式导出,或使用--export选项(SLURM)。

  6. 故障恢复:高斯长作业可能因节点故障中断,可利用排队系统的检查点(checkpoint)功能,但高斯本身不支持热检查点,因此建议定期备份chk文件并设置合理的作业时间限制。

常见问题与解决方法

问题1:提交作业后,队列显示作业一直处于等待状态,但节点空闲。
原因:可能资源请求超出节点可用资源,例如请求了64GB内存但节点只有32GB,也可能Partition配置错误,或节点处于DRAIN状态。
解决方法:检查sinfo输出,确认节点状态和分区信息;使用sinfo -o "%A %n %e %m %a"查看可用内存;调整作业资源请求,或联系管理员将节点设置为UP。

问题2:高斯作业报错“Segmentation fault”或“Out of memory”。
原因:内存不足,可能%mem设置过高,或排队系统分配的内存未正确传递,临时目录空间不足也可能导致程序崩溃。
解决方法:检查%mem是否超过%SBATCH --mem;使用ulimit -v查看进程限制;确保GAUSS_SCRDIR所在分区有足够空间(通常需要数倍于输入文件大小),可先测试小作业,逐步增加规模。

相关问答FAQs

问:如何查看高斯作业的实时运行状态和资源使用情况?

答:在SLURM系统中,可以使用squeue -j <jobid>查看作业的详细状态,包括运行节点、预计剩余时间等,使用sstat -j <jobid> --format=JobID,MaxRSS,MaxVMSize,CPUUsage查看实际资源消耗,对于PBS系统,使用qstat -f <jobid>tracejob <jobid>,如果作业已运行,可以通过ssh登录到分配的计算节点,使用topps aux | grep g09监控高斯进程,建议在作业脚本中开启高斯的高性能日志(%CPU%MEM),以便事后分析。

问:不同排队系统之间的作业提交命令差异很大,是否可以统一管理高斯作业的提交脚本?

答:可以使用作业提交包装器或门户工具实现统一接口,使用wrappers将SLURM的sbatch命令封装成与PBS类似的qsub命令,或者编写一个通用的Shell脚本,根据环境变量动态生成不同的作业脚本,另一种方法是使用集群管理平台如OpenHPC、Bright Cluster Manager,它们提供统一的作业提交界面,但最直接的方式是维护两套模板(SLURM和PBS),在不同系统间切换时仅修改脚本头部,对于经常使用高斯的研究组,建议固定使用一种排队系统,以减少学习成本。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/511756.html

(0)
酷盾叔的头像酷盾叔
上一篇 2026年7月25日 16:29
下一篇 2026年7月25日 16:37

相关推荐

  • 安全通告配置如何优化企业信息安全防护策略?

    随着互联网技术的飞速发展,网络安全问题日益凸显,企业、个人用户对网络安全的需求日益增长,安全通告配置作为网络安全的重要组成部分,其重要性不言而喻,本文将围绕安全通告配置展开,从专业、权威、可信、体验四个方面进行详细阐述,安全通告配置概述安全通告配置是指对网络设备、系统、应用程序等进行安全设置,以防范潜在的安全威……

    2026年3月20日
    1000
  • 安卓ocr图片文字识别源码如何实现高效识别与个性化定制?

    在当今数字化时代,文字识别技术在各种应用场景中扮演着重要角色,尤其是安卓OCR(Optical Character Recognition,光学字符识别)图片文字识别,它可以帮助用户快速地将图片中的文字转换为可编辑的文本格式,本文将详细介绍安卓OCR图片文字识别源码的获取、使用方法,并结合酷盾(kd.cn)的云……

    2026年2月23日
    1400
  • 绿色应用频繁出现网络异常,为何总连接不上网络?

    随着移动互联网的普及,人们对于网络速度的要求越来越高,在使用过程中,一些用户可能会遇到“green总显示网络异常”的问题,本文将从专业、权威、可信和体验的角度,为您详细解析这一现象,并提供解决方案,绿色网络异常原因分析网络环境问题(1)运营商网络不稳定:部分地区的运营商网络覆盖较差,导致信号不稳定,进而引发绿色……

    2026年1月29日
    1700
  • 如何识别html5网站

    网页源代码中的简洁DOCTYPE声明()、新增语义化标签及CSS3特性

    2025年8月21日
    2600
  • html pre标签如何对齐

    ML中,`标签内文本默认左对齐,如需其他对齐方式,可设置CSS样式,如text-align: center;居中对齐,text-align: right;`右对

    2025年7月9日
    1200

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN