메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

디지털라이프

SETI@home

한빛미디어

|

2002-02-28

|

by HANBIT

11,013

저자: 드루 라빈(Dru Lavigne), 역 서성용

영화 Contact를 보고서 외계로부터 오는 정보 신호를 발견할 가능성에 흥분을 느껴본적이 있다면, SETI@home 프로젝트에 관심이 갈 것이다. 가령 지구 밖의 생명체에 관심이 없다고 하더라도, 이 프로젝트는 협력 컴퓨팅을 다루는 흥미로운 예제가 될 것이다.

오늘 이 기사에서 필자는 FreeBSD 의 ‘setiathome’ 클라이언트의 사용법 및 포트 컬렉션에서 이용할 수 있는 이 클라이언트를 위한 GUI 프론트 엔드에 대해 몇 가지를 설명하려고 한다.

우선 본격적인 설명을 시작하기 전에 협력 컴퓨팅에 대해 알아보자. 간단하게 말해, 협력 컴퓨팅이란 많은 수의 서로 다른 컴퓨터에서 동작중인 CPU들의 프로세싱 파워를 묶어서 그것들 모두가 하나의 공통된 프로젝트에서 작업하도록 하는 방법이다. 협력 프로젝트에 참여하는 사람들은 쉬고 있는(idle) CPU 사이클을 ‘기부해서’ 방대한 양의 연구 자료를 처리를 돕는다.

인터넷에는 이와 관련된 프로젝트들이 몇 가지가 있는데 이것들은 여러분에게 부와 명예를 가져다 줄 수 있을 지도 모른다. 처음으로 살펴볼 것은 distirbuted.net 이다. 이 사이트는 현재 4개의 프로젝트를 수행하고 있으며 암호화 알고리즘의 강성(strength)이나 Golomb Rulers[1]를 계산하는 것을 다룬다. 만약 이러한 것에 대해 아무것도 모르겠다면, 이 사이트에서는 각 프로젝트의 배경이 되는 수학적인 개념들에 대한 소개를 볼 수 있다.

또다른 협력 프로젝트로는 Mersenne 소수로 알려진 수학적 개념을 다루는 The Great Internet Mersenne Prime Search이다. 여기서는 어떻게 겨우 20살 밖에 안된 캐나다 사람이 800MHz 컴퓨터에서 가장 최근의 Mersenne 소수[2]를 발견했는지에 대한 글이 있어 독자들의 관심을 끌어모으고 있다.

그리고 마지막 프로젝트는 이 기사가 집중적으로 다루는 SETI@home이다. SETI@home 사이트는 프로젝트에 관련된 FAQ 와 통계뿐 아니라 사람들의 호기심을 자극하는 매혹적인 정보가 가득한 사이트라고 할 수 있다.

이제는 각설하고, 수퍼유저가 되어 setiathome을 직접 구축해보자.

su
Password:
cd /usr/ports/astro/setiathome
일단 구축을 마치면, exit를 쳐서 수퍼유저 계정을 나와서 cd로 당신의 홈 디렉토리로 되돌아가라.

GUI 프론트엔드를 구축하기 전에, 명령행에서 setiathome을 실행하자. 이것은 이 애플리케이션이 처음으로 실행되기 때문에 아주 중요한 과정이며 이을 설정하기 위해 약간의 사용자 입력을 요구한다. 여러분은 setiathome 작업 파일들을 홈 디렉토리에 두거나, 홈 디렉토리에 서브 디렉토리를 만들어서 cd로 이동하여 저장할 수 있다. 필자는 사용자 ‘genisis’로 홈 디렉토리에서 초기 설정을 하는 법을 보여주려고 한다.

setiathome

-----------------------------------------------------------
New software version - deleting temp files.
SETI@home client.
Platform: i386-unknown-freebsd2.2.8
Version: 3.03

SETI@home is sponsored by individual donors around the 
world. If you"d like to contribute to the project,
please visit the SETI@home web site at
http://setiathome.ssl.berkeley.edu.
The project is also sponsored by the Planetary Society,
the University of California, Sun Microsystems, Paramount 
Pictures, Fujifilm Computer Products, Informix, Engineering 
Design Team Inc, The Santa Cruz Operation (SCO), Intel, 
Quantum Corporation, and the SETI Institute.

SETI@home was developed by David Gedye (Founder),
David Anderson (Director), Dan Werthimer (Chief Scientist),
Leonard Chung, Hiram Clawson, Jeff Cobb, Charles Congdon, 
Charlie Fenton, Kyle Granger, Eric Heien, Mike Hill, 
Michael Kang, Eric Korpela, Matt Lebofsky, Peter Leiser, 
Brad Silen, Woody Sullivan, and Adam Wight.

Welcome to SETI@home.
We use your email address to identify you.
Please type:
    1 to set up a new account (first-time users);
    2 to log into an existing account (returning users).
Your choice (1 or 2): 1

Your email address: genisis@istar.ca
OK to show your email address on the SETI@home web 
  site? (y/n): n
Your name or nickname: Dru
OK to show your name on the SETI@home web site? (y/n): n
Your country number (Return see country list): 
Your country number: 38
Your postal code: K7P 2S9
Computer location: 0=unspecified 1=school 2=work 3=home :3

Here"s your account info:
Email address: genisis@istar.ca
OK to show email address? no
Name: Dru
OK to show name? no
Country: Canada
Postal code: K7P 2S9
Computer location: Home

Everything correct? (y/n) y
-----------------------------------------------------------
일단 계정 정보가 확인되면, 클라이언트가 Berkeley 에 있는 데이터베이스로 접속하기를 기다리자. 로그인이 되고나면, 설정의 나머지 부분을 보게 될 것이다.

-----------------------------------------------------------
Logged in as Dru (genisis@istar.ca)
Number of work units processed: 0
Total CPU time: 0.000000
Found data file: no. Found result header file: no.
Getting data - connecting to server.
Receiving data: 10K

Receiving data: 340K
All data received.
Scanning data file
Data Info:
Sky coordinates: 14.492 R.A.,  9.510 Dec
Recorded on:  2452001.74472 (Mon Apr  2 05:52:24 2001)
Source: Arecibo Radio Observatory
Base Frequency: 1.420625000 GHz
Beginning analysis...
	(This is the last message displayed while the client 
	works. To see progress messages between now and 
	completion of processing, operate the client with 
	the -verbose option. You can also see the progress 
	of the client by looking at the "prog=" line in the 
	state.sah file.
-----------------------------------------------------------
설정이 끝나면, SETI@home 은 할당된 작업을 처리하면서, 백그라운드에서 조용하게 동작할 것이다. 이때 이 터미널에서 프롬프트가 사라진 것을 발견할 것인데, Alt-F 키를 이용하여 다른 터미널로 이동할 수 있다. 설정 과정은 .sah 확장자를 가진 여러개의 파일을 생성해낸다.

ls | grep .sah

key.sah
lock.sah
outfile.sah
pid.sah
result_header.sah
state.sah
temp.sah
user_info.sah
version.sah
work_unit.sah
클라이언트를 정지시키려면, "Ctrl-C"를 누른다. verbose 스위치로 클라이언트를 재시작하여 진행상황을 모니터할 수 있다.

setiathome -verbose


Found data file: yes. Found result header file: yes.
Scanning result header file.
Beginning analysis...
Doing baseline smoothing.
Starting work for Doppler shift rate 0.000000, FFT length 2048
0.055015% done
... Searching for Pulses
Starting work for Doppler shift rate 0.000000, FFT length 1024
... Searching for Gaussians
... Searching for Pulses

만약 Gaussians과 Pulses가 무엇인지 확실히 모르겠다면, 프로젝트 사이트에 있는 용어 해설을 참고해 보아라. 매우 도움이 될 것이다.

이제는, 처리중인 데이터를 시각적으로 표현해줄 몇 가지 port를 구축해보자. 필자는 ‘TkSETI’로 시작하겠다. 이 프로그램에 대한 스크린샷을 보고싶다면 여기를 클릭해 보아라.

port는 아래와 같이 구축한다.

su
Password:
cd /usr/ports/astro/tkseti
make install clean
exit
빌드가 끝나면, 일반 사용자로 X 윈도우 세션을 시작하자. xterm에서 *.sah 파일이 있는 디렉토리를 지정하여 애플리케이션을 실행한다.

tkseti /usr/home/genisis
기본적으로, 이 유틸리티는 부하가 높은 Gaussian, Pulse, Spike, 혹은 Triplet을 처리할 때마다 경고를 하도록 설정되어 있다. 필자는 처음에는 이것이 흥미로웠지만, 곧 이것에 상당히 짜증이 나기 시작했다. 이것을 비활성 상태로 만들고 설정을 변경하고 싶다면 Setup 버튼을 클릭하면 된다.

이 유틸리티는 또한 Run, Pause, 그리고 "setiathome" 클라이언트를 죽이는 버튼이 있어서, 더 이상 명령라인에서 클라이언트를 시작시킬 필요가 없다. 게다가 천체도도 받을 수 있고 친구들이나 그룹의 상황을 검사할 수도 있다.

다음의 port 는 ‘GKrellM’로 /usr/ports/astro에 있다. 예전에 GKrellM을 사용한적이 없다면, 정말 예쁘게 생긴 사탕을 선물로 받았을 때처럼 기쁠 것이다. 왜냐하면 플러그인을 통해 고도의 설정이 가능하기 때문이다. 스크린 샷을 확인하고 테마와 플러그인에 대해 더 알아보고 싶다면 여기를 클릭해보아라.

GKrellM을 구축하고 나면, xterm을 열어서 gkrellm을 입력하라. 만약 처음으로 gkrellm을 실행하는 것이라면, 다음과 같은 메시지가 뜰 것이다.

You can configure your monitors by right clicking on the top frame of GKrellM or by hitting the F1 key with the mouse in the GKrellM window. Read the info pages in the config for setup help.

GKrellM의 탑 프레임을 오른쪽 클릭하거나 GKrellM 윈도우에 있는 마우스로 F1 키를 눌러서 모니터를 설정할 수 있다. 설정 도움말을 보고 싶다면 설정과 관련된 정보 페이지를 읽어보아라.


GKrellM을 활성화하기 위해 위의 메시지에 언급된대로 설정 유틸리티를 실행하고, Plugins 에 클릭하고, SETI@home 을 클릭해서 활성화하자.

한번 활성화되고 나면, 플러그인 트리 아래에서 활성화 된 장면을 볼 수 있을 것이다. 다시 SETI@home 플러그인을 더블클릭하면 Config 탭으로 갈 것이다. 그리고 state.sah 파일이 있는 경로를 입력하자. 예를 들어 필자의 경우는 /usr/home/genisis이다.

마지막으로 언급하고 싶은 포트는 "Ksetiwatch"이다. 이 포트를 성공적으로 구축하기 위해서는 KDE 2.2.2 가 필요한데, 그래서 KDE의 최신버전으로 업그레이드하기를 주저해왔다면, 이것은 업그레이드할만한 이유가 될 수 있을 것이다. 스크린샷과 온라인 문서는 이곳에서 볼 수 있다.

이미 KDE 2.2.2를 설치했거나 또는 KDE를 설치하지 않았다면, /usr/ports/astro/ksetiwatch에서 이 포트를 직접 구축할 수 있다. 그러나 KDE 이전 버전을 실행하고 있는 중이라면, 이전 버전의 모든 흔적을 제거해야만 성공적으로 구축할 수 있다. 필자의 경우 후자에 해당되므로, 다음과 같이 진행했다.

su
Password:
pkg_info | grep kde
이 명령은 10 개 정도의 관련된 KDE 패키지 목록을 반환했다. 나는 pkg_delete 유틸리티를 이용해서 다음과 같이 각각의 패키지를 삭제했다.

pkg_delete kde-2.2
pkg_delete kdemultimedia-2.2
etc.
그 후에는 pkg_info | grep kde를 반복해서 이전 패키지들 모두가 삭제되었는지를 확인했다. 그리고 나서야 KDE 2.2.2 버전을 구축할 수 있었다. (주의: 이것은 매우 오랜 시간이 걸린다.)

cd /usr/ports/x11/kde2
make install clean
그리고나서 Ksetiwatch를 설치했다.

cd /usr/ports/astro/ksetiwatch
make install clean
exit
필자가 KDE 2.2.2를 처음으로 띄웠을 때, 월페이퍼와 커스터마이즈된 메뉴와 아이콘 같은 나의 원래 설정 모두가 그대로 유지되어서 기뻤다. Applications 메뉴에서 Ksetiwatch를 띄울 수 있었다.

처음으로 Ksetiwatch를 실행할 때, Analysis 창에서 오른쪽 버튼을 클릭하여 SETI@home 위치 정보를 추가하라. *.sah 파일이 있는 디렉토리를 뒤져봐야 할지도 모르고, Ksetiwatch 애플리케이션을 시작하고 중지할 때 setiathome 클라이언트를 시작하고 중지하는 옵션을 선택할 수도 있다. 그리고 Data Info 탭에 있는 버튼을 클릭하여 천체도를 볼 수 있다. Gaussian, Pulse 그리고 Triplet 그래프를 보기 위해서, Analysis 탭을 하이라이트하고 , Show Menu에서 적절한 그래프를 선택하라.

SETI@home 애플리케이션과 관련하여 마지막 몇 가지 주의사항을 더 말해보겠다. 만약 방화벽이 80번 포트에서 외부로의 접속을 허용한다면, 이는 여러분이 인터넷을 사용할 수 있음을 의미하며, 이는 또 setiathome 클라이언트를 사용하는데 아무 문제가 없다는 것도 의미한다. 그래도 보안이 걱정된다면, 프로젝트의 웹 사이트의 FAQ에 보안 관련 주의 사항이 있어 참고할 수 있다. 이 애플리케이션 자체는 ‘idle’ CPU 사이클을 사용하므로 시스템 성능에는 아무런 영향을 주지 않는다.

필자는 오늘의 기사로 여러분들이 즐거웠기를 바라며 협력 컴퓨팅의 세계에 여러분의 조금이라도 관심을 가져보기를 바란다. 미래 어느날 필자가 신문에서 흥미로운 CPU를 발견했던 사람으로 바로 당신의 이름을 볼 수 있을지 누가 알겠는가?

드루 라빈(Dru Lavigne)은 캐나다 온타리오주 킹스턴에 있는 공과 전문대학교에서 네트워크를 가르치고 있으며 자신의 테스트 머신에서 몇 개의 운영 체제가 멀티 부트 가능한지를 확인하는 것으로 유명하다.


[1] Golomb Rulers : 양의 정수의 집합으로서 집합내의 각각 원소들의 짝의 차가 하나도 않은 경우. 예를 들어서 mark 4인 Golomb Ruler 는 0-1-3-7 이 될 수 있는데, 이것으로 1,2,3,4,6,7 의 길이를 잴 수 있다. 0-1-2-3 은 1,2,3의 길이만을 잴 수 있으므로 좋지 못한 Golomb Ruler 이다. mark 4 인 Optimized Golomb Ruler 는 0-1-4-6인데, 1,2,3,4,5,6의 길이를 잴 수 있다. 아래 그림은 mark 4 인 Optimized Golomb Ruler 이다.


[그림] Optimized Golomb Ruler

[2] Mersenne Prime : 2^n - 1 형태로 나타나는 소수. 현재 n=13,466,917 까지 발견됨.
TAG :
댓글 입력
자료실