Linux下连接远程电脑并传输文件

目录
  1. Linux下使用SSH远程连接超算中心
    1. 背景
    2. SSH
    3. SCP
    4. 常用命令
      1. sinfo
      2. squeue
      3. sacct
      4. scancel
      5. srun
      6. sbatch
    5. MPI

Linux下使用SSH远程连接超算中心

背景

有时候计算量比较大,需要使用超算中心的电脑进行计算,或者需要远程连接另一台Linux电脑。如果是在windows下,使用xshell和xftp可以进行连接和文件的交互,那么Linux下如何操作呢,Linux只需要使用一下两个命令即可完成。
如果您是Win10的话,可以尝试用WSL。

SSH

远程连接电脑只需输入

1
ssh username@ipaddress

username就是用户名了,ipaddress就是你远程主机的IP,这里我们认为是超算中心的IP

有一些可选参数

1
2
-X : 调用图形界面
-p : 修改连接到服务器的端口(默认为22)

之后输入username的密码就可以了,第一次登陆系统会给出提示,真实性无法确认,yes就行了

我们尝试连接到武汉大学超算中心

ssh01

登录成功了

SCP

我们如果在超算进行计算,还需要文件交互。在自己电脑上输入

1
scp filedirA username@ipaddress:filedirB

就可以实现把文件A传到超算的目录B

反之要下载超算的文件,只需要交换前后顺序就可以

常用命令

sinfo

查看用户节点信息

squeue

查看正在运行的任务

sacct

查看结束的历史任务

scancel

取消任务

1
scancel jobid

srun

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
交互式提交作业:在 shell 窗口中执行 srun 命令,主要命令格式如下:
srun [options] program
srun 常用选项:srun 包括多个选项,其中最常用的选项主要有以下几个:

-n, –ntasks=number
指定要运行的任务数。请求为 number 个任务分配资源,默认为每个任务一个处理器核。

-c, –cpus-per-task=ncpus
告知资源管理系统控制进程,作业的每个任务需要 ncpus 个处理器核。若未指定此选项,则控制进程默认为每个任务分配一个处理器核。

-N, –nodes=minnodes[-maxnodes]
请求为作业至少分配 minnodes 个结点。调度器可能觉得在多于 minnodes 个结点上运行作业。可以通过 maxnodes 限制最多分配的结点数目(例如“-N 2-4”或“–nodes=2-4”)。最少和最多结点数目可以相同以指定特定的结点数目(例如, “-N 2”或“–nodes=2-2” 将请求两个且仅两个结点)。分区的结点数目限制将覆盖作业的请求。如果作业的结点限制超出了分区中配置的结点数目,作业将被拒绝。 如果没有指定-N,缺省行为是分配足够多的结点以满足-n 和-c 参数的需求。在允许的限制范围内以及不延迟作业开始运行的前提下,作业将被分配尽可能多的结点。


-p, –partition=partition name
在指定分区中分配资源。请使用 -p [hpxg|hpib|debug] 指定所使用的分区。

-w, –nodelist=node name list
请求指定的结点名字列表。作业分配资源中将至少包含这些结点。列表可以用逗号分隔的结点名或结点范围(如 n[0001-0005,0007,…])指定,或者用文件名指定。如果参数中包含 “/” 字符,则会被当作文件名。如果指定了最大结点数如-N 1-2,但是文件中有多余 2 个结点,则请求列表中只使用前 2 个结点。

-x, –exclude=node name list
不要将指定的结点分配给作业。如果包含 “/” 字符,参数将被当作文件名。srun 将把作业请求提交到控制进程,然后在远程结点上启动所有进程。如果资源请求不能立即被满足,srun 将阻塞等待,直到资源可用以运行作业。如果指 定了–immediate 选项,则 srun 将在资源不是立即可用时终止。

-h, –help
若需使用 srun 更多选项,可通过 “srun –h” 或 “srun –help” 查看。
使用示例:在分区 hpxg 上运行 5 个任务 hostname:
$srun –p hpxg –n hostname

sbatch

离线作业

1
2
#!/bin/bash
hostname

参数与srun一致

MPI

按照最新的教程,配置MPI(选一个)环境:

1
2
module load intel  #Intel MPI
module load openmpi/2.1.5 #OPENMPI

普通用户只有hgxb的权限,所以无法按照教程中的

1
2
3
4
#!/bin/bash
#SBATCH -n 10
#SBATCH -p hpib
srun -n $SLURM_NTASKS xxx

去除-p选项就行
注意此时不需要指定-c选项,而是指定-n选项