Bioblogs

대용량 컴퓨팅 환경과 Genome Browser

hongiiv 2008. 2. 26. 14:08
반응형
바로 이전 글에서 대용량 컴퓨팅 즉 클러스터 컴퓨팅환경을 Yaohoo와 Google에서 연구자들에게 제공한다고 했었다. 대용량 컴퓨팅환경, 좀 더 세분화한다면 여러대의 컴퓨터를 묶어서 사용하는 클러스터 환경과 Bioinformatics 연구를 한번 짚고 넘어가 보려고 한다.

클러스터 컴퓨팅환경을 사용하는 가장 일반적인 예는 바로 처리하고자 하는 일을 나누어서 하는 것이 가장 손쉬운 클러스터 컴퓨터를 이용하는 방법이다. 24개의 chromosome에 대응하는 어떠한 데이터가 있다고 가정할 때 한 대의 컴퓨터로 24개의 chromosome 데이터를 처리할때에 24시간의 시간이 걸린다고 한다면 24대의 컴퓨터에 이러한 작업(job)을 분배한다면 1시간에 끝마칠 수 있다. 바로 linear하게 속도를 향상 시킬 수 있는 가장 빠르고 손쉬운 클러스터 사용법이 되겠다. 이러한 작업을 수행할때 현재 작업을 수행하고 있지 않은 클러스터 상에서의 컴퓨터를 골라서 작업을 알아서 맡기고 맡긴 작업이 끝났는지 확인하고 이를 수집하는 역할을 하는 소프트웨어가 필요로 하는데, 일반적으로 pbs, torque, loadleveler와 같은 batch system(queue manager)가 이러한 작업을 수행한다. 따라서 사용자들은 손쉽게(일일이 24개의 컴퓨터에 로그인해서 명령을 입력할 필요없이) 작업을 분배하고 이를 취합할 수 있다.

두번째 방법은 mpi와 같은 표준의 병렬 프로그래밍 언어로 작성된 프로그램을 수행하는 방법이다. 이미 많은 어플리케이션(blast를 비롯해서)이 병렬화 되어 있다. 위의 예처럼 작게 나눌 수 없는 작업의 경우 사용할 수 있지만, 속도는 곱배기로 향상되지는 않는다. (컴퓨터간에 주고 받는 메세지에 따른 네트워크 속도 감소 및 기타 여러가지 영향으로...)

마지막으로는 분산 병렬 시스템의 운용을 지원해 주는 Map-Rduce나 Hadoop을 이용하는 방법이 있지만, 여기서는 제 지식이 너무 열악하기 때문에 ^^;;

그외에도 Bioinformatics에서의 대용량 데이터를 위한 분산 파일 시스템도 고려해야 하지만, 이것 pass,,,

분명한 문제는 아직 이러한 것들이 아직까지는 일반적인 환경이 아니기 때문에 윈도우즈의 메모장처럼 손쉽게 사용할 수는 없다. 하지만, 이미 외국 사례에서 보듯 분명 우리나라에서도 많은 지원으로 Bioinformatics에서도 이러한 환경을 기반으로 하는 많은 프로젝트나 어플리케이션, 개발사례가 나올것이다. 또한 이제 Bioinformatics 교육 과정에서도 손쉽게 볼 수 있을 날이 얼마 남지 않았다고 확신한다. (참고로, 옛날 포스팅에서 언급한 한재선박사님이 국내의 불모지와 같은 이러한 돈 안되는 시스템소프트웨어 부분에서 열심히 일하고 계시기 때문에 꼭 가능하리라 본다.)

이제 본론으로 돌와아서 지금 수행하고 있는 Genome Brower 프로젝트(물론 개인적으로 지극히 개인적으로 진행하고 있는 ^^)에서도 대용량의 데이터를 사용해야 한다. chromosome 정보를 Google Map 보여주기 위해서 1번 chromosome만 하더라도 줌레벨 16에서 256x256px 그림 조각이 약 40,000개가 필요로 한다. 그외의 15,14,13 줌레벨의 그림 조각도 각각 9,765, 2,441, 610개가 필요하고 총 chromosome 1번을 위해서 총 약 5만개의 그림 조각을 생성해야 한다. 이것을 총 24개의 chromosome으로 계산하면 약 1,200,000개의 그림을 필요로 한다.(물론 1번 chromosome이 제일 크니깐 이 계산은 맞지 않습니다 ^^, (여기에다가 추후 여러가지 정보를 추가한 레이어를 더 추가한다면 그림의 갯수는 더 늘어나겠죠^^)

이러한 작업을 한대의 컴퓨터에서 한다면 그시간은 무시 못하겠죠, 그럼 대안은 위의 클러스터 환경을 사용하는 것인데,, 어떻게 클러스터를 사용할 것인가의 첫번째 언급한 내용의 job 분배 방식을 사용하면 손 쉬울 겁니다. 다음 포스팅에서는 어떻게 이러한 대용량의 작업을 클러스터에서 어떠한 방식으로 처리하는지 좀 더 자세하게 기술해 보겠습니다. 물론 저도 좀더 생각을 해봐야할 시간도 필요하고요 ^^;;

제목은 거창했는데 별 내용은 없네요 ^^;; 참 지금 Genome Brower는 각 그래픽 요소를 컴포넌트로 만들고 데이터베이스에서 정보를 읽어와 panel상 배치한 후 각 줌 레벨별로 만드는 것까지 끝난 상태입니다. 이제 남은 부분은 실제 각 chromosome별로 클러스터를 사용하여 이미지를 만들고, Genome Browser상의 그래픽 요소를 클릭했을 경우 해당 정보를 좀더 자세하게 보여주는 부분만 해결하면 되겠군요. 진행사항이 궁금하시면 결과물은(계속 바뀌고 있습니다만,,,) http://www.hongiiv.com/snpview/snpview.html를 보시면 됩니다.



반응형