현재 듀얼코어 스마트폰이 대세이고 향후 스마트폰도 PC나 기업체에서 사용하는 서버처럼 멀티코어가 장착된 형태가 될 거라고 예상들 하는데 과연 코어가 무한정 늘어난다고 사용자에게 그에 상응하는 경험과 가치를 가져다 주는 건지 의문이 드네요.


PC도 멀티코어가 장착된 제품이 나와있고 기업체에서 사용하는 서버도 멀티코어가 들어간 제품들이 다수 나와있어서 우수한 성능을 가져다준다고들 애기들은 합니다만 무한정 코어를 늘이는 것이 그에 비례해서 성능이 올라가지는 않는 다는 것이 몇 가지 조건을 충족시키지 못해서 그런데 예를 들어 멀티코어를 장착해도 실제로는 프로그램이 늘어난 코어를 최적화해서 사용할 만큼 프로그래밍이 되어있지 않으면 사용자들이 기대하는 만큼의 성능이 안나온다는 게 입증된 사실입니다. 즉, 싱글코어가 10의 성능이라고 할 때 듀얼코어가 되면 산술적으로 20이 되어야 하지만 실제로는 13,14정도 밖에 나오지 않습니다.


우리가 자주가는 마트를 예로 들자면 마트에 한 20명의 손님이 쇼핑을 마치고 계산하려고 계산대에 가는데 계산대가 하나밖에 없으면 20명은 그냥 줄을 서서 기다릴 수 밖에 없지만 옆에 계산대가 하나 추가되면 딱 10명씩 나누어지진 않겟지만 비슷하게 손님이 분산되어 동시에 계산에 들어가니 집에 빨리 갈 수 있지만 컴퓨터에서는 그 작업을 프로그래밍 단계에서 해주어야만 그게 가능합니다.


그런데 컴퓨터에서는 저런 분산이 자동적으로 일어나지 않기 때문에 저와 같은 병렬작업을 프로그램단에서 지원해주어야 하는 데 모든 프로그램이 다 그걸 지원하지는 않기에 실제로 싱글코어가 10의 성능을 가지고 있어도 그게 듀얼코어가 된다고 20이 안되는 결과가 나오게 되는거죠.


오늘 기사를 보니 모 국내업체에서 또 다시 스마트폰 속도경쟁에 불을 붙이는 것 같아서 아직도 하드웨어 성능에만 의존해서 시장점유율을 높힐 수 있다고 생각하는것 같아 참 갈 길이 멀어보이기도 하네요. 마치 내 차는 밟으면 10초만에 100km 나온다 그래도 안사면 이번엔 5초만에 100km간다 뭐 이런식 같아보입니다. 가끔 메이저리그 중계방송을 보면 해설자가 이런 애기를 하더군요. 저 투수는 90마일 중반을 6~7회까지 던지는 투수이다 그리고 어떤 투수는 90마일 후반을 던지지만 5회만 넘어가면 90마일 초반대로 속도가 떨어진다 뭐 이런식으로 말입니다.저 같으면 90마일 중반을 6~7회 까지 유지하는 투수를 선택할 것 같은데 적지않은 사용자들은 90마일 후반을 던지는 투수를 선택할지도 모르겠네요.


100마일을 던지는 투수가 제구가 안되면 무슨 소용이 있겟습니까. 투수의 사전적 의미는 자기가 원하는 곳에 공을 던질 수 있는 능력을 갖춘 사람으로서 단지 던지기만 한다면 그건 Pitcher가 아니라 Thrower겠죠. 사용자들이 Pitcher를 원하는데 자꾸 Thrower만 원하는 경향으로 몰아가는 거 같아서 역시 한국은 하드웨어를 벗어날 수 없구나 하는 생각에 좀 답답하네요..