클러스터 구성 질문입니다.
저는 통계를 공부하는 연구실에 있습니다.
조금 큰 데이터를 다루려고 하면 통계 패키지들은 걸핏하면 메모리 오버플로우가 일어나고 그나마 되는 것들은 시간이 오래걸리는 경우가 잦아서 그동안은 꼼짝못하고 기다려야 합니다.
그래서 얼마전부터 계속 생각 했던 것이 말로만 듣던 클러스터를 구성하면 얼마나 좋을까 싶어서 여기저기 검색을 해 보았는데요. 정해진 예산에서 대략 어떤 방식으로 구성하면 좋을지 여쭤보고자 글 올립니다.
저희가 주로 하는 계산은 주어진 데이터를 분석해서 통계적 모형을 작성하거나, 특정한 분포에 해당하는 데이터를 발생시켜서 다시 분석하는 것이 주입니다. 그러니까 컴퓨터 입장에서는 단순한 숫자계산이 대부분입니다.
S-plus와 R, SAS를 주로 이용합니다. Matrix계산도 많아서 MATLAB도 이용하구요.
저희가 필요한 정도는 데이터를 여러개로 쪼개서 데스크탑 여러대에 나눠돌리는 수고를 더는 계산속도가 빠른 전용 계산컴퓨터가 있었으면 하는 바람인데..
클러스터를 구성했을 경우에 속도가 빨라지는 것도 중요하지만 사실 기존의 데스크탑에서도 불가능한 작업은 아니기 때문에.. 그동안 저희가 작업하던 익숙한 환경에서 많이 벗어났을 경우, 프로그래밍 하고 계산하는 방법 배우다가는 볼 일 다 볼 수도 있다는 생각에 조금 망설여집니다.
그러면 이제부터 진짜 질문입니다^^;
1. S-plus와 MATLAB을 주로 활용하는데, S-plus는 R과 문법이나 라이브러리가 대부분 동일하여 리눅스 상에서 R을 이용하면 될 것 같고. MATLAB 역시 Octave같은 패키지를 이용하면 소프트웨어는 대체가 가능할 것 같습니다. 그런데 이것들이 클러스터계산에도 사용이 가능한지요?
패키지 자체에서 클러스터 컴퓨팅을 지원하는지.. 아니면 병렬프로그래밍을 할 적에 코드상에 R이나 Octave를 이용해서 Matrix계산이나 확률변수등을 생성하거나 함수를 이용할 수 있는지 궁금합니다^^;
2. 불가능 하다면..어떤 대체방안이 가능한지 궁금합니다.
C로 병렬프로그래밍을 해야만 클러스터를 활용할 수 있는건지..ㅠㅠ
3. 만일에 어떤 방식으로든 클러스터를 활용해서 저희가 원하는 환경에서 계산을 할 수 있다고 한다면 우선 생각 해본 것은..
리눅스 기반으로 diskless 클러스터를 구성해서 4대정도 붙이려고 합니다.
헤드노드를 제외하면 나머지는 CPU랑 메모리,네트웍만 있으면 되니까 비용이 절감될 것 같은데, 예산은 300만원정도 입니다.
기존 데스크탑대비 4~5배 성능만 나온다면 좋겠습니다.
활용가능한 방안에 대해서와.. 위처럼 노드에 디스크 없이 4대를 구성했을 때 현재 상황에 비해 실질적인 개선효과가 있을지가 참 궁금합니다.
댓글 달기