'컴퓨터/linux'에 해당되는 글 10건
- 2012.03.28 latex의 dvi 파일을 txt로 바꿔주기
- 2011.07.04 python 에서 수치 데이터 읽기 2
- 2011.04.08 리눅스에서 intel compiler를 써보세요! 7
- 2011.04.07 Ubigraph를 이용한 networks visualization 3
- 2011.03.29 ubuntu에서 gnuplot을 컴파일 설치하기
- 2011.03.29 Python과 C 연동하기 3
- 2011.02.25 연구실 클러스터
- 2009.05.24 오페라 브라우저
- 2009.05.21 ubuntu 9.04 mysql is not started
- 2009.04.23 awk로 명령어 입력하기
하.. 하루종일 이 간단한걸 해보기 위해 구글을 뒤지고 다녔던 걸 생각하면 눈물이 앞을 가리네요.
우선 출처부터 써내려 갑니다.
http://www.daniweb.com/software-development/python/threads/119693
제가 하려고 하는것은 어떤 컬럼으로 구분된 데이터 파일에 있는 숫자를 읽어서
각각의 변수들을 제가 원하는 어떤 함수에 집어 넣는것입니다.
참 간단한데. 아무리 찻아도 찻아도 찻을수가 없는.. 팁입니다.
우선 numpy 라고 불리는 numerical한 계산을 많이 해주는 패키지를 import 합니다.
(앞으로 물리학을 하면서 python을 계속 쓰려면 이 패키지를 심층 분석해봐야 겠습니다. )
>>from numpy import *
>>f = loadtxt("test.txt")
>>firstculum = f[:, 0]
>>print firstculum
[1,2,3,....., 999, 1000]
딱 봐도 느낌이 팍오는 소스입니다.
첫번째 컬럼을 읽는 소스이죠?
이제 잘 활용해서 쓰기만 하면 되겠죠?
그런데 의외로 사람들이 잘 모르는 부분중에 하나가 gcc가 시중에 있는 웬만한 컴파일러에 비해 컴파일한 프로그램의 속도가 느리다는 것입니다. 계산 과학쪽을 하는 사람들뿐만 아니라 어떤 상용프로그램들도 느리다는 건데요. (그렇다고 인텔 cpu에서만 작동하는 프로그램도 웃기겠네요.)
그런 문제를 해결해 주는 상당히 고속의 컴파일러가 있습니다.
바로 intel compiler에요. ^^ 리눅스에서 명령어로 쓸려면 icc 라고 쓰고 gcc랑 동일하게 사용하시면 됨니다.
우선 설치를 해보도록 하죠. 먼저 인텔 홈페이지에 들어가서 무료인 noncommercial version을 받습니다. noncommercial version은 아쉽게도 맥이나 윈도우에서는 사용할수가 없습니다.
가서 약관에 동의하고 자신의 머신의 기종에 따라(32bit인지 64bit인지) 컴파일러를 다운받습니다. 기종을 확인하는 법은
$cat /proc/cpuinfo
를 봐서 CPU기종을 확인 하는 방법이 있고
$uname -a
란 명령어로 운영체제의 종류를 파악합니다. i686 이면 32bit, x86_64이면 64bit 입니다. 중간에 메일주소를 써줘야하는데 잘 써줘야 합니다. 그래야 씨리얼번호가 제대로 오거든요.
다운을 다 받았으면 먼저 JAVA Runtime Environment 란걸 먼저 설치해줍니다. 이게 없으면 인스톨이 안되요. 원래 어느정도 충족조건이 있지만 웬만한건 다 충족하고 이게 충족이 잘 안됩니다.
$sudo apt-get install gcj
JAVA Runtime Environment 가 이렇게 설치가 되면
$tar xvfz l_ccompxe_(.....).tgz
$cd ./l_ccompxe_(.......)
$sudo ./install.sh
을 해주면 인스톨을 하기 시작합니다.
이런글이 나옵니다. 간단한 설명인데 그냥 엔터 치시면 됨니다.
지원하지 않는 운영체제다고 하는데 그냥 무시하시면 됨니다.
그다음에 약관이 좌르륵 나옵니다. 알았다고 accept이라고 타이핑하고 엔터
라이센스를 인정받으라고 하네요. 우리는 씨리얼 넘버가 있으니까 엔터를 쳐서 1번으로 갑니다.
다음에 바로 씨리얼 넘버 넣으라고 하는데 침착하게 이메일에 있는 씨리얼넘버를 넣어줍니다.
된다고 하네요. ㅎ
--------------------------------------------------------------------------------
이제 인스톨을 하려고 합니다. 원래 이부분은 dependency라고 하죠. 깔수있는 조건들을 만족하는지 확인하는 곳입니다. gcj를 깔았으니 조건을 잘 만족하는거죠. 혹시 안되더라도 깔라고 시키는것만 잘 깔면 됨니다. 엔터.
살살 깔리네요. 엔터.
Step no: 6 of 6 | Complete
잘깔렸다고 하네요. 그 다음에 shell에 설정을 해주어야 쓸수가 있는데요. 우리는 모두 bash 쉘을 쓰니까 $ source install-dir/bin/compilervars.sh intel64 쓰면 되겠네요. installed-dir 은 일반적으로 /opt/intel/composerxe-(......)에 있습니다.
$echo "source /opt/intel/composerxe-(......)/bin/compilervars.sh intel64" >> ~/.bashrc
위에 써있듯이 64bit면 intel64 를 쓰고 32bit면 ia32라고 써야합니다.
$bash
bash 한번 실행해주고 나서
$icc
라고 치면 잘 된다는걸 알수 있습니다. ^^ 이제 잘 쓰기만 하면되요.
(C++은 icpc란 명령어를 사용합니다. fortran은 ifort)
제 경험상 계산 시간이 1/3정도 더 줄어들더라구요. 1/3이 작아 보이지만 삼일 계산할걸 이틀만에 끝낸다는거니.. 정말 기가 막힙니다. 알고리즘에 따라서 반 정도밖에 안걸리거나 빨리지지 않는 경우도 있는데 그건 어쩔수 없죠. ㅋ 그래도 피부로 느낄수 있는 속도향상을 맛볼수가 있습니다.
Ubigraph란 어떤 종류의 네트워크나 시스템의 움직임이나 모습을 시뮬레이션을 하면서 실시간으로 그것들의 동력학적 변화를 눈으로 볼수 있게 해주는 아주 유용한 툴입니다. 일단 동영상을 보시죠.
그냥 봐도 화려하죠?
우선 설치하는 법부터 알려드리죠.
http://ubietylab.net/ubigraph/index.html
홈페이지에 들어가셔서 자신의 컴퓨터와 운영체제에 맞는 것을 다운로드 합니다.
$ tar xvfz UbiGraph-....tar이렇게 하면 설치가 완료된것입니다. 마지막에 보면 실행이 잘 될거에요. 중간에 검은 윈도우가 떠야합니다. 그게 안뜨면 안돼요. 그게 안될경우에는 xmlrpc쪽이 문제일수도 있지만 웬만하면 잘 뜹니다. 잘 안뜨면 컴퓨터가 정말 이상한것일 가능성이 있습니다. 이 글을 쓰면서 그 문제를 어떻게 해결해야 하는 기억이 나지 않아서 한 4시간을 버렸네요... 정말 이럴때마다 이런야가 너무 싫어지네요. 너무 화가 나요. 전에 몇번 깔아 봤었기 때문에 쉬울줄 알았는데 엉뚱하고 쓸데없는데서 시간을 허비했네요 ㅠ_ㅠ 다시한번 기록의 중요성을 느낌니다. 이제 뭘 하든간에 무조건 다 기록하는 습관을 남겨야겠습니다.
$ cd UbiGraph-...
$ bin/ubigraph_server & (empty black window)
$ cd examples/Python
$ ./run_all.sh
홈페이지에 나온 템플릿대로 쓰면 웬만하면 다 됩니다.
소스 코드에 대한 설명을 하자면 이것은 랜덤 그래프인데요.
소스코드 쓰실땐 한글부분은 모두 지우고 쓰세요.
#!/usr/bin/python
import random as rd
#랜덤함수를 사용하기 위해서 라이브러리를 불러줍니다.
import xmlrpclib
import time
#중간에 쉬는 시간을 주기위해 넣어줍니다. 너무 빨리 없어지면 보지를 못하죠.
server_url = 'http://127.0.0.1:20738/RPC2'
server = xmlrpclib.Server(server_url)
G=server.ubigraph
#이 부분은 템플릿이라고 생각하시면 됩니다. 자세한건 저도 xml쪽을 잘 몰라서 모르겠네요.
G.set_edge_style_attribute(0, "color", "#fff000")
G.set_edge_style_attribute(0, "width", "3.0")
#edge 즉 링크의 색과 굵기를 지정해줍니다.
G.set_vertex_style_attribute(0, "color", "#ff0000")
G.set_vertex_style_attribute(0, "shape", "sphere")
#vertex 즉 노드의 색과 모양을 지정해 줍니다. 크기도 조절할수 있고 라벨도 붙일수 있습니다.
for i in range(100) :
G.new_vertex_w_id(i)
#일단은 공간에 노드들을 만들어서 뿌립니다.
time.sleep(0.5)
#잠깐 쉬어주구요.
for i in range(100) :
for j in range(i+1, 100) :
if rd.random() < 0.15 :
G.new_edge(i,j)
time.sleep(0.1)
ubigraph의 장점은 무엇보다도 웬만한 모든 언어를 지원 한다는 것입니다. 어떤 놈들을 python만 지원 되거나 어떤 놈들은 c만 지원 되거나 하는 단점이 있는데 이 프로그램은 들어본 거의 모든 언어에 사용할수 있다는 장점이 있습니다.
홈페이지에 들어가면 아주 다양하게 응용해서 쓰는데요. 물리학분야에서 많이 쓸수 있을거라고 기대해 봅니다. 이것을 이용해서 복잡한 분자의 구조라던지 결정모양의 고체의 구조를 나타낼수 있을 뿐만 아니라, 그것들을 움직이게 하므로써 물질의 동력학적인 행동들을 눈으로 확인할수 있다는 장점이 있습니다.
sudo apt-get install gnuplot
하지만 이렇게 하는 경우 종종 불편을 호소하는 경우가 많은데요.
del키가 안먹는 다든가.. 맘에 안드는 wxt를 써야 한다던가의 일이죠. (전 그냥 깔아서 쓰는걸 좋아합니다..ㅠ_ㅠ 삽질 미워요..)
X11 포워딩으로 쓰는게 좋기도 하구요.(결국 실패.. ) 확실히 한번 고생하면 그후론 참 편하죠.
- libwxgtk2.8-dev – for the wxt terminal
- libpango1.0-dev – for the cairo (pdf, png) and wxt terminals
- libreadline5-dev – readline support (editing command lines)
- libx11-dev and libxt-dev – X11 terminal
- texinfo (optional) – needed for the tutorial
- libgd2-xpm-dev (optional) – old png, jpeg and gif terminals based on libgd
sudo apt-get install libwxgtk2.8-dev libpango1.0-dev libreadline5-dev libx11-dev libxt-dev texinfo libgd2-xpm-dev
컴파일 인스톨을 위해선 우선 위의 패키지가 꼭 필요 합니다.
그다음에 웹에서 gnuplot 의 소스 파일을 다운 받습니다.
압축을 풀고 (tar xvf gnuplot-4.4.3.tar)
디렉토리로 들어갑니다. (cd gnuplot-4.4.3)
자.. 이 작업이 끝났으면
./configure
make
make check
(gnuplot 이 잘 작동하는지 테스트합니다. skip하셔도 됨. 현란한 움직임들을 보고 있자니 제가 gnuplot의 능력을 1%도 못쓰고 있다는 기분에 빠져듭니다.. =_=;;;)
sudo make install
끝... 참 쉽죠? 이럼 wxt기준으로 깔리면서 텝이나 다른 커멘드라인 명령어를 잘 수행하는 gnuplot을 설치하게 됩니다.
원래는 ./configure 뒤에 많은 옵션들을 해줘야 하지만..
( ./configure --prefix=$HOME/usr --enable-history-file --with-readline=gnu --x-include=/usr/include/X11 --x-libraries=/usr/X11/lib 이런 옵션들요.. )
요즘은 이렇게만 해도 잘 깔리네요..
ps. X11을 터미널로 설정하는 법 알아냈습니다. 위의 방법을 쓴다음에 .gnuplot 이란 파일을 홈디렉토리에 만들어서 set term x11을 한줄 넣으시면 됨니다. 그냥 echo "set term x11" > .gnuplot 하시면 되겠네요. ㅋ
(이상하게 트랙백이 안걸리네요. )
python을 쓰다보면 C와 연동할 일이 생기는데,
이럴 때 사용하게 되는 것이 swig입니다.
http://www.swig.org/
다음은 초간단한 c 함수를 만들어서 swig를 이용하여,
python에서 호출을 해 보도록 하겠습니다.
( 이 내용들은 swig tutorial에 있는 내용들을 좀 더 간단하게
제 환경에서 테스트해본 결과입니다. )
swig은 안깔려있는 경우가 있어서 sudo apt-get install swig을 깔아줍니다.
int inc( int a ){
return a+1;
}
~/temp$ vi sample.i
%module sample
%{
extern int inc(int a);
%}
extern int inc(int a);
~/temp$ swig -python sample.i
~/temp$ gcc -c -fPIC sample.c sample_wrap.c -I/usr/include/python2.4
(운영체제가 X86_64인 경우 저 붉은 색으로 되는 부분을 옵션으로 해줘야합니다.)
(또한 바로 하면 Python.h 파일을 못찻기때문에 꼭 python-dev를 설치 하셔야 합니다.)
~/temp$ ld -shared sample.o sample_wrap.o -o _sample.so
~/temp$ ipython
Python 2.4.3 (#2, Oct 6 2006, 07:52:30)
Type "copyright", "credits" or "license" for more information.
IPython 0.7.1.fix1 -- An enhanced Interactive Python.
? -> Introduction to IPython's features.
%magic -> Information about IPython's 'magic' % functions.
help -> Python's own help system.
object? -> Details about 'object'. ?object also works, ?? prints more.
In [1]: import sample
In [2]: sample.inc(1)
Out[2]: 2
ㅇㅋ!
(마지막 부분은 꼭 ipython을 쓰지 않아도 잘 작동 하였습니다. )
출처 : http://cybershin.x-y.net/tt/entry/swig
그 다음에 pbs setup을 하는 부분이 있는데 이 부분은 조금 복잡하고 아직 저도 모르는 부분이 많으니 나중에 좀더 공부하고 포스팅 하도록 하겠습니다. 그래도 많이 알고 싶으신분이 있다면.. 별이란 친구의 친절한 설명이 함께있는 아래 동영상은 다운받아서 보시는것도 좋을거 같습니다.
using torque and cernlib 1(2008. 4. 10.)
(우클릭해서 다운받아서 보시면 좋을거 같네요. 위 동영상은 세종대학교 물리학과 병렬처리 연구실에서 작성한것입니다. )
저는 이미 연구실 선배가 구축해좋은 셋업파일을 사용하였습니다.
(/var/spool/torque 란 디렉토리에 가면 이미 이 파일이 있습니다. 실제로 이 파일을 용도에 맞게 조금 수정해서 사용하시면 됨니다. )
./torque.setup hostname
여기서 hostname을 정확히 써주지 않으면 제대로 작동하지 않습니다.
그리고 구동시킬 것들은 root 권한으로
pbs_mom
pbs_sched
pbs_server
이 세가지 데몬들을 구동시켜야 합니다.
이름에서 어떤 역활을 하는지 이미 뉘앙스가 풍겨오죠? 이상하게도 셋업파일은 실행하면 자꾸 뭔가 이상이 생깁니다.
셋업파일을 실행하면 이미 이 세가지 파일들이 실행이 되는데 일단은 이 데몬들을 정지 시킵니다. qterm이란 명령어를 root권한으로 실행시키면 데몬이 정지 됩니다.
그후에 /var/spool/torque/server-priv/ 란 디렉토리에 들어가면 nodes란 파일이 있습니다. 거기에 hostname np=쓰고싶은 노드 숫자
이런식으로 써주고 다시 세 데몬들을 실행시키면 정상적으로 돌아가게 됩니다. qsub 란 명령어를 통해 작업을 올려보면 정상적으로 돌아가는지 확인 할수 있습니다.
echo "sleep 10" | qsub
를 몇번정도 실행하고 나서 qstat로 다시 확인해보면 큐에 작업이 올라가 있는것을 확인할수 있습니다.
그런데 요즘 여기저기에서 오페라에 대한 글을 자주 볼 수 있다. 그동안 말로만 들었는데, 실제로 써보고 나니 대단한 브라우저라면서 칭찬을 하는 글들이 많다. 동감이다. 오페라 브라우저는 브라우저 자체만의 완성도로 볼 때에는 최강의 브라우저임이 틀림없다. 요즘 모바일, Wii 같은 게임기로 영역을 확장하면서, 지명도도 많이 올라간 상태이다. 이번 글에서는 그런 오페라 열풍, 아니 미풍에 조금 더 힘을 실어줄까 해서, 오페라의 장점 몇가지를 얘기해보고자 한다.
1. 가볍고 빠르다.
오페라의 스피드는 국내외를 막론하고 다들 최고라고 인정하는 부분이다. 단순히 아이콘을 클릭해서 뜨는 기동 시간을 말하는 것이 아니라, 실제로 써보면 체감 속도에서 경쾌함을 느낄 수 있다.
2. 브라우저 + (알파)
오페라는 단순히 웹브라우저 기능만 있는 것이 아니다. 이메일, RSS, 채팅, 뉴스 그룹 등, 웬만한 인터넷 도구는 거의다 내장하고 있다. 그러면서도 용량은 파이어폭스보다 작다. 혹자는 그런 통합 프로그램은 복잡한데다, 기능도 전용툴에 못 미친다고 싫어한다. 하지만 오페라의 기능은 더도말고 덜도말고 딱 적당하다. 특히 이메일 같은 경우엔 POP3 를 지원하기 때문에, 네이버나 지메일도 한꺼번에 읽어들일 수 있다. 당연히 웹메일로 접속해 보면, 읽지않은 메일의 수도 0 으로 초기화된다. 나는 이메일 기능 때문이라도 오페라를 가끔씩 돌려보곤 한다. 그리고 뉴스 그룹도 간간히 쓰곤 한다. 뉴스 그룹이나 채팅(IRC) 같은 기능은 별것 아니지만, 막상 쓰려고 하면 막막할 때가 많다. RSS 구독 기능은 그다지 추천하고 싶지 않다. 이건 오페라의 기능이 떨어져서라기 보다는 오프라인보다 온라인 방식이 훨씬 편리하기 때문이다. 개인적으로 한RSS 를 추천한다.
3. 편리한 마우스 기능
마우스 제스쳐야 이제 왠만한 브라우저는 모두 지원하기 때문에 큰 특징은 되지 않는다. 솔직히 오페라의 마우스 제스쳐 설정은 다른 것에 비해 조금 어렵기도 하다. 하지만 조금만 공을 들이면, 막강한 활용이 가능하다. 그동안 오페라에서는 링크 던지기가 안되는 줄 알았는데, 자세히 살펴보니 기본으로 지원하고 있었다. 단지 마우스 오른쪽 버튼을 누른채로 해야된다는 점이 여타의 브라우저와 조금 다르다.
그리고 오페라의 문맥 메뉴, 즉 마우스 오른쪽 버튼을 누르면 나타나는 메뉴는 오랜 브라우저 기술을 축적한 회사답게 친인간적이고 합리적이다. 특히 선택 부분을 메모장으로 바로 저장하는 기능(Copy to note)이나, 음성 전환(Speak) 기능, 검색(Search with) 같은 것은 실제로 써봐야 편리함을 알 수 있다. 지금이야 파폭도 확장기능을 통해 이런 것 대부분을 따라할 수 있지만, 오페라의 안정적인 내장 기능에 비하면 조금 떨어지는 느낌이다. 다시 한번 강조하지만, 오페라의 매력은 사용자를 생각하는 심플한 기능에 있다. 아마 구글을 애용하는 사람이라면, 오페라 또한 좋아할 것이다.
4. 음성 전환 기능 (TTS)
Text to Speech 라고 텍스트를 선택하면, 음성으로 읽어주는 기능을 말한다. 윈도우에도 기본으로 내장돼 있지만, 오페라의 그것과는 품질에서 많은 차이가 난다. 비록 영문만 지원되긴 하지만 네이티브와 상당히 흡사한 발음을 들려준다. (잘 쓰이지는 않지만, 음성으로 브라우저를 컨트롤할 수도 있다.)
Ready for a revolution in the way you access the Web sites you can't live without? Try Speed Dial in Opera's newest Web browser. It makes the fastest even faster.
5. 높은 품질의 이미지 표시
축소된 이미지를 IE 나 파이어폭스로 보면, 많이 찌그러져서 보기가 않좋다. 하지만 오페라는 그래픽 뷰어에 버금가는 높은 품질을 유지해준다. 아래에 예제를 걸어놨으니 직접 비교해 보길 바란다. 보다시피 오페라는 축소된 이미지의 작은 글자까지 읽을 수 있다.
지금까지 생각나는대로 오페라만의 장점 몇가지를 살펴보았다. 마지막으로 조금 과거의 얘기를 하자면, 오페라 브라우저는 버전 8까지 상용으로 팔던 것이었다. 즉 1%도 안되는 점유율을 가지고 있으면서도, 감히 돈받고 팔던 브라우저였던 것이다. 그만큼 자신들이 만든 브라우저에 자신감이 있었다는 얘기다. 지금은 구글과의 제휴와 모바일 지원 등 수익 영역을 확대한 덕분에 무료로 제공되고 있지만 말이다. 아무튼 당신이 파워 웹서퍼가 돼고자 한다면, 오페라는 한번쯤 써봐야 할 필수 브라우저이다.
에서 퍼옴..
오페라라는 부라우저
상당히 괜찮네요.. 한번씩 써보시길..
리눅스에서는 파이어폭스가 있지만 너무느린 경향이 있어요..
근데 이건 가볍고 좋네요..^^
사파리랑 비교해서는 비슷한거 같아요..^^ㅎㅎ
하지만 역시 블로그에 글을 쓸때는 약간 불편하네요..;;; 지금도 불편해요 ..ㅠ_ㅠ
칸이 안맞아서 그런가..;;