HPC 환경에서 배치 작업을 위한 테스트 환경을 Raspberry Pi 클러스터로 생성
5444 단어 RaspberryPiHPCspackSLURM
HPC 환경에서 배치 작업을 위한 테스트 환경을 Raspberry Pi 클러스터로 생성
일반적인 HPC(고급 컴퓨터) 환경을 사용하는 경우 여러 컴퓨터 노드에 대해 배치 작업 스크립트를 실행해야 합니다.
HPC 환경에서 실행되는 프로그램은 이른바 비즈니스 시스템과 달리 일반적으로 일괄 처리 작업이다.이때 사용하는 작업 관리 소프트웨어도 HPC 환경을 대상으로 합니다.
예를 들어 슈퍼컴퓨터'부악'은 후지통회사 Fujitsu Software Technical Computing Suite의 pjsub/pjdel/pjstat/pjcancel 명령을 사용한다.
HPC 환경 배치 프로그램은 임무 관리 소프트웨어에 따라 형식을 정합니다.작업 조작 명령의 옵션 지정은 좀 복잡합니다. 매번 지정하는 것은 매우 번거롭기 때문에, 첫머리의 케이스 스크립트 주석부에는 일반적으로 파라미터를 설명하는 방법이 있습니다.
HPC 환경에서 프로그램을 실행하려면 프로그램 주체뿐만 아니라 일괄 처리 프로그램도 기술해야 한다.
하지만 국내 슈퍼컴퓨터가 민간에 개방되면 기본적으로 유상이고 이용 가능한 컴퓨팅 자원에도 한계가 있다.
따라서 숙련된 개발자가 슈퍼컴퓨터를 사용하지 않으면 여러 번 시도하고 반복해야 하지만 슈퍼컴퓨터는 사용자에게 결코 온화한 환경(하드웨어, 소프트웨어와 지원대의 냉도)이 아니다.비즈니스 클라우드와 같은 지원도 받지 않는 경우도 있다.
이렇게 되면 각자 자신의 환경에서 어느 정도 처리가 필요하지만 여러 개의 계산 노드를 준비한 테스트를 하려면 그에 상응하는 돈이 필요하다.
그러자 최근 몇 년 새 버전이 속속 등장해 느낌이 좋지 않은 래스퍼리 피3B+(1GB 메모리)를 여러 묶음으로 묶어 슈퍼컴퓨터로 만들었다.
구체적인 제작 방법(설치 절차)은 다음과 같은 GiitHub 창고로 요약되었으니 참고하시기 바랍니다.
로그인 노드/NFS 서버/NIS 마스터/Slurm 마스터/NTP 클라이언트
계산 노드/NFS 클라이언트/NIS 클라이언트/Slurm work/NTP 클라이언트
랩베리 Pi3B+/4에는 와이파이와 유선LAN 두 가지 NIC가 준비돼 있어 작업 수행과 HPC 환경 내 작업에서 유선 활용 시스템 LAN을 구축했다.NIS와 NFS 등의 프로토콜도 이쪽으로 통신을 했습니다.
또한 작업 투입과 OS와 파이썬 등의 포장 관리에서 와이파이를 통해 인터넷에 연결될 수 있도록 서비스 시스템인 LAN을 구성했다.
HPC 환경이므로 모든 노드에서 동일한 OS를 사용합니다.이번에는 랩베리 피 OS Buster Lite를 사용했다.
Raspberry PiOS는 이미 다음 버전이 있는데, 가져오기 시기의 최신 버전이 Buster이기 때문이다.
방금 소개한 GiitHub 창고의 설치 절차는 Buster 표준에 따릅니다.
Buster Python 3.7.x 계열이고 Bulseye는 Python 3.9입니다.x로 업데이트하는 등 간단하게 업그레이드할 수 없는 이유가 있습니다.
로그인 노드는 NFC 서버로 사용되며 모든 노드에서 다음 디렉토리를 공유합니다.따라서 시작할 때 먼저, 정지할 때, 마지막으로 로그인 노드를 닫아야 한다.
HPC 환경용 작업 관리 소프트웨어는 OSS의 Slurm Workload Manager를 사용합니다.
가장 번거로운 것은 실행 환경이다.최근 들어 OSS를 활용한 과학기술 컴퓨팅이 늘었지만, HPC 환경은 학자적 기질을 뒷받침하는 사람이 많아 부드럽게 대처하는 사람이 드물다.
따라서 일반 사용자의 홈 디렉터리에서 OSS 바이너리를 컴파일하고 설치하는 OSS 환경을 스스로 구축해야 한다.
OSS가 밝은 사람이라면 그렇게 고통스럽지 않을 수도 있지만 HPC 환경에서는 단독 공급업체가 제공하는 컴파일러를 많이 사용하고 병행 처리용 컴파일러의 옵션은 이른바 gcc 등에 비해 복잡하다.
이처럼 복잡한 HPC 개별 환경에 대응하는 컴파일링과 바이너리를 제공하기 위해 최근 Spack이 많이 사용되고 있다.
cd ${HOME}
git clone https://github.com/spack/spack
. ${HOME}/spack/share/spack/setup-env.sh
spack compilers
spack find
각 슈퍼컴퓨터 관리자들은 때때로 고유의 창고를 제공하는데, 이를 이용하여 spack에 복잡한 옵션을 지정할 수 있다.하지만 창고 정비를 제대로 하는 HPC 환경은 그리 많지 않다.결국 각자 창고를 키워야 한다.
그때는 스팩으로 쓰러뜨려야 돼.튜토리얼도 제공했지만 일본어 버전이 없어서 대충 번역했어요.스스로 창고를 세우고 싶은 사람은 우선 이 강좌를 모두 실행해야 한다.
사실 나 자신도 고장을 반복하고 있는데 OSS 환경의 구축은 항상 순조롭지 못하다.
Spack을 사용하면 appt/yum/pip의 소중함을 다시 알 수 있습니다.
다음은 참고로 제공할 뿐입니다.
Reference
이 문제에 관하여(HPC 환경에서 배치 작업을 위한 테스트 환경을 Raspberry Pi 클러스터로 생성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hara2dev/items/3dfc39918395ef410971텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)