저는 현재 하버드 부속 연구기관 중 하나인 BCH (Boston Children’s Hospital)의 연구 서버 (Researching computing) “E2“를 이용하여, WGS 분석을 진행하고 있습니다. E2는 대략 1000개 이상의 연산용 cpu를 가지고, BCH 소속 많은 연구실의 연구자들의 Bioinformatics 관련 분석을 처리해주는 서버입니다. Genome sequencing 관련 분석은 Target 또는 Exome sequencing과 다르게 그 엄청난 데이터 사이즈로 인하여, 연구용 서버를 이용하여 많은 수의 샘플을 처리하는데 많은 Computational Resource (=cpu&memory)를 요구하게 됩니다. 이번 포스팅에서는 추후 효율적인 연구용 서버의 활용에 참고하기 위해, 하버드 부속 연구 기관에서 다양한 Omics 관련 분석을 위한 연구용 서버를 어떻게 운영하는지에 대해서, 기록으로 남겨두고자 합니다.


연산 서버와 데이터 저장 서버
기본적으로 연산 서버와 데이터 저장 서버가 나뉘어져 있고, 연산용 CPU 서버는 중앙 관리자가 관리를 맡아서 연구자들이 공유하여 사용할 수 있도록 돕고 있다. 연구를 지원하는 연구 지원 파트에 서버 관리만 전담으로 하는 인력들이 존재한다. (이들의 역할이 서버 유지에 매우 중요함.) 반면, 데이터 저장 (Storage) 공간은 연구실별로 사용료를 지불하고 저장 공간을 구매해서 사용한다. 연산용 서버는 여러 연구실에서 기기를 기증을 받은 후에, 이들을 모두 묶어서 하나의 커다란 Cluster를 구축하였다. 기증자에게는 High Priority (우선권)를 주어 해당 서버에 작업을 던지는 경우, 다른 일반 사용자보다 먼저 작업이 돌아가도록 구축되어 있다. 이렇게 모든 Computational resource를 하나의 Cluster로 구축하면, 더 빠르고 집중적으로 자원을 배분하면서 사용할 수 있기 때문에, 효율적으로 서버를 사용하는데 유리하다. 서버의 연산 작업은 24시간 내내 돌아가는 것이 아니기 때문에, 컴퓨팅 파워를 집약적으로 사용하면서, 동시에 기증자에게는 Advantage를 주어, 운영에 적합한 정책으로 생각된다.
Software Package
기본적으로 서버에 설치되어 있는 프로그램들은 연구를 진행하면서, 흔하게 사용되는 tool들을 위주로 Biogrid라는 Package로 구성되어 있다. 이는 Harvard에서 BioGrids consortium을 구축하여 관리하고 있는데, 대략 300 여개의 Genomics and Bioinformatics toolsets을 포함하고 있다. 해당 패키지는 매일 업데이트 되고, 서버에서는 해당 패키지를 로딩하면 바로 쓸 수 있게 구성되어 있어서, 프로그램을 따로 설치할 필요가 없다. 역시나 BioGrids consortium에는 연구용 프로그램 패키지만을 지원하고 관리하는 인력이 따로 존재한다!
[Dependency 관련 문제] Biogrids 패키지에 속해있는 프로그램들의 경우는 따로 dependency를 고려하지 않아도 되나, 추가적인 프로그램들을 구동하는데 필요한 환경 (Dependency)을 구축할 경우, Docker 또는 Singularity와 같은 Container를 이용하여 Handling을 하도록 되어있다.
[관련 페이지] BioGrids Consortium : https://biogrids.org/
[관련 페이지] Singularity Documentation : https://sylabs.io/guides/2.6/user-guide/index.html
Job Scheduler: Slurm
연산 작업의 매니저로는 Slurm을 이용하여, 관리하고 있다. 모든 사용자들은 Slurm을 통해서만 작업을 제출할 수 있으며, 사용자 정책 (User Policy)을 따라서 사용하도록 교육을 받는다. 사용자에게 할당된 기본적인 디스크는 아래와 같다.

[관련 페이지] Slurm 관련 문서 보기 : https://slurm.schedmd.com/documentation.html
On Demand
추가적으로 E2는 Web-page를 통해 GUI 기반으로 서버에 접근할 수 있는 (Interactive Session) On Demand 서비스를 구축하고 있다. 특히, Jupyter-Notebook, Rstudio, MATLAB, IGV Browser와 같이 범용적이고 흔하게 쓰이는 프로그램의 경우에는, 사용자들이 바로 개인 노트북 등을 통해 서버에 접근하고 작업을 제출하는 용도로 널리 쓰이고 있다.