MyQueue: HPC 작업 관리를 위한 명령줄 및 Python 프론트 엔드
MyQueue는 명령줄 도구와 Python API를 통해 계산 작업을 제출하고 모니터링하며, 타임아웃 및 메모리 부족 실패에 대한 자동 재시작을 처리합니다. J. J. Mortensen과 MyQueue 개발 팀에 의해 유틸리티 도구를 위해 만들어진 이 도구는 SLURM, PBS 및 LSF와의 상호 작용을 통합하고, SQLite로 작업을 지속적으로 추적하며, 폴더 기반 워크플로우와 Python 가상 환경을 지원합니다. 이 도구는 많은 클러스터 또는 로컬 작업을 실행하고 자동 재제출 및 간단한 추적이 필요한 연구자 및 엔지니어를 대상으로 합니다.
MyQueue는 실제로 무엇을 하나요?
MyQueue는 HPC 스케줄러의 프론트엔드 역할을 하며, mq submit 명령어 또는 Python API를 통해 제출을 받고, 로컬 작업 추적을 원격 스케줄러와 동기화합니다. 완료된 작업, 실패한 작업 및 실행 중인 작업을 폴더 기반 SQLite 저장소에 기록하며, SLURM, PBS 또는 LSF를 사용하는 로컬 머신이나 원격 클러스터에서 작동할 수 있습니다. 입력은 작업 스크립트 또는 Python 작업이며, 출력은 mq list를 통해 볼 수 있는 큐 상태입니다.
실패한 작업에 대한 자동 재제출은 얼마나 신뢰할 수 있나요?
앱은 시간 제한이나 메모리 고갈로 실패한 작업을 자동으로 재시작하며, 제공된 논리에 따라 재시도 시 자원을 조정합니다. 이러한 동작은 특정 실패 신호 후 요청된 자원을 증가시켜 수동 재시도를 줄입니다. 지속적인 추적은 이전 시도를 보존하므로 재제출을 수락하기 전에 실패 이력을 검사할 수 있습니다. 재제출 논리는 임의의 실패가 아닌 자원 관련 오류를 목표로 합니다.
생산 클러스터에서 사용하는 것이 안전한가요?
MyQueue는 별도의 데이터베이스나 관리자 권한을 요구하지 않으며, SQLite와 폴더로 상태를 로컬에 저장하여 작업을 투명하게 유지합니다. 스케줄러의 네이티브 명령어를 사용하여 스케줄러와 상호작용하므로 작업 제출 및 취소에 대한 스케줄러의 권한 모델에 의존합니다. 이 도구의 설계는 숨겨진 시스템 서비스를 작성하는 것을 피하며, 사용자 환경에서 작동하고 작업 기록을 작업 폴더에 보존합니다.
이를 실행하려면 기술 지식이 필요한가요?
설치에는 Python 환경(Python 3.9 이상)과 pip 설치가 필요하며, 운영은 명령줄 명령어 또는 제공된 API를 사용합니다. 작업 스크립트나 가상 환경에 익숙하지 않은 일반 사용자는 워크플로우가 스케줄러 작업 설명 및 환경 활성화를 기대하기 때문에 학습 곡선에 직면할 것입니다. 이미 작업 스크립트와 가상 환경을 준비하는 연구자와 데이터 엔지니어는 기존 관행과 일치한다고 느낄 것입니다.
누가 MyQueue를 채택해야 하며 그 이유
MyQueue는 많은 클러스터 또는 로컬 작업을 제출하고 자원 관련 실패에 대한 자동 재제출을 원하는 연구자 및 엔지니어에게 적합합니다. 이는 작업 기록을 로컬 SQLite 지원 폴더에 유지하면서 수동 재시도 작업을 줄입니다. 명령줄 또는 스크립팅 워크플로우와 Python 및 가상 환경의 초기 설정이 필요합니다. 추천합니다.