使用华为的超算平台已经好长时间了,一直有个疑问,那就是这个超算平台是否支持异构计算,于是用命令试验了一下,具体命令:
/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进行调用的。