VM 구성 및 최적화
적용 대상: ✔️ Linux VM ✔️ Windows VM ✔️ 유연한 확장 집합 ✔️ 균일한 확장 집합
이 문서는 HPC용 InfiniBand 사용 HB 시리즈 및 N 시리즈 VM을 구성하 고 최적화하는 방법에 대한 몇 가지 지침을 공유합니다.
IB(InfiniBand) 지원 VM에서 RDMA를 사용하도록 설정하려면 적절한 IB 드라이버가 필요합니다.
- Marketplace의 Ubuntu-HPC VM 이미지는 적절한 NVIDIA IB 드라이버 및 GPU 드라이버로 사전 구성되어 제공됩니다.
- Marketplace의 AlmaLinux-HPC VM 이미지는 적절한 NVIDIA IB 드라이버 및 GPU 드라이버로 사전 구성되어 제공됩니다.
이러한 VM 이미지는 기본 Ubuntu 및 AlmaLinux 마켓플레이스 VM 이미지를 기반으로 합니다. 기본 마켓플레이스 이미지에서 이러한 VM 이미지를 만드는 데 사용되는 스크립트는 azhpc-images 저장소에 있습니다.
GPU를 지원하는 N 시리즈 VM에서는 적절한 GPU 드라이버가 추가로 필요합니다. 다음 방법으로 사용할 수 있습니다.
- NVIDIA GPU 드라이버와 GPU 컴퓨팅 소프트웨어 스택(CUDA, NCCL)으로 사전 구성되어 제공되는 Ubuntu-HPC VM 이미지 또는 AlmaLinux-HPC VM 이미지를 사용하세요.
- VM 확장을 통해 GPU 드라이버를 추가합니다.
- GPU 드라이버를 수동으로 설치합니다.
- Marketplace의 일부 기타 VM 이미지는 NVIDIA의 VM 이미지 몇 개를 포함하여 NVIDIA GPU 드라이버와 함께 미리 설치된 상태로 제공됩니다.
워크로드의 Linux 배포판 및 버전 요구 사항에 따라 Marketplace의 AlmaLinux-HPC VM 이미지 및 AlmaLinux-HPC VM 이미지는 Azure에서 HPC 및 AI 워크로드를 시작하는 가장 쉬운 방법입니다. 또한 워크로드 별 사용자 정의 및 구성을 사용하여 커스텀 VM 이미지를 만들고 재사용하는 것이 좋습니다.
최신 Azure HPC Marketplace 이미지는 ConnectX3-Pro InfiniBand 카드를 지원하지 않는 Mellanox OFED 5.1 이상과 함께 제공됩니다. ConnectX-3 Pro InfiniBand 카드에는 MOFED 4.9 LTS 버전이 필요합니다. 이러한 VM 이미지는 지 수 x-5 및 최신 InfiniBand 카드만 지원합니다. 다음 VM 크기는 다음 HPC VM 이미지에서 InfiniBand OFED에 대한 매트릭스를 지원합니다.
현재 Ubuntu-HPC VM 이미지와 AlmaLinux-HPC VM 이미지만 NVIDIA GPU 드라이버와 GPU 컴퓨팅 소프트웨어 스택(CUDA, NCCL)으로 사전 구성되어 제공됩니다.
지원되는 HPC VM 이미지의 GPU 드라이버에 대한 VM 크기 지원 매트릭스는 다음과 같습니다.
- N 시리즈: NDv2, NDv4 VM 크기는 NVIDIA GPU 드라이버 및 GPU 컴퓨팅 소프트웨어 스택(CUDA, NCCL)에서 지원됩니다.
- N 시리즈의 다른 'NC'및 'ND'VM 크기는 NVIDIA GPU 드라이버에서 지원됩니다.
N 시리즈의 모든 VM 크기는 2세대 VM을 지원하지만 일부 이전 버전은 1세대 VM도 지원합니다. Gen 2 지원은 또한 이미지 URN 또는 버전 끝에 "01"로 표시됩니다.
SR-IOV 지원 RDMA 지원 VM의 경우 Ubuntu-HPC VM 이미지 버전 18.04, 20.04 및 22.04가 적합합니다. 이러한 VM 이미지는 RDMA용 Mellanox OFED 드라이버, NVIDIA GPU 드라이버, NCCL(GPU 계산 소프트웨어 스택) 및 널리 사용되는 MPI 라이브러리 및 과학적 컴퓨팅 패키지를 사용하여 미리 구성됩니다. VM 크기 지원 매트릭스를 참조하세요.
사용 가능한 최신 버전의 VM 이미지는 CLI 또는 Marketplace를 사용하여 다음 정보와 함께 나열될 수 있습니다.
"publisher": "Microsoft-DSVM", "offer": "Ubuntu-HPC",
기본 Ubuntu Marketplace 이미지에서 Ubuntu-HPC VM 이미지를 만드는 데 사용되는 스크립트는 azhpc-images 리포지토리에 있습니다.
SR-IOV 지원 RDMA 지원 VM의 경우 AlmaLinux-HPC VM 이미지 버전 8.5, 8.6 및 8.7가 적합합니다. 이러한 VM 이미지는 RDMA용 Mellanox OFED 드라이버, NVIDIA GPU 드라이버, NCCL(GPU 계산 소프트웨어 스택) 및 널리 사용되는 MPI 라이브러리 및 과학적 컴퓨팅 패키지를 사용하여 미리 구성됩니다. VM 크기 지원 매트릭스를 참조하세요.
사용 가능한 최신 버전의 VM 이미지는 CLI 또는 Marketplace를 사용하여 다음 정보와 함께 나열될 수 있습니다.
"publisher": "AlmaLinux", "offer": "AlmaLinux-HPC",
기본 AlmaLinux Marketplace 이미지에서 AlmaLinux-HPC VM 이미지를 만드는 데 사용되는 스크립트는 azhpc-images 리포지토리에 있습니다.
또한 Ubuntu-HPC VM 이미지 및 AlmaLinux-HPC VM 이미지에 포함된 내용과 배포 방법에 대한 자세한 내용은 Azure HPC VM 이미지에 있습니다.
Marketplace에서 기본 RHEL 기반 비 HPC VM 이미지는 SR-IOV 지원 RDMA 지원 VM에서 사용하도록 구성할 수 있습니다. VM에서 InfiniBand를 사용하고 MPI를 설정하는 방법에 대해 자세히 알아보세요.
Marketplace의 기본 Ubuntu Server 20.04 LTS 및 22.04 LTS VM 이미지는 SR-IOV/SR-IOV 이외 RDMA 지원 VM 모두에 대해 지원됩니다. VM에서 InfiniBand를 사용하고 MPI를 설정하는 방법에 대해 자세히 알아보세요.
- Ubuntu VM 이미지에서 InfiniBand을 사용하도록 설정하는 지침은 TechCommunity 문서에 나와 있습니다.
참고
Mellanox OFED 5.1 이상에서는 FDR InfiniBand를 이용하는 SR-IOV 사용 N 시리즈 VM 크기(예: NCv3)에 ConnectX3-Pro InfiniBand 카드를 지원하지 않습니다. ConnectX3-Pro 카드를 이용하는 N 시리즈 VM의 LTS Mellanox OFED 버전 4.9-0.1.7.0 이하 버전을 사용하세요. 자세한 내용은 Linux InfiniBand 드라이버를 참조하세요.
Marketplace의 HPC용 SLES 12 SP3, HPC용 SLES 12 SP3(프리미엄), HPC용 SLES 12 SP1, HPC용 SLES 12 SP1(프리미엄), SLES 12 SP4 및 SLES 15 VM 이미지가 지원됩니다. 이러한 VM 이미지에는 RDMA용 Network Direct 드라이버(SR-IOV가 아닌 VM 크기) 및 Intel MPI 버전 5.1이 사전로드되어 있습니다. VM에서 MPI를 설정하는 방법에 대해 자세히 알아보세요.
다음은 VM의 성능을 개선하기 위한 몇 가지 최적화 설정(선택 사항)입니다.
기능이나 성능에 필요한 경우 지원되는 OS 배포판에서 LIS(Linux Integration Services) 드라이버를 설치하거나 업데이트할 수 있습니다. 특히 사용자 지정 이미지 또는 이전 OS 버전(예: CentOS/RHEL 6.x 또는 7.x 이전 버전)을 사용하여 배포합니다.
wget https://aka.ms/lis
tar xzf lis
pushd LISISO
sudo ./upgrade.sh
원격 메모리 액세스를 방지하기 위해 메모리를 자동으로 회수하여 성능을 개선합니다.
sudo echo 1 >/proc/sys/vm/zone_reclaim_mode
VM을 다시 부팅한 후 메모리 회수 모드를 영구적으로 유지합니다.
sudo echo "vm.zone_reclaim_mode = 1" >> /etc/sysctl.conf sysctl -p
sudo systemctl stop iptables.service
sudo systemctl disable iptables.service
sudo systemctl mask firewalld
sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service
sudo iptables -nL
sudo sed -i -e's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
sudo service cpupower status
사용하도록 설정된 경우 사용하지 않도록 설정합니다.
sudo service cpupower stop
sudo systemctl disable cpupower
sudo sed -i -e 's/# OS.EnableRDMA=y/OS.EnableRDMA=y/g' /etc/waagent.conf
필요에 따라 작업 실행 전에 WALinuxAgent를 사용하지 않도록 설정한 다음, HPC 워크로드에 대한 VM 리소스 가용성을 극대화하기 위해 사후 작업을 다시 사용하도록 설정할 수 있습니다.
- InfiniBand 사용 HB 시리즈 및 N 시리즈 VM에서 InfiniBand을 사용하도록 설정하는 방법에 대해 자세히 알아봅니다.
- VM에서 지원되는 다양한 MPI 라이브러리를 설치하고 실행하는 방법에 대해 자세히 알아봅니다.
- HBv3시리즈 개요 및 HC 시리즈 개요를 검토합니다.
- Azure Compute 기술 커뮤니티 블로그에서 최신 공지 사항, HPC 워크로드 예제 및 성능 결과에 대해 읽어보세요.
- HPC 워크로드를 실행하는 상위 수준의 아키텍처 보기는 Azure의 HPC(고성능 컴퓨팅)를 참조하세요.