Author Archives: babyworm

오라일리의 perl책 세권.

perl을 잘 지원해주는 출판사인 오라일리(perl.com과 같은 사이트도 운영하죠)의 perl책 세권이 있습니다. 
(저는 개인적으로 낙타 대가리들이라고 부르곤하죠.. ^^; 근데, 왜 쿡북에는 산양이지요? )

perl을 주된 언어가 아닌 스크립팅 언어로 사용하는 엔지니어의 입장에서 각각을 리뷰해보도록 하겠습니다.

PERL 프로그래밍

이 책은 가장 기본적인 책입니다. 그리고, 가장 잘 설명된 책입니다.
하지만, 인간적으로 너무 두껍습니다. ^^;
즉, perl에 대해서 깊이 있게 보실분들께는 좋습니다만 저와 같이 간략한 스크립팅 언어로 사용하는 사람에게는 좀 무리가 있죠.. 재미삼아 읽기엔 말이죠.  펄에 대해서 제대로 아시고 싶으시다면 이책을 선택하십시요.

PERL 제대로 배우기

이책은 위 책의 좀 간략본이랄까요? 그런 책입니다.
단, 아무런 기초없이 보기엔 좀 무리인 책이기도 합니다.
프로그래밍 언어를 체계적으로 설명하는 맛은 없는 책이거든요.
웹페이지들에서 기본적인 perl문법은 익혔고, 가끔 문법 사항을 (빠르게) 볼일이 있다면 이책을 추천합니다.
그러나, 일반적인 목적으로는 추천하지 않는 책입니다.

Perl Cookbook

펄 계의 이단자.. 산양 머리 책입니다. ^^;
저같이 이런 저런 짜집기 코드를 만들어내는 사용자에게는 최고의 책입니다.
펄 스크립트를 짤 일이 있으면, 이책에서 알맞는 예제가 있는지 본 다음 주르륵보고, 비슷 비슷하게 작성하는 패턴을 쓰고 있습니다.  하기야 제가 사용하는 부분이 몇몇 간단한 루틴과 정규식의 조합, 가끔 시스템 명령 몇가지 정도니까요..

ASIC하시는 분이 perl을 익혀야겠다. 그리고, 써봐야겠다.. 라고 결심했다면..
우선 한국 펄 사용자 모임에 방문하셔서 간단한 사용법을 봅니다.
그리고, 펄 쿡북을 사십시요. ^^;

책 두권을 사야겠다라고 하면 perl 프로그래밍 책과 펄 쿡북을 사십시요.

책은 사기 싫다면, 펄사용자모임과 CPAN을 방문하십시요.

PeakStream: GPU를 이용한 범용 수치연산!

MPR 10/2일자에 PeakStream이라는 재미있는 라이브러리(플랫폼?)에 대한 내용이 있어서 좀 살펴봤습니다.
PeakStream이라는 회사의 플랫폼은 GPU를 이용하여 범용 수치 연산을 하기 위한 여러가지 방법(API)을 제공하는 것인데요.. 상당히 재미있습니다.

다음 그림은 peakstream의 아키텍쳐를 보여주는데, 간단히 설명드리자면 연산량이 많은 응용분야에서 peakstream의 API를 써서 프로그래밍하고, 이것이 현존하는 GPU에 연산기능을 mapping해서 병렬 연산을 한다는 구조입니다.

”]현재 가장 빠른 GPU의 경우 가장 빠른 dual core x86 CPU보다 7배 이상의 부동 소수점 연산 성능을 지니고 있는 괴물이라고 합니다[출처: MPR 06/10/2]. 게다가 peakstream 백서에서는 그 격차가 매년 2배씩 벌어지고 있다고 합니다. peakstream은 다양한 부동 소수점 연산에 GPU의 성능을 쓰자는 아이디어를 구체화시킨것이라 할 수 있습니다.

Today, the CPU with the best floating point performance is the dual-core Intel Xeon 5160 which offers 48 gflops of single precision floating point performance. In contrast, the commodity high-end  GPU offers 360 gflops of single precision floating-point performance  and more than 50 GBytes/s of bandwidth to local memory. The computational performance growth rate for GPUs over the last few years has exceeded 2x per year. [Hanrahan05]

사실, Nvidia에서는 강력한 쉐이더를 이용해서, 물리 연산을 하는 방법을 제시하고 있으니 아주 새로운 아이디어는 아닙니다만, 쓰기가 쉽지만은 않습니다.
하지만, (예제로 나온)peakstream 코딩은 단지 기존의 부동 소수점 연산을 단지 해당 API에서 제공하는 연산 함수로만 바꾼듯 한 모습을 지닙니다. 즉, 포팅이 아주 쉽다는 것이지요. 지원하는 컴파일러도 GCC, intel compiler, matlab과 같이 많이 사용하는 환경에서는 모두 가능하고 말입니다.

아직까지는  ATI R580 프로세서(X1900 series라네요)만 지원하고 있으며, 하나의 프로세서만(즉, cross-fire 환경을 지원못한다는 말이죠) 사용할 수 있는데, 이 회사가 만들어진것이 2005년 2월, 수면 위로 떠오른것이 2006년 9월이니 이후의 일들을 더 기대해도 될 것 같습니다.

제가 얼마전에 멀티프로세서 환경에서 소프트웨어가 중요하다는 글을 쓴적이 있는데, 소프트웨어 부분에서도 분발하고 있군요.

p.s. 오랫만에 11시 이전에 집에 온 기념 포스팅입니다. ㅠㅠ;

접시딲이

요즘 이 동네 말로 접시딲느라고 정신이 없습니다.

신화속의 세계에 빠지지 않으려 노력하면서 정신없이 접시딲고 있습니다.
사실, 잘 먹고 접시를 깨끗히 하는 것도 분명 중요한 일이겠습니다만, 정말 닦기 싫을때가 있습니다.
내가 먹은 접시가 아닐때.. 그 접시를 쓰기도 싫을때..
그래도, 도와주기로 했으니 열심히하고 있습니다만.. 다른 사람의 접시를 닦는 일은 고달프기만 합니다.

가끔 흉하게 얼룩진 곳을 찾아서 깨끗해지면, 마음이 즐겁고 재미도 있습니다만… 대부분 찾아지지도, 닦이지도 않으니 문제인 것이죠..

곧 다시 좋은 글을 적도록 하겠습니다.