본문 바로가기
Bioblogs

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

by hongiiv 2008. 3. 27.
반응형
바이오인포매틱스 분야에서도 많은 부분에서 컴퓨팅 파워를 필요로 하지만, 그 중에서도 대표적인 부분은 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 기반 클러스터에서 사용되야 하는거 맞는거죠?? 맞는건가??


반응형

댓글4

  • j....... 2008.04.10 20:30

    재미있는글 잘 읽었습니다. 감사합니다. ^^
    답글

    • hongiiv 2008.04.11 08:51

      재미있게 읽으셨다니 감사합니다 :) 별로 이런글이 인기가 없더라구요. 제 블로그에서 ㅋㅋㅋ

  • j....... 2008.04.11 11:08

    근데....맘이 다스려지는게 아니라 더 흥분이 되는건 무슨 이유일까요? ㅎㅎ 개인적으로 7300GT가 4장 꼽혀있어서 찾아봤는데, CUDA에서 지원을 안해주는군요. OpenGL로 접근을 하는게 정석일듯 하긴 한데.....그정도 할줄 알면 이거 안하고 엔디비아에 취직을 하는게 ㅋㅋ 혹시 좋은 팁 알고 계심 훈수 부탁드립니다..(__)
    답글

    • hongiiv 2008.04.11 14:58

      저도 CUDA를 이용해서 그래픽 작업이 아닌 다른 용도로 사용해 보고 싶은데,,, CUDA를 사용 가능한 그래픽 카드가 없네요 ㅠㅠ 그리고 개인적으로 OpenGL이나 다른 그래픽 라이브러리를 사용할 일이 없어서 뭐라 드릴 말씀이 없네요 ^^;; 나중에 CUDA가 가능하면 그때 많은 포스팅 할 예정입니다...