돈과 명예, 두 마리 토끼를 잡는「코딩」

일반입력 :2006/05/03 23:57

Tom Krazit

라스베가스에는 많은 타이틀 전이 열리지만 2006년 탑코더오픈(TopCoder Open)에 참가하려고 이번 주에 도착하는 64명의 본선 진출자들의 컴퓨터 키보드 소리로 가득 찰 것이다. 15만 달러의 상금을 거머쥘 수 있는 코딩 콘테스트는 전 세계에서 가장 재능 있는 개발자들의 관심을 끌었다. 수요일에 알라딘(Aladdin) 호텔에서 2006년 탑코더오픈의 본선(The finals)이 시작된다. 몇 달 동안 수천 명의 개발자들이 두 가지 방법으로 대결하게 될 본선에 진출하기 위해 온라인에서 경쟁했다. 슬로바키아 태생이며 "Misof"라는 ID(the coding handle)를 사용하는 미카엘 포리세크(Michal Forisek)는 1등으로 본선에 진출했다. "Natori"로 잘 알려졌고 국제적인 코딩 스타인 일본의 나토리 신(Natori Shin)도 본선에 진출했다. 약력에 적힌 나토리의 꿈은 MS, 썬마이크로시스템즈, 애플컴퓨터, 어도비시스템을 사서 제품의 소스를 공개하는 것이다. 그리고 "Visualage"로 알려진 중국의 키 류(Qi Liu)는 꽤 작은 거북이 로고를 만들면서 프로그래밍을 시작했다고 한다.제 1 스폰서인 AMD는 소위 멀티코어 개발 전략이라고 하는 것을 홍보하기 위하여 "프로그래밍 콘테스트의 메이저리그"를 자청하는 탑코더(TopCoder)를 후원한다.인텔은 매월 개최되는 탑코더의 온라인 콘테스트를 후원한다. 여기에 참가하는 개발자는 멀티코어 칩이나 멀티 쓰레드로 동작하는 프로세서를 사용하는 시스템에서 프로그래밍 기술이 강조되는 문제를 풀기 위해 경쟁한다. 탑코더 임플로이먼트서비스(TopCoder Employment Service)의 부사장 조지 치폴리티스(George Tsipolitis)는 "해결 방법을 찾아가는 것은 매우 재미 있을 뿐만 아니라 매우 교육적이기도 하다"고 말했다. 치폴리티스는 탑코더의 콘테스트를 진행하는 동안에 제출된 코드를 필립모리스에서 ESPN까지 고객을 가리지 않고 판매하는 일을 담당한다.탑코더는 당연히 콘테스트로 유명하다. AMD와 인텔 같은 회사는 자신의 제품을 개발자에게 홍보할 뿐만 아니라 멀티쓰레딩 프로그래밍 기술을 더 많이 교육할 수 있는 기회라고 생각한다. 현재 칩 회사들은 앞으로 멀티코어 프로세서에 주력하기로 결정했다. 그들은 소프트웨어 개발자들이 습관을 바꾸어 듀얼코어 이상의 시스템에 적합한 코드를 작성하도록 유도해야 한다. 확실히 변화된 점이 있다. PC 소프트웨어의 속도는 인텔과 AMD가 주도하는 더 빠른 클럭 속도에 달려있었다. 프로그램은 하나씩 차례대로 처리하는 순차적인 방식으로 작성됐고 코드를 최적화하지 않아도 칩이 빨라질수록 프로그램의 성능은 향상됐다.그러나 작년에 MS의 한 개발자가 멀티코어 프로세서가 보급되도록 이 무임승차에 제동을 걸었다. 고속의 단일코어 프로세서는 시스템 개발자가 감당하기엔 너무 많은 열을 발산한다. 그래서 인텔과 AMD는 단일코어보다 느린 클럭으로 동작하는 듀얼코어 칩을 판매하고 있다.머큐리리서치의 애널리스트 딘 맥캐런(Dean McCarron)은 싱글 쓰레드로 작성된 소프트웨어는 단일코어 칩보다 클럭 속도가 느린 듀얼코어 칩에서 다소 느리게 동작한다며 "만약 소프트웨어가 현재 판매되고 있는 PC에서도 동일한 성능으로 동작하려면 병렬처리가 필요하다"고 말했다. 이것은 소프트웨어가 순차적이 아니라 병렬로 동작하도록 독립적인 쓰레드나 인스트럭션의 스트림(streams of instructions)으로 작성돼야 한다는 것을 의미한다. AMD의 소프트웨어 전략과 연합 그룹의 이사 리처드 핀레이슨(Richard Finlayson)은 적어도 PC에서는 소프트웨어 개발을 다른 관점에서 바라보는 것이 필요하다고 말한다.. 그는 멀티프로세서 서버와 워크스테이션용 애플리케이션은 수 년 동안 병렬처리 방식으로 설계되어 왔지만 "데스크톱 애플리케이션에서는 이제 막 시작"이라고 말했다. 인텔의 마케팅/비즈니스 개발 담당 이사인 제임스 라이더스(James Reinders)는 전산학과의 교육과정 초반부터 멀티쓰레딩 전략을 좀 더 강조할 필요가 있다며 "우리는 이것이 사람들이 생각하는 기본적인 방식이 되어야 한다고 확신한다. 첫 과목에 포함될수록 좋다"고 말했다.핀레이슨은 멀티쓰레딩이 2006 탑코더오픈에서 준결승전의 한 분야가 될 것이라고 말했다. 참가자들은 알고리즘, 컴포넌트 설계, 컴포넌트 개발 같은 몇 가지 분야로 나뉘어 경쟁한다. 각 분야별로 승리자가 있지만 한 사람이 하나 이상의 분야에 참가하여 자신의 승수를 늘릴 수 있다.탑코더오픈은 탑코더가 모든 콘테스트를 개최하는 일년에 한번 있는 행사이다. 온라인 콘테스트는 매달 개최되고 참가자는 탑코더의 직원이 제출한 문제를 해결한 코드를 탑코더에 제출하고 최상의 결과를 얻어내기 위해 콘테스트 중간에 몇 번이고 코드를 수정할 수 있다. 인텔 소프트웨어 네트워크의 관리자 스콧 헤이(Scott Hay)는 인텔은 자사의 직원이 심사한 문제를 개발자들에게 제시하는 방법으로 매달 개최되는 콘테스트에서 멀티쓰레딩 개발을 후원하고 있다. 탑코더의 사이트에는 약 8만 명의 개발자가 등록되어 있다. 속도, 정확성, 그리고 다른 요소를 기준으로 순위와 등급을 매긴다. 미국 출신이 3,5000명 이상으로 가장 많고 인도 출신은 12,720명 그리고 중국 출신이 4,462명이다. 그러나 개발자들이 획득하는 평균 등급의 관점에서 보면, 러시아 연방의 개발자가 탑을 차지하고 있고 폴란드와 중국 출신 개발자가 뒤를 쫓고 있다. 인도 개발자는 가장 낮은 등급을 차지하고 있고 미국 개발자가 뒤에서 두 번째다.탑코더의 개발자 중 98%가 남성이고 평균 연령이 18에서 23사이로 학생이 절반 이상이다.그러나 탑을 차지하여 국제 프로그래밍 스타나 다크호스가 될 콘테스트의 승리자는 누구도 예측할 수 없다. @탑코더오픈의 본선에 진출한 사람의 사진과 토너먼트 정보를 보려면 여기를 클릭하라.