快速上手

为什么需要 π 集群?

您可能需要大规模计算,超出笔记本电脑或工作站的处理能力;您可能有太多数据,需要海量存储和高速读写;您可能需要先进高效的 GPU 资源,抑或是大内存节点。这些,都能在交大 π集群上实现。

π 集群面向全校师生提供服务,支撑和催化学校的科研发展。重点支持校内高水平用户的科研,覆盖各学科门类,支撑海洋学、生物医学、航空航天、机械制造、天体物理等领域的科学研究及工程应用,多篇研究发表于 Science、Nature 等高水平期刊上。

π 集群硬件资源如何?

π 集群自 2019 年底上线,双精度浮点数理论性能 2.1 PFlops,拥有 658 台双路节点和 1316 颗第二代英特尔至强金牌 6248 处理器,配以英特尔 Omni-Path 架构的 100 Gbps 高速网络互连,以及全闪存的 NVMeLustre 存储系统,体现强大的计算能力和先进的设计理念。

π 集群上的 AI 计算平台是国内高校计算力能最强的人工智能计算平台。该平台由 8 台 DGX-2 组成,每台 DGX-2 配备 16 块 NVIDIA Tesla V100,深度学习张量计算能力可以达到 16 PFLOPS;通过搭载 NVIDIA NVSwitch 创新技术,GPU 间带宽高达 2.4 TB/s。AI 计算平台采用可扩展架构,使得模型的复杂性和规模不受传统架构局限性的限制,从而可以应对众多复杂的人工智能挑战。

π 集群上的 ARM 计算平台基于 ARM 处理器构建,是国内首台基于 ARM 处理器的校级超算,共 100 个计算节点,与 π 2.0 集群实现共享登录、共享 Lustre 文件系统和共享 Slurm 作业调度系统,完美融入现有超算系统。ARM 超算单节点配备 128 核(2.6 GHz)、256 GB 内存(16 通道 DDR4-2933)、240 GB 本地硬盘,节点间采用 IB 高速互联,挂载 Lustre 并行文件系统。

资源如何选择?

π 集群采用 CentOS 的操作系统,配以 Slurm 作业调度系统,所有计算节点资源和存储资源,均可统一调用。

若是大规模的 CPU 作业,可选择 CPU 队列,支持万核规模的并行;

若是小规模测试,可选 small 队列;

GPU 作业请至 dgx2 队列;

大内存作业可选择 huge 或 192c6t 两种队列。

详情请见:Slurm 作业调度系统

使用 π 集群需要什么?

您只需要一个 π 集群账号,然后在任何一个常见的浏览器上登录 可视化平台 HPC Studio,即可自由使用 π 集群。

可视化平台 HPC Studio 使得登录更便捷,无需安装客户端,大大提升使用体验。浏览器包含电脑端和移动端的 Chrome, Firefox, Edge, Safari 等。

当然您也可以通过 SSH 客户端连接使用 π 集群。

了解 π 集群使用方法,请查看 常见问题;

简短版使用手册(Cheat Sheet):交大超算平台使用手册简短版

如何申请帐号?

π 集群服务于交大师生。账号申请者需为交大在职教职工(包含博士后)。每个账号可免费申请四个子账号。

主账号申请

在“交我办”(或 我的数字交大 my.sjtu.edu.cn )中的“交我算”里申请。我们将会在两个工作日内开通账号。

子账号申请

每个主账号可免费申请四个子账号。超出四个,将收取 200 元/年/个 的管理费用。

子账号由账号负责人或子账号使用人在“交我办”(或 我的数字交大 my.sjtu.edu.cn )中的“交我算”里申请。

开通子账号之前,还需子账号使用者完成“新手上路”考核(B 站互动视频),共 10 小题(预计完成时间 5 分钟)。正确回答所有问题后截图给我们,稍后我们会在两个工作日内开通账号。

https://www.bilibili.com/video/BV1oK4y1x7AJ (高性能计算平台新手上路指南,请在浏览器或 B 站客户端里打开)

可参阅的资料:

  1. 用户文档:https://docs.hpc.sjtu.edu.cn

  2. 学习视频:https://space.bilibili.com/483478550

  3. HPC 网站:https://hpc.sjtu.edu.cn

  4. 简短版使用手册(Cheat Sheet):https://hpc.sjtu.edu.cn/Item/docs/Pi_GetStarted.pdf

提交 Hello world 单节点作业

以单节点的 OpenMP Hello world 为例,演示 π 集群作业提交过程。

  1. 撰写名为 hello_world.c 代码如下

#include <omp.h>
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
int nthreads, tid;

  /* Fork a team of threads giving them their own copies of variables */
  #pragma omp parallel private(nthreads, tid)
    {

     /* Obtain thread number */
     tid = omp_get_thread_num();
     printf("Hello World from thread = %d\n", tid);

     /* Only master thread does this */
     if (tid == 0)
       {
        nthreads = omp_get_num_threads();
        printf("Number of threads = %d\n", nthreads);
       }

     }  /* All threads join master thread and disband */
}
  1. 使用 GCC 编译

$ module load gcc
$ gcc -fopenmp hello_world.c -o hello_world
  1. 在本地测试运行 4 线程应用程序

$ export OMP_NUM_THREADS=4 && ./hello_world
  1. 编写一个名为 hello_world.slurm 的作业脚本

#!/bin/bash

#SBATCH --job-name=hello_world
#SBATCH --partition=small
#SBATCH --output=%j.out
#SBATCH --error=%j.err
#SBATCH -n 8
#SBATCH --ntasks-per-node=8

ulimit -l unlimited
ulimit -s unlimited

module load gcc

export OMP_NUM_THREADS=8
./hello_world
  1. 提交到 SLURM

$ sbatch hello_world.slurm

登录可视化计算平台

HPC Studio 可视化平台,集成 web shell、文件管理、作业提交、可视化应用等一站式服务。

登录方法:

在浏览器中打开:HPC Studio 可视化平台

详情请见:HPC Studio 可视化平台使用方法