Boinc 설치라는 걸 검색해 보니, 한국어 결과는 오래되었거나 불친절한 결과밖에 없더라구요. 그래서 제가 쓰기로 했습니다. 뭔가 친절하게 알려 줘야지 자원 봉사에 참가 하던 말던 할테니깐요.
참고로, 이 글은 ‘FreeNAS 에 Boinc 설치하기‘ 를 많이 인용하였습니다.
준비물 : 인터넷이 연결된 윈도우가 설치된 컴퓨터
Boinc 의 구조
Boinc 은 과학 프로젝트를 위한 그리드 컴퓨팅 프로그램입니다. SETI 프로젝트로 유명하죠.
Boinc 의 시작은 SETI@home 으로 SETI 프로젝트에서 관측한 어마어마한 양의 데이터를 처리하기 버거워서 이를 자신들이 소유한 슈퍼컴퓨터가 아닌 수많은 자원봉사자들의 컴퓨터를 묶어서 분산 컴퓨팅을 하기 위해 개발되었습니다.
이후 이 분산 컴퓨팅 시스템을 활용하고 싶어하는 많은 학자들의 요구를 수용하고, 자원봉사자들의 참여도를 높이기 위해 Boinc 을 개발했고, Boinc 는 현재 수백만명의 참여자를 가지고 세계 슈퍼컴퓨터 순위 5위권 안에 드는 엄청난 계산 능력을 보여 주고 있습니다.
Boinc 의 작동 방식은 간단합니다.
- Boinc을 설치하고
- 컴퓨팅 환경 설정을 하고
- 참여하고 싶은 프로젝트에 가입한 다음
- Boinc 클라이언트에서 프로젝트를 추가하면
- Boinc 클라이언트에서 에서 설정한 대로 연산(태스크)을 수행합니다.
- 연산을 다 끝내면 연산 결과를 프로젝트 서버로 보내고
- 계산이 정상적으로 잘 되었을 경우 크래딧을 받습니다.
윈도우 버전이라고 다를 건 없습니다.
Boinc 다운로드
Boinc 는 boinc-client 와 virtual box 를 같이 다운로드 받는 것을 권장하고 있습니다. 그 이유는 다운로드 페이지에서도 나오듯이 해당 기능을 이용하는 프로젝트를 돌리기 위해서입니다. (예를 들어 LHC@Home 의 Theory Simulation 같은 걸 돌리기 위해서 virtual box 를 사용). 본 포스팅에서는 virtual box 도 함께 다운로드 받도록 하겠습니다.
Boinc 설치
다운로드 받은 설치 파일을 실행합니다.
Boinc 을 설치하기에 앞서 오라클 virtualbox 를 설치합니다. Install.
정말 설치하겠습니까? 예.
설치 중에 이러한 장치 소프트웨어 설치 문구가 나타나면 ‘설치‘를 눌러 주세요.
vitualbox 설치가 끝나면 boinc-client 설치 화면으로 자동으로 넘어갑니다.
Boinc 라이센스에 동의할 것이냐고 묻습니다. I accept the terms in the license agreement 를 눌러 동의를 하고, Next 를 눌러 다음으로.
설치할 위치를 묻는 것입니다. 기본값으로 설치하셔도 무방합니다. Next.
Install 을 누르면 설치가 시작됩니다.
가만히 놔 두시면 설치가 끝납니다. Finish.
Boinc Manager
Boinc 설치를 완료하면 자동 실행이 될 터인데, 그러면 이러한 화면이 나타날 것입니다.
이 화면은 Boincmgr 의 화면입니다. Boincmgr 은 Boinc-client 를 컨트롤 하기 위한 프로그램입니다. boinccmd 와 같은 기능을 하는데 GUI 라는게 차이점이죠. 현재 ‘간단히 보기‘ 모드입니다.
그리고 곧바로 프로젝트 추가 화면이 나타나는데, ‘취소‘ 를 눌러 일단 닫아 줍니다. 프로젝트를 추가하기 전에 환경 설정부터 하는 것이 좋습니다.
고급 보기 모드로 전환
처음 실행했을 때는 ‘간단히 보기’ 모드가 기본입니다. 전체 기능을 보고 설정하기 위해서는 ‘고급 보기‘ 모드로 들어가야 합니다.
상단 메뉴의 보기 를 선택한 후 고급 보기를 선택해 줍니다.
짜잔. 덜 예쁘고 좀더 전문가틱한 화면으로 전환되었습니다.
공지 사항 : 프로젝트에서 보내 주는 다양한 공지 사항이 여기에 표시됩니다. 공지 사항은 여러 가지 행사나, 서버 점검과 같은 알림, 현재 프로젝트의 성과 부터 시작해서 현재 이 컴퓨터에서 프로젝트를 실행하는데 생기는 문제 등(예를 들어 virtualbox 가 없다던가 하는) 도 표시됩니다.
프로젝트 : 현재 이 컴퓨터에 추가한 프로젝트의 목록을 보여주고 프로젝트를 설정할 수 있습니다.
태스크 : 현재 이 컴퓨터에 존재하는 태스크의 목록을 표시합니다.
전송 : 리포트나 태스크의 전송 상태를 표시합니다.
통계 : 자신이 현재 받은 크래딧의 양을 표시합니다.
디스크 : 디스크 사용량을 표시합니다.
환경 설정
연산 환경 설정
상단 메뉴의 ‘선택 사항‘ 의 ‘연산 환경 설정‘ 을 눌러 환경 설정을 합니다.
다른 설정은 원하시는 대로 해 주시고,
받아 오는 작업량은 0.2일치 작업량, 추가적으로 유지할 작업은 0.3일치 작업량 정도로 해 주세요. 왜 이렇게 작게 하냐면, 컴퓨터 하루종일 켜 놓을 거 아니니깐 너무 많이 받아오면 받아 온 태스크를 기간 내에 다 끝내지 못하는 상황이 될 수도 있거든요.
네트워크 사용량 제한은 할 필요가 없습니다. 사용하는 트래픽이 대단히 낮거든요. 여러분이 오지에 살아서 인터넷 속도가 극단적으로 느리다던가, 전화선을 통해 인터넷을 한다던가 하는게 아니면 제한을 하실 필요가 없습니다.
기타 란의 체크 박스 3개도 다 해제해 주세요. 특별한 환경이 아니면 필요치 않은 설정입니다.
디스크 옵션에서 최대 사용 한도 정도만 설정해 주세요. 한 20Gb 정도 주면 충분하고도 남습니다. 사실, 10Gb 도 안 씁니다. 아니, 2년동안 굴리면서 사용량이 7Gb 를 넘는 것을 못봤습니다.
메모리랑 페이지 파일 설정은 자신의 환경에 맞게 적당히 제한해 주세요.
일시중지 되는 동안 비 GPU 태스크를 메모리에 남겨두기 옵션을 체크 하시면 프로젝트가 일시 정지 되었을 때 메모리에서 내려가지 않고 남아 있습니다. 필자는 체크 하는 걸 추천합니다. 자주 일시 정지 되는데 그때마다 내려가서 디스크에 저장된 부분부터 재시작하니 비효율적이더라구요.
날자별 스케줄은 원하시는 대로 해 주세요.
GPU 사용 제한
Boinc 의 몇몇 프로젝트는 GPU를 이용해 더 빠르게 계산할 수 있습니다. 그런데 문제가 있는 것이, CPU는 사용량을 제한할 수 있지만, GPU는 그런 걸 할 방법이 없습니다. GPU 연산을 했다 하면 GPU를 100% 사용합니다. 그래서 컴퓨터를 사용하지 않을 때만 GPU를 사용하는 옵션이 있는 것이구요.
그런데 이게 좀 거슬릴 수도 있습니다. 아예 GPU 사용을 꺼 버릴 수는 없을까요?
또는, 인텔 내장 그래픽과 AMD나 NVIDIA 의 외장 그래픽을 같이 사용할 때, 인텔 내장 그래픽만 사용하게 할 방법은 없을까요?
있습니다. 환경 설정 파일을 작성하면 됩니다.
cc_config.xml 수정
Boinc 데이터 위치로 이동합니다. 기본 설정으로 설치하였다면 C\ProgramData\BOINC\ 가 Boinc 데이터 저장 위치일 것입니다.
해당 위치에서 cc_config.xml 파일을 생성하고 수정합니다.
<no_gpus>1</no_gpus>
GPU 무시 여부 설정입니다. 1(True) 면 모든 GPU 를 사용하지 않습니다.
<ignore_nvidia_dev>N</ignore_nvidia_dev>
N 번째 Nvidia GPU를 사용하지 않는 설정입니다. 여러 개의 GPU를 무시할 수도 있습니다. 0부터 시작합니다.
<ignore_intel_dev>N</ignore_intel_dev>
N번째 인텔 GPU를 사용하지 않느 설정입니다. 위와 같습니다.
<ignore_ati_dev>N</ignore_ati_dev>
N번째 암드 GPU를 사용하지 않느 설정입니다. 위와 같습니다.
아래는 설정 예시입니다.
<cc_config> <options> <no_gpus>0</no_gpus> <ignore_nvidia_dev>0</ignore_nvidia_dev> </options> </cc_config>
위 설정에 따르면, GPU를 사용하되, 0번째 Nvidia GPU는 사용하지 않습니다.
cc_config.xml 파일을 저장해줍니다.
Boinc 재시작
Boinc manager 의 상단 메뉴에서 BOINC 종료
‘BOINC Manager 가 종료될 시 실행 중인 태스크 정지‘ 체크해 주세요. 체크 안하시면 백그라운드에서 계속 돌아갑니다.
종료가 되면 Boinc Manager 을 다시 실행해 주세요. Boinc Manager 가 실행되면서 Boinc Client 도 함께 실행됩니다.
만약 공지 사항에 cc_config 관련 오류 메세지가 출력되었다면 무언가 잘못 설정한 것입니다.
프로젝트 추가
프로젝트 추가하기 전에 CPU 벤치마크 실행 부터 눌러 주세요. 아마 아무런 반응이 없을 것입니다. 정상입니다. 그 다음 프로젝트 추가를 눌러 주세요.
처음 본 화면이 다시 나타났습니다. 원하시는 프로젝트를 골라 다음 을 눌러 진행하시거나, Science United 와 같은 프로젝트 리스트에 표시되지 않는 프로젝트라면 프로젝트 URL 을 입력해 진행해 주세요.
SETI 프로젝트를 추가한다고 가정해 보겠습니다.
프로젝트는 크게 2가지 유형이 있습니다.
하나는 SETI 나 Rosetta 같은 매니저 프로그램에서 가입이 가능한 프로젝트이고,
다른 하나는 World Community Grid 같은 프로젝트 홈페이지에서 가입해야 하는 프로젝트입니다.
SETI 같은 매니저 프로그램에서 가입이 가능한 프로젝트의 경우
‘아니오, 새로운 사용자입니다.‘ 를 선택하시면 이메일과 비밀번호를 입력해 간단히 회원가입이 가능합니다.
WCG 같은 경우 해당 프로젝트 홈페이지에서 간단하게 가입할 수 있습니다.
FreeNAS에 Boinc 설치하기 – 프로젝트 가입하기
이미 프로젝트에 가입 하신 경우 ‘예, 기존 사용자입니다‘ 를 선택해 프로젝트를 추가할 수 있습니다. WCG 같은 경우 기존 사용자 메뉴만 나타납니다.
올바르게 가입/추가 하였다면 위와 같은 메세지가 나타납니다.
태스크 메뉴에 태스크가 실행되고 있는 것도 알 수 있습니다.
원격 컨트롤
boincmgr 이나 boinccmd 는 다른 시스템의 boinc 를 원격 조종할 수 있습니다. 로컬에서 돌아가는 경우도 localhost 주소를 통해 boinc-client 와 통신을 하고 있는 것이지요.
그래서 다른 컴퓨터에서 실행중인 boinc-client 가 있다면 접속이 가능합니다.
새 BOINC Manager 창 을 선택하면 새로운 Boinc Manager 창이 나타나고
위와 같이 호스트 이름과 암호를 묻는 창이 나타납니다. IP 또는 도매인과 GUI_RPC 암호를 입력해 접속할 수 있습니다.
로컬과 완전히 동일한 방법으로 컨트롤 할 수 있습니다.
포트
Boinc 는 RPC 통신을 위해 31416 포트로 TCP 통신을 합니다.
만약에 로컬 네트워크가 아닌 다른 곳에서도 Boinc 클라이언트를 컨트롤하고자 한다면 해당 포트를 열어야 합니다.