구글 같은 기업의 컴퓨팅 파워 확보 방식은 잘 알려져 있습니다. 바로 수많은 소형 컴퓨터를 묶어 슈퍼컴퓨터의 역할을 대신하게 하는 것이죠. 이 방식은 비용이 저렴하고, 장애에 강하며, 제대로 구축하면 사실상 무한히 확장할 수도 있습니다. 그렇다면 서로 직접 연결된 컴퓨터들에서 가능한 일이라면, 인터넷을 통해서도 불가능할 이유가 없지 않을까요?
BOINC(Berkeley Open Infrastructure for Network Computing)는 인터넷상에서 CPU 자원 공유를 조율하기 위해 설계된 소프트웨어 시스템입니다. BOINC 클라이언트 프로그램을 설치하면 사용하지 않는 프로세서 성능을 다양한 목적, 주로 비영리 프로젝트와 단체에 기부할 수 있습니다.
여기서 말하는 '사용하지 않는' 프로세서 자원이 정확히 무엇인지 짚고 넘어갈 필요가 있습니다. 놀라실 수도 있지만, 일반적인 가정용 컴퓨터의 CPU 성능 상당 부분은 그냥 낭비되고 있습니다. 예를 들어 웹 페이지를 열 때 컴퓨터는 해당 페이지를 불러오고 화면에 표시하는 작업을 처리하지만, 작업이 끝나면 프로세서는 다음 페이지를 로드할 때까지 그저 가만히 대기합니다. 우리가 늘 컴퓨터를 기다리는 것 같지만, 사실 컴퓨터도 수시로 우리를 기다리고 있는 셈입니다.
사용자가 아무 작업도 하지 않는 동안 CPU는 사실상 다음 명령을 기다리며 쉬고 있습니다. 이러한 유휴 시간을 활용해 컴퓨터에게 "놀고 있을 때는 특정 작업을 수행하되, 내가 실제로 할 일이 생기면 즉시 멈추라"라고 지시할 수 있습니다. 바로 이 지점에서 BOINC가 등장합니다. BOINC 클라이언트를 설치하면 남는 프로세서 자원을 어디에 사용할지 선택하게 되는데, 가장 유명한 BOINC 프로젝트는 단연 SETI@home입니다. 그 외에도 CPU 시간을 보낼 만한 프로젝트가 여럿 있으며, 대표적인 예는 다음과 같습니다.
- Hydrogen@Home – 수소 생산·저장 기술을 개선해 청정 에너지 기술 발전에 기여
- LHC@Home – 대형 강입자 충돌기(LHC)의 데이터 연산
- Cels@Home – 세포 부착 및 암 연구 데이터 분석
- Artificial Intelligence System – 뇌를 역설계해 대규모 인공지능 시스템 구축
이 밖에도 더 많은 프로젝트가 있으며, 전체 목록은 BOINC 공식 웹사이트에서 확인할 수 있습니다.
이 글에서는 우분투(Ubuntu) 리눅스에 BOINC 클라이언트를 설치하는 과정을 중점적으로 살펴보겠습니다. 참고로 BOINC 클라이언트는 리눅스, macOS(OSX), 윈도우(98/ME/2000/XP/Vista)용으로도 배포되고 있으니 다른 환경 사용자도 걱정할 필요가 없습니다.
BOINC 클라이언트 설치하기
먼저 이 컴퓨터를 BOINC 클러스터의 일원으로 만들기 위해 필요한 소프트웨어를 설치하겠습니다. 데비안/우분투에서는 apt-get, aptitude 또는 시냅틱(Synaptic) 패키지 관리자를 이용해 다음 두 패키지를 설치하면 됩니다.
- boinc-client
- boinc-manager
다른 운영체제용 설치 프로그램은 BOINC 공식 웹사이트에서 내려받을 수 있습니다.
설치가 끝나면 아래 명령으로 매니저 프로그램을 실행합니다.
boincmgr
그러면 다음과 비슷한 창이 나타납니다.

다음(Next) 버튼을 클릭하면 남는 CPU 자원을 어떤 프로젝트에 기부할지 선택하는 화면이 이어집니다.

마음에 드는 프로젝트를 고르면 됩니다. 다만 한 가지 참고할 점이 있습니다. 필자가 최근 LHC 프로젝트를 선택하려고 시도할 때마다 네트워크 오류가 발생했으므로, 이 글을 작성하는 시점 기준으로 LHC BOINC 프로젝트는 정상 작동하지 않는 것으로 보입니다.
BOINC를 처음 사용하는 사용자라면 다음 화면에서 이메일 주소와 비밀번호를 입력하면 됩니다. 입력을 마치면 선택한 프로젝트의 홈페이지로 안내되며, 사이트에 따라 거주 지역 등 몇 가지 정보를 추가로 물어볼 수도 있습니다. 프로젝트 웹사이트 이용은 대개 선택 사항이며, 자신의 통계, 즉 선택한 프로젝트에 얼마나 많은 연산을 기여했는지 확인하는 용도로 제공됩니다. 또한 프로젝트 웹사이트에서는 팀에 가입해 여러 사람이 통계를 합산해 다른 팀과 경쟁할 수도 있습니다.
BOINC 로그인 정보를 생성·입력하고 나면, BOINC 클라이언트가 자동으로 데이터를 내려받아 연산을 시작합니다.

여기까지 왔다면 모든 설정이 끝난 것입니다. 이제는 몇 분의 설정 시간과 평소 낭비되던 CPU 자원만으로 가치 있는 목표에 기여하고 있다는 뿌듯함을 누리면 됩니다. 어쩌면 외계 생명체를 최초로 발견하거나, 암 치료법을 찾아내거나, 빅뱅을 모델링하는 첫 번째 컴퓨터가 바로 여러분의 가정용 PC일지도 모르니까요.