여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

오피스 업무, 개발 업무, 디자인 업무 등 다양한 분야에서의 리눅스 활용과 방법을 서로 이야기하고 질의하고 토의하는 곳

Moderator: Dry8r3aD

utnic
Posts: 5
Joined: 2009/12/02 Wed 11:33 am

여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by utnic » 2010/02/02 Tue 2:19 pm

통신공학을 하고 있는 대학원 박사 과정입니다..

요즘 리눅스의 매력에 폭 빠져 있는중 입니다...

통신공학을 주로 시뮬레이션 할 때 보통 몬테카를로 시뮬레이션이라는 것을 하는데 이것은 발생할 수 있는 상황을 수십번이고 수백번이고 많은 시뮬레이션을 거쳐서

결과를 뽑아내는 방식이라고 쉽게 설명 할 수 있겠습니다.. 문제는 많은 시뮬레이션을 통해서 하나의 결과를 도출 해 내기때문에 시뮬레이션 시간이 굉장히 많이 걸린다는 것이 단점입니다.

어떤 경우에는 며칠씩 결과 하나를 보고자 며칠씩 시뮬레이션만 돌리는 일도 비일비재하죠... 그런데 만약 이 결과가 타당한 결과가 나오면 그래도 다행이지만 시뮬레이션이 잘못되서

엉뚱한 결과가 나올 때는 하늘이 무너지는듯... 그래서 이 시뮬레이션 속도를 빠르게 할 수 있게 (물론 시뮬레이션 코드가 최적화 되어야 겠지만...) 할 방법을 찾아 보던중...

PC 몇대를 네트워크로 묶어서 분산 처리 하는 방법이 있다고 하더군요.....

그래서 연구실에 있는 xeon급(Dual) 서버 몇대를 네트워크로 묶어서 분산처리 하는 방법으로 한번 해보려고 하는데 이건 어디서 조언을 구하기도 참 애매하군요....

저한테 힌트를 준 그분도 리눅스와 GCC를 사용하여 그리 사용한다고 하긴하더만 알려 달라니 잠적....(연락도 안받고...ㅠㅠ)

혹 이렇게 구축해서 사용해 보신분 있으면 조언좀 부탁합니다...

번거로우시다면 책이나 자료라도 추천을 좀 해주시면 감사하겠습니다...

esrevinu
Posts: 267
Joined: 2008/07/14 Mon 2:37 am

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by esrevinu » 2010/02/02 Tue 2:44 pm

잘 모르지만... 컴퓨터 노드들을 이더넷이나 인피니밴드 등으로 묶고 MPI 라고 하는 방법으로 병렬처리합니다.
병렬화해서 프로그래밍을 해야 합니다. MPI에 대한 것은
http://www.redbooks.ibm.com/abstracts/sg245380.html
에 잘 나와 있다고 하더라고요.
MPI의 구현들, MPICH, LAM/MPI 등등이 있는데요 이것에 대해서도 알아 보셔야 할 것 같고요,
클러스터 구성하는 방법도 알아 보셔야 하겠죠.

User avatar
pcandme
Posts: 2919
Joined: 2008/04/27 Sun 12:06 am
Contact:

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by pcandme » 2010/02/02 Tue 2:46 pm

기왕에 우분투 포럼에 오셨으니 우분투 위주로 말씀을 드리자면, 우분투와 같은 데비안 계열 리눅스 배포판에서는 베오울프 방식의 클러스터 컴퓨팅 시스템을 비교적 손쉽게 구축할 수 있습니다.

이를 이용하는 가장 보편화된 방식은 MPI(Message Passing Interface)를 이용하는 것입니다. 구글링 해보니 말씀하신 몬테카를로 시뮬레이터의 병렬 실행에 관해 많은 글들이 나오네요.

일단 '베오울프 클러스터' 혹은 'beowulf cluster' 등의 검색해서 구글링을 좀 해보셔야 할 듯 합니다.

또한 이 곳의 포럼지기이신 abron님께서 클러스터 구축에 관한 노하우가 많으신 것 같으니, 그 분께 여쭈어 보아도 좋을 듯 합니다.

간략하게나마 도움 되시라고 댓글 답니다.

그럼 이만.

esrevinu
Posts: 267
Joined: 2008/07/14 Mon 2:37 am

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by esrevinu » 2010/02/02 Tue 3:03 pm

MPI 말고 GPGPU는 어떠신지요? 물론 MPI와 GPGPU를 섞어서 쓸 수도 있습니다.
GPGPU는 GPU(그래픽 카드에 달린 프로세서)를 계산에 이용하는 겁니다.
유명한 게 CUDA가 있고 OpenCL 이라고 하는 표준도 있습니다.
성능 좋은 그래픽 카드 하나나 둘 이상을 데스크탑 컴퓨터에 달아서 노드 수십대의
클러스터의 성능을 낼 수도 있다고 합니다. 저렴하고 강력하기 때문에 요즘 뜨고 있습니다.

http://www.nvidia.co.kr/object/cuda_home_kr.html

abron
Posts: 113
Joined: 2009/07/12 Sun 7:10 pm
Location: 서울 상계동 근처

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by abron » 2010/02/02 Tue 7:41 pm

abron 입니다.

말씀 하신대로... 여러 자원을 하나로 묶어 계산을 할 수 있는 방법중 하나가 베어울프프로젝트에서 시작이 된 클러스터링 기법이 있습니다.

아래 사진은 최근 제가 구축을 한 클러스터의 한 예입니다. 총 32노드 256core CPU 입니다.

[attachment=0:1ynyj917]
screenshot61.png
screenshot61.png (158.35 KiB) Viewed 9148 times
[/attachment:1ynyj917]

단. 이 기법을 사용 하시기 위해서는 MPI 또는 PVM과 같은 병렬 프로그래밍을 하셔야 됩니다.

이에, 사용하시는 프로그램이 병렬 환경을 지원 하는지와, 혹시 소스로 사용 하실 경우는 별도로 병렬 프로그램밍을 하셔야 됩니다.

다행이도.... 지금 사용하시는 몬테카롤로스 코드는 클러스터에 바로 사용을 할 수 있도록 병렬 프로그램밍이 되어 있습니다.


참고를 하시라고, 클러스터 메뉴얼을 첨부 합니다.

상세한 자료가 필요하시면, 쪽지 부탁 드립니다.

2월 오프라인 모임시 "우분투 - 모이면 강해진다 : 리눅스 클러스터 구축 방법법" 라는 주제로 한번 세미나 할까요?
Attachments
teracluster_wccs.pdf
(4.25 MiB) Downloaded 1117 times
슈퍼컴과 클러스터 그리고, 만화책을 사랑합니다.

한때는 물리학자였고
한때는 공학자 였고
지금은 일반인....
미래는...? 외게인?

User avatar
pcandme
Posts: 2919
Joined: 2008/04/27 Sun 12:06 am
Contact:

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by pcandme » 2010/02/02 Tue 11:09 pm

[quote="abron":1q2fcgwv]2월 오프라인 모임시 "우분투 - 모이면 강해진다 : 리눅스 클러스터 구축 방법법" 라는 주제로 한번 세미나 할까요?[/quote:1q2fcgwv]오호, 이거 제가 부탁드리고 싶은데요. ^^

[quote="esrevinu":1q2fcgwv]MPI 말고 GPGPU는 어떠신지요? 물론 MPI와 GPGPU를 섞어서 쓸 수도 있습니다.
GPGPU는 GPU(그래픽 카드에 달린 프로세서)를 계산에 이용하는 겁니다.
유명한 게 CUDA가 있고 OpenCL 이라고 하는 표준도 있습니다.
성능 좋은 그래픽 카드 하나나 둘 이상을 데스크탑 컴퓨터에 달아서 노드 수십대의
클러스터의 성능을 낼 수도 있다고 합니다. 저렴하고 강력하기 때문에 요즘 뜨고 있습니다.

http://www.nvidia.co.kr/object/cuda_home_kr.html[/quote:1q2fcgwv]저희 연구실에서도 최근에 꽤 비싼 GPU를 하나 질렀습니다. 이제 좀 가지고 놀아보려고 하는데, 성능이 기대 되는군요. ㅎㅎㅎ.

utnic
Posts: 5
Joined: 2009/12/02 Wed 11:33 am

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by utnic » 2010/02/03 Wed 11:21 am

와... abron님 메뉴얼 이거 정말...

좋은 자료 감사합니다...

세미나도 진행해주시면... 이건 정말 무릎이라도 굻어야 할듯....굽신굽신...

dolhani
Posts: 4
Joined: 2011/03/23 Wed 11:31 am

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by dolhani » 2011/03/23 Wed 11:33 am

Grid를 사용하시면 많은 도움이 되실 것 입니다.

FKPPL VO
http://esgtech.springnote.com/pages/4262293
http://esgtech.springnote.com/pages/4262263

User avatar
nike984
Posts: 1067
Joined: 2008/04/21 Mon 9:02 am

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by nike984 » 2011/03/23 Wed 11:49 am

matlab 같은걸로 프로그램 짜시면
매틀랩이 좋은게 코어수만큼 프로세서 돌리실수 있어요
프로그램을 파라메타만 바꿔서 두개 동시에 돌리는게 된다는거죠 ㅎㅎㅎ
전 보통 터미널 두개 열어서 matlab -nodesktop해서 두개 동시에 돌립니다.
쿼드코어면 4개까지도 돌리겠는데 연구실 컴터가 듀얼코어밖에 없어서뤼 ㅠㅠ

mono
Posts: 44
Joined: 2010/05/10 Mon 6:33 pm

Re: 여러대의 컴퓨터의 리소스를 하나로 할수 있을까요??

Post by mono » 2011/04/17 Sun 11:00 pm

[quote="esrevinu":628ubwvc]MPI 말고 GPGPU는 어떠신지요? 물론 MPI와 GPGPU를 섞어서 쓸 수도 있습니다.
GPGPU는 GPU(그래픽 카드에 달린 프로세서)를 계산에 이용하는 겁니다.
유명한 게 CUDA가 있고 OpenCL 이라고 하는 표준도 있습니다.
성능 좋은 그래픽 카드 하나나 둘 이상을 데스크탑 컴퓨터에 달아서 노드 수십대의
클러스터의 성능을 낼 수도 있다고 합니다. 저렴하고 강력하기 때문에 요즘 뜨고 있습니다.

http://www.nvidia.co.kr/object/cuda_home_kr.html[/quote:628ubwvc]


CUDA를 활용한 MC에 대해서는 몇편 논문도 나와있고,
성과도 좋은편입니다.

보시고, GPU에 올릴만하다고 생각되시면 이쪽도 매우 괜찮습니다.
memory bandwidth만 신경써서 코딩하시면 충분한 성능 얻으실 수 있을겁니다.

Post Reply