'일상'에 해당되는 글 1건

  1. 2008.12.24 [155일째] 코드 첫번째 버전 완성. 4
[12/23/08]

1.  그간 여러 일들이 있었다. 11월말에 성균관대 이상원 교수님이 SIGMOD'09 submission을 위해 잠시 다녀가셨다. 덕분에 미국에 와서 처음으로 양식을 먹게 되었다.  얘기하시는 것을 잠깐 들어보니 SIGMOD'07부터 계속하시는 Flash memory DBMS 관련한 주제로 논문을 쓰신 것 같다. 영균이는 방학을 맞아 한국에 여친 보러 갔다. 1/12에 돌아온댄다.

2.  미국의 기름값이 무척 싸졌다. 1갤론=3.789리터에 $1.55 달러까지 내려갔다. 아파트하고 학교간 거리가 가까워서 기름을 한달에 한번밖에 안넣지만...씁.. 핸드폰 고장났다. 화장실에서 용변보면서 만지작 거리다가 SIM 카드를 건드렸는지, 자꾸 비번을 요구하길래 머릿속으로 생각난 번호 몇개를 넣어봤더니, 비번 입력 오류 초과라면서 아예 먹통이 되어버렸다. 이젠 켜지지도 않는다. 아직 안 쓴 통화료가 $100정도 들어있는데... 언제 AT&T 지점에 가서  물어봐야겄다.

3. 내가 고안한 알고리즘의 첫 번째 코드를 완성하였다. 문 교수님이 요구하신대로 C++ 코드로 Linux 환경에서 작성하였고, 몇가지 예제 데이터들을 대상으로 알고리즘의 completeness를 확인하였다. 문 교수님께서 VLDB submission이 얼마 남지 않았으니, 빨리 일을 진행시켜 보자고 하신다. 

여기와서 첫번째로 제안해서 수행하는 과제로 난 XML 질의 처리, 그 중에서도 Holistic twig join상에서의 성능 개선을 위한 2가지 방법을 제안했는데, 그에 대한 실험을 이제 할 수가 있게 되었다. 일단 몇가지 예제 테스트 데이터 셋을 가지고, 돌려본 결과 괜찮은 듯 싶다. 좀더 큰 테스트 데이터를 가지고 테스트를 해봐야 할 것인데, 일단 DBLP 460여메가, TREEBANK 83메가, XMark 113메가 짜리를 가지고 실험을 수행하려 한다. 

실험에서 비교할 rival들로는 일단 Nicolas Bruno가 SIGMOD'02에 발표하였던 TwigStack와 PathStack이 있겠고, 다음으로는 Praveen이 보내준 TSGeneric+ 이 우선 되겠다. 나중에 논문 내고 나면, 비교 대상들이 꽤 오래된 코드들이 아닌가라는 지적도 있을 듯 싶어, Jiang Lu에게 따로 이메일을 보내 이 친구가 VLDB'05에 발표했던 TJFast 의 코드도 받았다.   또 Praveen의 PRIX 도 다른 스택 기반의 홀리스틱 조인 기법과는 차이가 있지만, 비교 대상에 넣어보는 것도 괜찮을 듯 싶다. 이제 80일 남은 submission을 위해 막바지 작업을 진행해야지. 하지만, 몇가지 문제가 있는 것이 일단 Bruno의 TwigStack 알고리즘이 XB-tree를 메모리 상에서 구현해 놓고 디스크 상에서 동작하도록 만들어 놓지 않았기 때문에, 이를 직접 비교하기가 어렵다. 때문에 예전에 Praveen이 GIST Library를 이용해서 disk-resident B-tree로 다시 구현을 해놓았는데, 이놈의 GIST library가 G++ 2.9.5로 컴파일이 된다는 거다. Fedora 10에서 기본 제공하는 g++ 버전이 4.3.2, compatibility package의 버전도 3.4.6. 이 둘로는 라이브러리가 컴파일이 안되어서, 혹시나 하고 G++ 2.9.5를  컴파일시켜서 설치를 시킬려고 해봤더니 또 안된다. 인터넷을 뒤져보니 ISO C++ 표준을 제정함에 따라 C++의 grammar와 표준 라이브러리 이름들이 많이 변했다는데, 이들 간의 호환이 안되는거다. compatibility package또한 3.4,6인지라, g++ 2.9.5 환경에서 개발된 GIST 라이브러리는 컴파일이 안된다.
행여나 싶어 G++ 2.9.5를 내장한 이전 리눅스를 찾아보았더니 Fedora4가 이를 포함하고 있었다. 그래서 Fedora4로 OS를 다운그레이드 시켜볼까 하고 찾아봤더니 Fedora 7 이하는 FTP archive에서도 다 날려버렸더라. 이래저래 컴파일시 에러메시지들 찾아보면서 GIST 라이브러리를 고쳐서 쓰던가. 아니면 Praveen이 손본 TwigStack의 코드에서 GIST를 빼버리고, 다른 B-트리 코드를 끼워넣던가 해야한다. TJFast는 또 Java로 작성되어서, 문교수님과 상의한 바에 따라 Java Native Compiler로 바이너리 코드를 만들어 내어 비교를 해주어야 한다. 이래저래 실험하려면 아직 준비할 것들이 많다.


 좀더 일찍 코딩을 마칠 수 있었으면 좋으련만..알고리즘 고안은 10월초에 다 끝냈는데, C++ 에 익숙치 않아서 코딩하는데 시간을 많이 보내버렸다.  한국에 있었을 때는 분업화된 랩 분위기에 맞추다보니 고년차가 되면서 코딩을 안하게 되었고,  거기다가 연구소에 있었을 때도 Java 코딩만 했으니.. 심규석 교수님 말씀대로 전산학도는 자기가 고안한 알고리즘을 직접 코딩해서 그걸 눈으로 확인할 수 있는 코딩 실력은 갖추어야 한다는 말이 절실하드만..
아무튼 몸은 고되지만 코드가 완성되어서 내 머릿속에서 생각했던데로 실제로 동작하는 것을 눈으로 확인하는 과정은 매우 즐겁다.  내가 한국의 대학원과 연구소에 있었을 때 이런 일들을 얼마나 하고 싶어했던가...  알고리즘을 작성하고, 그걸 구현해서 실험을 하고, 그 결과를 논문으로 완성시키는 이 단계를... 여기에 와서라도 이런 연구를 할 수 있게 되었으니 그나마  다행이다 싶지만, 한편으로는
한국에서는 이러한 연구를 하지 못하게 만드는 실정이 몹시 안타깝구나. 지나가버린 내 아까운  황금같은 청춘의 시간들이여~~
Posted by Bart