Bioblogs

바이오인포매틱스와 슈퍼 컴퓨팅 - 마음을 다스리는 글

hongiiv 2008. 3. 27. 18:54
반응형
바이오인포매틱스 분야에서도 많은 부분에서 컴퓨팅 파워를 필요로 하지만, 그 중에서도 대표적인 부분은 genome comparison과 alignment 일것이다. 이러한 대용량 컴퓨팅 파워에서 그래픽 카드의 비약적인 발전으로 GPU의 그래픽 이외의 계산에 응용되기 시작했다. 그런데 여기서 한가지 짚고 넘어가야 할 것이 있다.

슈퍼컴퓨팅 분야에서 클러스터를 이용한 방법은 비교적 값싼 하드웨어를 통해서 높은 성능을 얻을 수 있다는 장점으로 많이 사용되고 있다. 그러나 각 컴퓨터에 분산된 메모리에 접근해서 사용하기 위해서는 MPI와 같은 라이브러리를 이용해서 병렬 프로그래밍을 해야만 한다. 그래야 분산된 메모리를 마치 하나의 메모리처럼 사용하여 프로그래밍을 할 수 있다. 마찬가지로 GPU의 성능이 아무리 뛰어나더라도 좀 더 좋은 성능을 얻기 위해서는 GPU를 장착한 컴퓨터들을 클러스터링 하는 방법이 사용되어져야 한다는 것이다.

따라서 프로그래머는 GPU의 병렬 프로그래밍 + MPI 병렬 프로그래밍의 이중적인 작업을 해야한다는 것이다. 이건 가뜩이나 MPI 프로그래밍을 통한 병렬화도 버거운 상황에서 GPU 병렬화 프로그래밍까지 섭렵해야 한다는 것이다. 이 둘을 적절하게 병렬화 한다는 것은 그리 쉽지만은 않을 것이다.

국내의 바이오인포매틱스를 연구하는 곳에서 이러한 고급의 병렬 프로그래밍을 통해 알고리즘을 만들어 구현해서 사용할 곳이 얼마나 있을까? 논문을 보더라도 바이오인포매틱스 분야에서 병렬화나 고속화에 관련한 국내의 논문들이 거의 전무한것에 반해 외국에서는 이러한 연구가 꾸준히 지속되고 있다는점은 참 부러운 일이다.

그렇다고 가만히 있을 수 만은 없지 않은가? 여기에서 GPU의 여러가지 자료를 분석해서 얼마나 우리에게 유용할지에 대한 해답을 한번 찾아 보려고 한다. 먼저 GPU와 CPU의 성능을 비교한 자료이다.

CPU vs. GPU
GPU vs. CPU(좀 오래된 2007년이 빠진,,, 출처 http://www.cs.uaf.edu/2007/fall/cs441/proj1notes/favier/)

대략 GPU는 200~400Gflops의 성능을 내고있다.(언뜻 보니까 1TFlops의 GPU 이야기도 나오던데,,뭐~) 이것은 이론성능일 테고 실제 성능은 이론성능의 약 50%정도 낸다고 가정하면(너무 많은가 ^^)  GPU 한개 즉 그래픽 카드 한개가 약 150Gflops의 성능을 낼 수 있는 것이다. 이것은 우리 센터의 94노드 클러스터가 612Gflops를 내는 것에 비하면 그래픽 카드 약 5개면 즉 PC 5대면 많아야 10대 정도면(노드간의 통신 지연, 네트워크 지연 등등을 고려한다면) 즉, 천만원 정도면(서버 한대값 정도도 안되는 가격으로) 엄청 비싸게 구축한 우리 센터의 94노드 클러스터와 맞먹게 된다는 소리가 된다.

물론 이것저것 고려해야 할 것들이 많이 있겠지만, 단순하게 생각해 본다면 말이다 ^^;; 물론 앞서서 언급한 병렬 프로그램이 지원해줘야 하는것이지만,, 가격이 싸진다면야 많은 활용이 가능해 지고, 그에 따라 많은 인력들과 응용들이 지속적으로 생겨나고, 이것에 흥미를 가지는 사람들도 많아지고 그러겠지....그러면 당연히 바이오인포매틱스 관련 슈퍼컴퓨팅 분야에서 우리나라의 입지가 점차 좋아지겠지. ^^

그나저나 GPU의 병렬 프로그래밍 + MPI 프로그래밍의 이중적인 작업이 GPU 기반 클러스터에서 사용되야 하는거 맞는거죠?? 맞는건가??


반응형