大连人工智能计算平台——华为昇腾AI平台——高性能计算HPC平台异构计算——NVIDIA GPU

 

 

 

使用华为的超算平台已经好长时间了,一直有个疑问,那就是这个超算平台是否支持异构计算,于是用命令试验了一下,具体命令:

 

/opt/batch/cli/bin/dsub   -n task_test -A xxxxxxxxxxxx -eo error.txt -oo output.txt -R "gpu=1" /usr/bin/nvidia-smi -pm 1

 

 

 

 

 

-n 为此次的计算任务名;

-A 为扣费账号,这里用xxxxxxxxxxxxx 代替;

-eo 为error的log;

-oo 为output的log;

运行命令为:/usr/bin/nvidia-smi -pm 1

 

上面命令关键的地方为:-R "gpu=1"

在超算计算中一个运行的总计算任务叫做job,叫做“作业”,而一个job会运行多个副本(每个副本就是mpi中的并行进程),每个副本叫做“task”,即“任务”;

如果没有使用 -N 来指定job的task个数,那么就是一个job只有一个task,而我们使用 -R "gpu=1" 用来指定每个运行的task都必须运行在有一个gpu的主机上,因此使用 -R "gpu=1" 可以保证运行的task都是可以有一个gpu进行调用的。

 

 

 

在华为的超算平台中采用容器的概念对资源进行调配,这里的容器并不是一个真实物理机的概念,容器的这个概念更贴近于虚拟机;假设当前我们只有一个主机名为slave-32的主机,该主机有128个可用CPU,4个可用GPU,那么我们使用 -N 20 -R “cpu=120;gpu=1” 的命令运行mpi代码,我们实际上是将slave-32主机虚拟成了20个有着120个CPU和1个GPU的容器(虚拟主机),分别在20个容器中的20个进程在通信,看似像20个容器(虚拟主机)通信,实际上都是运行在slave-32主机上。

 

 

 

=======================================================

 

posted on 2023-07-03 19:52  Angry_Panda  阅读(139)  评论(0)    收藏  举报

导航