'Kazushige Goto'에 해당되는 글 1건

  1. 2010.11.08 혼자서 인텔개발팀을 버로우시킨 프로그래머! 1
카테고리 없음2010. 11. 8. 06:07


한 개인의 능력의 한계는 과연 어디일까? 취미로 하던 일이 인텔의 한 개발팀이 이루어낸 업적을 능가한 '카즈시게 고토'라는 한 명의 프로그래머가 있다.

The Human Code: Researcher's handcrafted work makes world's fastest computers run even faster


일반적으로 '슈퍼컴퓨터'하면 기상청에서 날씨예측하는데 사용하는 거대한 컴퓨터라고 알고 있다. 실제로 슈퍼컴퓨터는 화학, 원자력공학, 기계공학, 토목공학, 항공공학, 경제학 등 우리가 생각하는 이상으로 다양한 영역에 사용되고 있는데 그 모든 응용분야의 공통점은 '과학계산'(scientific computation)이다. 그리고, 그 계산의 상당 부분은 행렬(matrix)계산이다. 행렬계산을 얼마나 빨리 할 수 있는가가 바로 슈퍼컴퓨터의 성능을 좌우할 정도로 중요한 요소이기 때문에 슈퍼컴퓨터를 만드는 회사에게는 이 계산을 얼마나 최적화하는냐가 죽는냐 사느냐의 문제다.

슈퍼컴퓨터분야는 응용 프로그램의 호환성을 위해서 '행렬계산함수 표준'(BLAS)을 정했다. 그리고, 각 슈퍼컴퓨터 회사는 그 '행렬계산함수 표준'을 구현한 제품을 내 놓는다. 이런 제품중에 유명한 것들이 IBM ESSL, INTEL MKL 이 있는데, 경우에 따라서 이런 제품들 보다 성능이 더 좋은 무료 제품이 있다. Goto BLAS가 바로 그것인데 진짜 놀라운 것은 이것을 한 개인이 취미생활로 시작해서 만들어 냈다는 것이다.

세계에서 가장 빠른 11대의 슈퍼컴퓨터중에 4대가 바로 이 고토씨의 프로그램을 이용해서 성능을 측정한다.

'카즈시게 고토'씨는 특허청에 다니는 평범한 공무원이었다. 다만, 뭔가 최적화하는 것에 강한 흥미를 가지고 있었다. 출퇴근시에 지하철에서 노트에 최적화에 대한 아이디어를 정리하고 어셈블리 언어로 그것을 구현하는 일이 취미다. 그리고, 그 결과를 인터넷에 올리고 사람들에게 공개했다. 이런 취미 생활의 결과로 아내, 아이와 같이 3식구가 사는 조그마한 아파트에는 무려 9대나 되는 컴퓨터가 있었으나 한 번도 9대를 동시에 킨적이 없다. 그러면 집 전체가 정전이 되버리기 때문이다.


Sample of Kazushige Goto's handwritten code

때마침 특허청이 새로운 기술에 대한 이해도 하고 영어공부도 할 수 있게 직원에게 1년간의 안식년을 주었다. 고토씨는 평소에 취미삼아 하던 최적화를 좀 더 본격적으로 파고 들고 싶었다.

He is a world-class resource. --Dr. Mark Seager, Lawrence Livermore National Laboratory고토씨는 텍사스 주립대의 로버트 교수에게 로버트 교수의 랩에서 1년간 연구를 하고 싶다고 메일을 보냈다. 로버트 교수는 고토씨가 '최적화'분야에 어느 정도 업적이 있다는 것을 알게되고 흔쾌히 고토씨를 랩에 초청한다. 텍사스 주립대에서 연구를 시작한 고토씨는 한 달 만에 프로그램의 성능을 10퍼센트나 향상시키는 방법을 구현해냈다. 어떤 프로그램은 고토씨의 방식을 사용하면 성능이 2배로 향상될 정도였다. 로버트 교수는 "고토씨의 단 1년간의 연구 성과가 박사학위 전과정에 해당될 만큼의 거대한 것이며 고토씨는 박사학위 증서 대신 그보다 값진 명성을 얻었다"고 말한다.

고토씨는 안식년이 끝나고 2003년 6월 30일 일본으로 돌아가서 특허청직원으로 다시 일상적Yes, my action is really risky, but I just wanted to try the new job. --Kazushige Goto인 삶을 계속한다. 로버트 교수뿐만 아니라 텍사스 주립대의 여러 연구자는 고토씨와 지속적인 연구를 하기 위해서 고토씨를 다시 초청하려고 설득작업에 들어간다. 고토씨는 고민을 하기 시작한다. 정년이 보장된 특허청을 계속 다닐 것이냐 아니면 위험부담이 훨씬 높지만 하고 싶은 일을 하느냐의 인생 최대의 결단이다. 결국 고토씨는 하고 싶은 일을 하기로 결정하고 텍사스슈퍼컴퓨터센터(TACC)의 연구원직을 수락한다. 고토씨를 설득하는데 장장 18개월이 걸렸다. 고토씨는 텍사스슈퍼컴퓨터센터의 연구실에서 8대의 컴퓨터를 이용해서 프로그램을 개발한다. 여름에는 컴퓨터에서 나는 열 때문에 땀이 날 정도이지만 반대로 겨울엔 이 8대의 컴퓨터가 완전 난로 이상의 역할을 한다고 농담을 한곤 한다. 고토씨는 텍사스슈퍼컴퓨터센터 연구원을 거쳐 현재 '마이크로 소프트'에 재직중이다.

지금도 슈퍼컴퓨터를 사용하는 많은 프로그램이 여전히 고토씨의 프로그램을 사용하여 개발되고 있다. 그가 '마이크로 소프트'에서 무슨 '사고'를 칠지 사뭇 기대가 된다.

개인의 '순수한 열정'과 '끝임없는 노력'이 고토씨에게 이렇게 거대한 부와 명성을 가져다 주게 될줄은 출퇴근 하던 지하철에서 노트에 어셈블리 언어로 프로그램을 하던 시절엔 고토씨 조차도 알지 못했을 것이다.

우리가 쫓아야 하는게 진정 무엇인지 다시 한 번 일깨워주는 사람이다.

참고자료

http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms
http://en.wikipedia.org/wiki/Kazushige_Goto
http://www.utexas.edu/features/2006/goto/index.html

Posted by yggo