快速使用手册

访问方式

 

科学岛内用户

  • ssh访问
    • Linux/Mac 下直接访问  ssh  <your user name>@shenma.ipp.ac.cn
    • Windoes需要 ssh 客户端如  putty
  • NoMachine (NX)访问

科学岛外用户

 

  • 科学岛外用户需要先通过 OpenVPN 登录
  • ssh访问  ssh <user name>@10.8.0.1
  • NX访问  URL: 10.8.0.1 Protocol: NX Port: 4022

密码

新用申请到用户名和密码后,可使用命令passwd修改初始密码,以方便自己使用.但是请确保密码的复杂度和安全性。

文件传送

nomachine登录的用户,可使用nomachine自带的传送工具实现本机和服务器之间的数据传送

其他方式登录用户,可使用xftp等工具传送。

filemove1 filemove2

编译

神马集群中有GNU、PGI、Lahey、Intel,python等几种不同的编译器,并提供openmpi,mvapich,mpich,impi四种并行库,用户可根据需要选择相应的编译器和并行库,编译自己的串行或者并行程序,编译生成的可执行文件通过作业调度工具torque提交到计算节点上运行。例如,用mpicc编译并行的hello.c程序,生成可执行文件hello:mpicc  -o hello hello.c。详细相关信息参考软件环境板块——编译器

环境变量设置

建议用户使用module设置环境变量.细相关信息参考软件环境版块——module

module avail可查看集群上所以已安装的软件,如:

module-availmodule load  **** 可將需要的环境添加到你的bash环境中。如调用gcc-4.4编译的openmpi-1.6.5,可:

module load compiler/gcc/4.4

module load mpi/openmpi/1.6.3

pbs任务提交

用户用pbs脚本提交任务,相关信息参考软件环境版块——pbs

目前,神马有两个供提交任务的队列:

(1) batch队列:用来提交神马集群上的串行作业或者多线程作业,共有十个计算节点(shenma101–shenma110),每个节点有16核,共160个计算核心。请求资源节点数小于2个节点的任务使用该队列。

(2)parallel11队列:用来提交神马集群上的并行作业,总共有51个计算(shenma111–shenma161),每个节点双路8核,共976个计算核心,请求资源节点数大于2个节点的任务使用该队列。

pbs脚本示例:

(1)串行脚本:

#!/bin/bash
#PBS -q batch

#PBS -N test
#PBS -l nodes=1:ppn=1
#PBS -l walltime=10:00:00
#PBS -j oe

cd $PBS_O_WORKDIR
loginhost=`echo $PBS_O_HOST | sed 's#\..*##'`
echo "the login node is $loginhost"
NP=`cat $PBS_NODEFILE|wc -l`
NNODES=`uniq $PBS_NODEFILE | wc -l`
NPROCS=`wc -l < $PBS_NODEFILE`
echo "the used cpu number is $PROCS"
echo "the used node name is $NNODES"
echo "the nodefile is $PBS_NODEFILE"
NODE_LIST=`uniq $PBS_NODEFILE | sort`
echo "the node_list is $NODE_LIST"

echo "$PBS_JOBID started on $PBS_O_HOST at `date`"
module purge
./a.out >$PBS_O_WORKDIR/${PBS_JOBID}_${PBS_JOBNAME}.logout
echo " $PBS_JOBID finished on $PBS_O_HOST at `date`"

(2)openmpi并行脚本

#!/bin/sh

#PBS -q parallel11

#PBS -N test

#PBS -l nodes=2:ppn=16
#PBS -l walltime=100:00:00
#PBS -j oe

cd $PBS_O_WORKDIR
loginhost=`echo $PBS_O_HOST | sed 's#\..*##'`
echo "the login node is $loginhost"
NP=`cat $PBS_NODEFILE|wc -l`
NNODES=`uniq $PBS_NODEFILE | wc -l`
NPROCS=`wc -l < $PBS_NODEFILE`
echo "the used cpu number is $PROCS"
echo "the used node name is $NNODES"
echo "the nodefile is $PBS_NODEFILE"
NODE_LIST=`uniq $PBS_NODEFILE | sort`
echo "the node_list is $NODE_LIST"

echo "$PBS_JOBID started on $PBS_O_HOST at `date`"
#ulimit -l unlimited
module purge
module load compiler/gcc/4.4
module load mpi/openmpi/1.6.5
$MPI_ROOT/bin/mpirun -machinefile $PBS_NODEFILE -np $NP ./a.out >$PBS_O_WORKDIR/${PBS_JOBID}_${PBS_JOBNAME}.logout
echo " $PBS_JOBID finished on $PBS_O_HOST at `date`"

(3)impi并行脚本

#!/bin/sh

#PBS -q parallel11

#PBS -N test
#PBS -l nodes=2:ppn=16
#PBS -l walltime=100:00:00
#PBS -j oe

cd $PBS_O_WORKDIR
loginhost=`echo $PBS_O_HOST | sed 's#\..*##'`
echo "the login node is $loginhost"
NP=`cat $PBS_NODEFILE|wc -l`
NNODES=`uniq $PBS_NODEFILE | wc -l`
NPROCS=`wc -l < $PBS_NODEFILE`
echo "the used cpu number is $PROCS"
echo "the used node name is $NNODES"
echo "the nodefile is $PBS_NODEFILE"
NODE_LIST=`uniq $PBS_NODEFILE | sort`
echo "the node_list is $NODE_LIST"

echo "$PBS_JOBID started on $PBS_O_HOST at `date`"
#ulimit -l unlimited
module purge
module load compiler/intel/2015
module load mpi/impi/5.0.1
$MPI_ROOT/bin/mpirun -machinefile $PBS_NODEFILE -np $NP hostname >$PBS_O_WORKDIR/${PBS_JOBID}_${PBS_JOBNAME}.logout
echo " $PBS_JOBID finished on $PBS_O_HOST at `date`"

提交任务:

 $qsub hello.pbs
1200.master

删除任务:qdel  1200.master,即可删除该任务