blogging

스케줄러 - 기본으로 돌아가기

hongiiv 2008. 7. 4. 21:09
반응형
퇴근 시간을 5분 남겨 놓고 요상한 논문 하나를 소개? 받았다. "Application of the Linux cluster for exhaustive window haplotype analysis using the FBAT and Unphased programs" 라는 다소 장문의 제목을 가진 논문이었다.

대량으로 쏟아지는 생물학 데이터를 이용한 연구에서 고성능 컴퓨팅 파워의 필요성은 누구나다 인지하고 있는 주요 관심사이다. 저자는 불행히도 생물학 통계 패키지(소프트웨어)들이 대부분 병렬화 되어 있지 않고 또한 병렬화 하더라도 새로운 코드를 신뢰할 테스트도 필요할 뿐더러, 병렬화가 누구네 집 똥개 이름도 아니기에, 이를 우회하여 고성능의 컴퓨팅 파워를 얻기 위해 리눅스 클러스터에서 큐잉 시스템을을 이용하여 job을 처리했다는 내용이다.

그러기 위해 Rocks Cluster(HPC를 구성하기 위한 리눅스 배포판으로 주요 산을 배포판 이름으로 사용하는데,,, 한라산 배포판도 있었다.)를 이용하여 싼(펜티엄 4) 22노드 클러스터를 구축하고 여기에 SGE(Sun Grid Engine) 스케줄러를 설치하고 스케줄러의 옵션과 명령(max_aj_jobs, qconf -mconf)과 Ruby 스크립트를 통해 job을 효과적으로 분배 수행했다는 논문이다.

뭐 전혀 새로울것도 없고, 다들 그렇게 사용하고 있는 것인데...??? 새삼 뭐 impact factor도 좋은 BMC Bioinformatics에 떡하니 실리다니,,, 라는 생각이 들던 찰나 너는 그러면 serial한 job을 스케줄러와 약간의 스크립트를 통해서 효과적으로 분배 계산 했더냐?? 라는 질문에 언뜻 라고 대답할 수가 없었다.

그동안 MPI니 Hadoop이니 고급스런(??) 것들만 쫒아서 지금까지 탄탄하게 돌아가는 serial 한 프로그램과 스케줄러를 등한시 했던게 사실이었다. 진정한 일꾼들은 이렇게 작은 것들에서 성능향상을 얻고 좋아하고 논문에도 싣는 형편이거늘 넌 그동안 무엇을 향해 달려 왔느냐? 라는 생각이 들었다.

논문을 보면 Unphased 프로그램을 펜티엄에 맞게 -march=pentium4 -O2 옵션을 써서 CPU 스페시픽하게 컴파일 했다고 자랑스럽게 말하면서 자기네들 처럼 작은 그룹에서 할 수 있는 HPC 를 구성해서 잘 사용한다고 자랑스럽게 말하는 부분에서 그만 눈시울이 붉어졌다. 이처럼 serial program + 스케줄러의 옵션, 설정 + 간단한 스크립트를 통해 생산성?을 향상 시키는데 좀 힘을 기울여야겠다.

예전에 표준과학연구소의 이인호 박사님이 물리학자를 위한 Python이라는 글에서 PBS(OpenPBSTorque를 많이 쓴다.) 스케줄러와 Python을 이용해서 이러한 작업들을 할 수 있는 유용한 팁들을 올려 주신것이 있다. 바로 이 글이 이 논문의 형님뻘 정도 되지 않을까 싶다.

기본부터 다시 충실하게 다지고, 사람들에게 알리는 것 또한 지금 이시점에서 필요하지 않을까 싶다. 식사를 항상 레스토랑에 가서 먹을 수는 없듯이 어느 한가지 방법이 모든 문제의 해결을 주진 않는다. 뭐 하나 등한시 할 것 없이 골고루 제대로 먹어야 하지 않을까?

이제 저는 밥 먹으로 갑니다. 골고루,,, 어느 하나에 치우치지 않게,,, ^^;;

반응형