한 개인의 능력의 한계는 과연 어디일까? 취미로 하던 일이 인텔의 한 개발팀이 이루어낸 업적을 능가한 '카즈시게 고토'라는 한 명의 프로그래머가 있다.
일반적으로 '슈퍼컴퓨터'하면 기상청에서 날씨예측하는데 사용하는 거대한 컴퓨터라고 알고 있다. 실제로 슈퍼컴퓨터는 화학, 원자력공학, 기계공학, 토목공학, 항공공학, 경제학 등 우리가 생각하는 이상으로 다양한 영역에 사용되고 있는데 그 모든 응용분야의 공통점은 '과학계산'(scientific computation)이다. 그리고, 그 계산의 상당 부분은 행렬(matrix)계산이다. 행렬계산을 얼마나 빨리 할 수 있는가가 바로 슈퍼컴퓨터의 성능을 좌우할 정도로 중요한 요소이기 때문에 슈퍼컴퓨터를 만드는 회사에게는 이 계산을 얼마나 최적화하는냐가 죽는냐 사느냐의 문제다.
슈퍼컴퓨터분야는 응용 프로그램의 호환성을 위해서 '행렬계산함수 표준'(BLAS)을 정했다. 그리고, 각 슈퍼컴퓨터 회사는 그 '행렬계산함수 표준'을 구현한 제품을 내 놓는다. 이런 제품중에 유명한 것들이 IBM ESSL, INTEL MKL 이 있는데, 경우에 따라서 이런 제품들 보다 성능이 더 좋은 무료 제품이 있다. Goto BLAS가 바로 그것인데 진짜 놀라운 것은 이것을 한 개인이 취미생활로 시작해서 만들어 냈다는 것이다.
세계에서 가장 빠른 11대의 슈퍼컴퓨터중에 4대가 바로 이 고토씨의 프로그램을 이용해서 성능을 측정한다.
'카즈시게 고토'씨는 특허청에 다니는 평범한 공무원이었다. 다만, 뭔가 최적화하는 것에 강한 흥미를 가지고 있었다. 출퇴근시에 지하철에서 노트에 최적화에 대한 아이디어를 정리하고 어셈블리 언어로 그것을 구현하는 일이 취미다. 그리고, 그 결과를 인터넷에 올리고 사람들에게 공개했다. 이런 취미 생활의 결과로 아내, 아이와 같이 3식구가 사는 조그마한 아파트에는 무려 9대나 되는 컴퓨터가 있었으나 한 번도 9대를 동시에 킨적이 없다. 그러면 집 전체가 정전이 되버리기 때문이다.
![Sample of Kazushige Goto's handwritten code](http://www.utexas.edu/features/2006/goto/graphics/goto2.jpg)
때마침 특허청이 새로운 기술에 대한 이해도 하고 영어공부도 할 수 있게 직원에게 1년간의 안식년을 주었다. 고토씨는 평소에 취미삼아 하던 최적화를 좀 더 본격적으로 파고 들고 싶었다.
![He is a world-class resource. --Dr. Mark Seager, Lawrence Livermore National Laboratory](http://www.utexas.edu/features/2006/goto/graphics/goto_pull2.gif)
고토씨는 안식년이 끝나고 2003년 6월 30일 일본으로 돌아가서 특허청직원으로 다시 일상적
![Yes, my action is really risky, but I just wanted to try the new job. --Kazushige Goto](http://www.utexas.edu/features/2006/goto/graphics/goto_pull3.gif)
지금도 슈퍼컴퓨터를 사용하는 많은 프로그램이 여전히 고토씨의 프로그램을 사용하여 개발되고 있다. 그가 '마이크로 소프트'에서 무슨 '사고'를 칠지 사뭇 기대가 된다.
개인의 '순수한 열정'과 '끝임없는 노력'이 고토씨에게 이렇게 거대한 부와 명성을 가져다 주게 될줄은 출퇴근 하던 지하철에서 노트에 어셈블리 언어로 프로그램을 하던 시절엔 고토씨 조차도 알지 못했을 것이다.
우리가 쫓아야 하는게 진정 무엇인지 다시 한 번 일깨워주는 사람이다.
참고자료
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