brunch

You can make anything
by writing

C.S.Lewis

by 서진호 Aug 26. 2021

병렬(Parallel)의 미학 1

첫번째 이야기. 여러개의 두뇌를 가진 컴퓨터

  그 어느 때 보다 빠르게 인간의 기술은 발전하고 있다. 반도체, 우주 공학, IT, 생명 등 분야를 가리지 않고 무서운 속도로 가보지 못한 영역에 도전하고 있다. 그런데 하루가 다르게 발전하고 있는 이 기술들을 하나하나 따라가다 보면 눈에 자주 띄는 패턴이 있다. 병렬(Parallel) 구조가 그 주인공이다. 한 명의 사람 혹은 하나의 기계가 하기에는 힘든 일을 다수의 사람 혹은 다수 기계가 함께 하여 해결하는 너무나도 단순한 구조로 시작한다. 하지만 병렬의 힘은 여기서 끝나지 않는다. 단순히 머릿수를 늘린 것으로 끝나지 않고 이제까지 보지 못한 새로운 영역에 도전한다. 곳곳에서 수많은 혁신을 이루고 있는 병렬의 미학을 이야기해 본다.

사진1. 64개의 코어를 가지고 있는 멀티코어 CPU (출처 : AMD)

멀티 코어 CPU. 여러개의 두뇌를 가진 컴퓨터


  맛있는 파스타 집의 주방. 주방장 John이 열심히 파스타를 만들고 있다. 3년 전 그가 처음 가게를 열었을 때는 10분에 한 접시를 만들었다. 속도는 조금 늦지만 그의 음식은 맛있었다. 덕분에 점점 많은 손님들이 찾아왔고 다행이도 그의 실력도 함께 늘어갔다. 지금은 5분이면 파스타 한접시가 서빙이 된다. 하지만 이제는 노력해도 시간이 줄어들지 않는다. 늘어나는 손님에 그는 초보 요리사 3명을 고용했다. 다시 시간은 느려졌지만 John은 이제 10분에 4접시를 손님들에게 제공한다.


Chapter1. 그 이전의 이야기. 언제나 사람람들은 빠른 CPU를 개발하기 위해노력했다.


  컴퓨터는 많은 부품들로 이루어져 있다. 그 중 핵심적인 두뇌 역할을 하는 부품을 우리는 CPU(Central Processing Unit)라고 부른다. 컴퓨터가 파스타 집이라면 CPU는 주방장 John의 역할을 한다. 요리를 하는 대신 기억, 해석, 연산, 제어라는 4대 주요 기능을 담당하고 있다. 이 CPU의 처리 속도가 빨라질 수록 당연히 컴퓨터의 속도는 빨라진다.

  CPU의 처리 속도를 높이기 위한 일반적인 방법은 연산 속도의 기본이 되는 클락(Clock)을 높이는 것이었다. 여기서 클락은 1초에 신호가 on/off 되는 횟수. 마치 방의 불을 1초에 몇번 끄고 킬 수 있는지를 의미한다. 지금의 일반적인 가정용 컴퓨터 CPU의 클락수는 약 1~4Ghz이다. 약 1초에 1000000000번 정도 끄고 킬 수 있는 것이다. 실제 방불을 이렇게 빨리 끄고 킨다고 해서 달라질 것은 없다. 하지만 CPU는 한번 불을 끄고 킬때 마다 상태가 바뀌게 된다. 마치 한 번 깜박거릴때마다 수학문제가 하나씩 풀려나가는 마법같은 문제집이다.

  사람들은 당연히 이 클락수를 높히기 위해 많은 노력을 하였다. 하지만 지금의 1~4GHz는 2000년대 초 이미 이룩한 숫자다. 2002년 대표적인 CPU 제작사인 Intel사의 펜티엄4 CPU가  2.8Ghz 영역대에서 동작할 수 있었다는 것을 생각하면 약 20여년이 지난 지금과도 크게 다르지 않은 것을 알 수 있다. 물론 내부 아키텍처의 발전과 FSB(Front side bus)등의 차이까지 따지자면 지금의 CPU와 같은 클락에서도 상당한 성능차이를 보이겠지만 그 클락수 만큼은 지금과 비슷하다는 것은 부정할 수 없다.

  그렇다면 약 20년 동안 CPU는 어떠한 방향으로 발전을 한 것 일까? 우리는 여기서 병렬의 미학을 찾을 수 있다. 2002년 이후로도 Intel은 CPU의 클락을 높이기 위해 많은 노력을 했지만 곧 발열 문제에 부딪히고 만다. 2004년에 출시된 3세대 펜티엄4(프레스캇)은 지독한 발열 문제로 악명이 높다. 이후 CPU 제조사들이 시장에 내놓은 답은 병렬 구조다.


Chapter2. 본격적인 병렬화의 시작 : 멀티코어 CPU의 보급. AMD와 Intel의 싸움.


  주방장 John이 여러명의 초보 요리사를 고용한 것 처럼 처리 속도가 느리다면 여러개의 CPU를 컴퓨터에 넣으면 되는 것이다. 얼마나 간단하면서 당연한 해답 일까. 이미 병렬의 아이디어는 1970년대 이후로 부터 최고의 컴퓨팅 성능을 요구하는 슈퍼컴퓨터 분야에서는 많이 사용되었다. 당연히 하나로 부족하면 많이 넣으면 되는 것이다. 그렇다면 일반 보급형 PC에도 여러개의 CPU넣으면 되지 않을까. 하지만 현실은 그렇게 녹록치 않았다. 다수의 CPU를 연결하고 관리해야하는 제반 기술은 일반적인 보급형 PC에 적용하기에 너무 고가의 기술이었다. 물론 여러개의 CPU비용도 상당했다.

  그래서 그들은 답을 찾았다. 하나의 CPU안에 여러개의 CPU를 넣어버린 것이다. 무슨 작아지는 마법이 있는 것도 아니고 이게 어떻게 가능했을까? 정답은 작아지는 마법이 있었다. 반도체 공정이 무서운 속도로 발전함에 따라 인간은 더 작고 세밀하게 반도체를 설계할 수 있었고 기존의 CPU크기에 여러개의 CPU를 넣을 수 있었다. 우리는 여기서 하나의 CPU역할을 하는 부분을 코어라고 부르고 이러한 여러개의 CPU를 합친 구조를 멀티 코어 구조라고 부른다.


  P.S. 하나의 CPU안에 여러개의 CPU를 품게 되었다. 때문에 John의 이야기와 CPU를 비교하자면 정확히는 John이 초보 요리사를 3명 더 고용한것 보다는 John의 팔이 8개가 된게 더 정확한 비유일 것이다.


  보급형 PC에 사용할 수 있는 멀티 코어 CPU는 흔히 2005년 출시된 Intel의 펜티엄D 모델과 경쟁사 AMD의 Athlon 64 X2를 이야기 한다. 바야흐로 멀티 코어의 시대가 열린 것이다. 시작은 AMD가 우세한 듯 보였다. 인텔의 펜티엄D는 그 내부를 보면 3세대 펜티엄4인 프레스캇을 2개 붙인 듀얼 코어의 형태이다. 앞에서 이야기 한 듯 엄청난 발열 문제를 가지고 있던 프레스캇을 2개 붙인 형태라고 하면 그 뒷 이야기는 상상에 맡기도록 한다. AMD의 Athlon 64 X2도 마찬가지로 엄청난 전력을 소비하긴 했지만 인텔 펜티엄D가 그 상상을 뛰어 넘었기 때문에 발열 싸움에서도 승리를 하고 처음 기획부터 멀티코어를 염두에 두었기 때문에 단순히 기존 CPU를 두개 붙인 Intel보다 압도적인 성능을 보여주었다. 그렇게 AMD가 멀티 코어 시장의 패권을 쥐는 듯 보였다.

  하지만 2006년 Intel이 출시한 Core2 Duo 제품은 모두의 예상을 뛰어넘어 진정한 멀티 코어의 시대를 알리는 제품이 되었다. 기존 설계에서 벗어나 새로운 멀티 코어에 최적화된 Core(코어) 아키텍처를 적용함과 동시에 여러 새로운 기술들을 적용 하였고 특히 L2 캐쉬 공유가 그 방점을 찍었다. 캐쉬는 CPU가 처리하는 데이터를 저장하는 공간인데 이 공간을 서로 공유한다는 것은 마치 John의 주방에서 요리사들이 자주 쓰는 소스와 재료를 주방안에 두고 같이 쓰는 것과 같다. 매번 주방 밖 펜트리에서 가지고 올 필요 없이 가깝게 두는 것이다. 필요하다면 소스를 새로 만들어서 같이 쓰라고 두기도 한다. 이런 L2 캐쉬 공유는 Core 2 Duo가 시장을 장악하는데 큰 역할을 하였고 이후 Intel의 Core i 시리즈는 멀티코어 시장에서 Intel의 힘을 굳건히 해주었다.

  이후 성능에서 밀리게된 AMD는 낮은 가격 정책을 펼치게 되었다. 그렇게 저가형 브랜드 이미지와 함께 AMD의 기술은 쇠퇴하기 시작했다. AMD의 추락은 계속되는 듯 하였다. 하지만 장장 15년의 Intel 독주 체제가 지속되고 화려한 복수를 꿈꾸던 AMD는 젠 아키텍처라는 진보된 CPU 기술과 함께 Ryzen시리즈로 보란듯이 PC시장의 메인무대에 복귀를 하였다. 그 결과 지금은 점유유를 엎치락뒤치락 하며 AMD과 Intel의 끝나지 않을 싸움을 이어가고 있다.


Chapter3. 병렬의 미학, 멀티 코어 CPU의 발전과 새로운 접근

  컴퓨터 두뇌의 병렬화, 멀티코어의 등장은 PC의 성능을 끝없이 발전시킬 새로운 힌트를 주었다. 화려한 게임의 그래픽, 빠르게 돌아가는 인터넷, 고화질의 동영상 재생, 영상 편집, 기계 설계 이 모든 것들이 가정용 PC에서 가능하다. 여기서 한 가지 궁금증이 든다. 과연 멀티 코어는 컴퓨터의 속도만 빠르게 해주었을까. 단지 동시에 여러개의 프로그램을 실행하고 수많은 계산들을 빠르게 처리해 주기만 하는 걸까. 병렬의 미학. 멀티코어가 가능하게한 새로운 아이디어들을 소개한다.   


불량품 판매. 멀티 코어 CPU의 새로운 판매 전략

  불량품도 제품이 된다. 반도체 칩은 눈에 보이지 않는 수많은 구조들을 깎고 쌓아올려 만드는 칩이다. 너무나도 작은 세계에서 만들어 지기 때문에 티끌하나 먼지하나만 들어가도 이네 불량이 되고 만다. 반도체 라인의 사진들을 보면 사람들이 모두 흰색 옷에 마스크와 모자를 쓰고 있는 것도 이러한 이유이다. 이렇게 까다로운 만큼 실제 제작시 불량품도 많이 발생을 한다. 싱글 코어의 CPU라면 불량이 발생했을때 여지없이 버려야 될 것이다. 하지만 멀티코어는 다르다. 목숨이 여러개다. 만야 4개의 코어 중에 하나가 불량이 났다. 이럼 회사에서는 이 하나의 연결을 끊어버리고 코어 3개짜리 제품으로 저렴한 가격에 판매한다. 소비자는 다양한 제품을 선택할 수 있게 되고 회사는 불량에 의한 손실을 최소화 할 수 있는 것이다. 2021년 새로 출시한 Apple의 M1 칩이 7코어, 8코어 제품으로 가격에 따라 나뉘게 된것도 같은 전략이지 않을까.   


카카오톡은 작은 놈. 게임 할때는 큰 놈. 멀티코어 저전력 기술 big.LITTLE 구조

  컴퓨터가 무선이 되었다. 노트북, 스마트폰, 타블랫 등 지금의 우리는 무선 컴퓨터가 오히려 익숙한 세대가 되었다. 컴퓨터가 안전하게 콘센트에서 전기를 먹다가 밥줄이 끊겨버리자 공학자들은 저전력 구조를 찾기 시작했다. 다양한 방면에서 저전력 기술들을 연구하고 개발하였고 멀티 코어 구조더 크게 한 몫을 했다. 스마트폰용 모바일 CPU를 전문적으로 설계하는 ARM사의 big.LITTLE 구조다. 아이디어는 단순하다. 예를 들어 코어가 2개짜리인 CPU가 있다. 코어 2개 중 하나는 느리지만 전기를 적게 소비하는 작은 코어로 만든다. 나머지 하나는 빠르지만 전기를 많이 소비하는 큰 코어로 만든다. 자 이제 사용자가 스마트폰을 켰다. 카카오톡을 한다. 지금은 작은 코어를 쓰고 있다. 속도가 느리지만 카카오톡을 처리하기에는 충분하다. 이야기를 다 끝낸걸까? 새로 출시한 게임을 다운 받고 있다. 게임을 켰다. 이제는 큰 코어의 일을 할 때다. 이렇게 우리의 베터리는 오늘도 아껴지고 있다.   

AMD의 big.LITTLE 특허 중 일부 (출처 : AMD)


PC가 로봇도 움직인다. 멀티코어 기반의 실시간 운영체제 기술

  반도체 공장, 자동차 공장, 디스플레이 공장 수많은 공장들에 가보면 요즘은 사람보다 로봇이 많은 것 같다. 그렇게 수많은 로봇들은 조금은 특별한 컴퓨터로 제어가 된다. "실시간성"이 보장이 되는 컴퓨터다. 컴퓨터가 잠시 느려지거나 먹통이 되는 경험은 누구나 일상에서 흔할 것이다. 잠시 짜증이 날수도 있지만 이내 다시 움직이면 뭐가 대수 일까. 하지만 로봇들에게는 심장이 멈춘것과 같다. 그래서 우리는 실시간성이 보장이 되는 컴퓨터를 로봇을 제어할때 사용한다. 그래서 이러한 분야는 전통적으로 PC의 영역이 아니였다. 하지만 멀티코어가 이 한계를 뛰어넘게 해주었다. 코어별로 분업을 시킨 것이다. 여러개의 코어 중 일부는 아예 별도로 움직이며 이러한 실시간 처리를 하게 한다. 나머지 코어에서는 우리가 흔히 알고 있는 윈도우, 리눅스 등의 운영체제를 실행시켜 일반 PC를 사용하는 듯한 경험을 하게 한다. 새로운 기계를 배울 필요 없이 매일 같이 쓰는 컴퓨터에서 로봇까지 제어를 할 수 있는 것이다. 이러한 아이디어는 기존 로봇 자동화 시장에 PC가 진출 할 수 있게 해주었고 대표적으로 Beckhoff, IntervalZero 등의 회사들이 성공적으로 사업을 하고 있다.

IntervalZero 사의 제품 소개 사진 (출처 : IntervalZero.com)

  컴퓨터를 발전시키고자 하는 끝없는 인간의 도전과 노력은 매일매일 우리가 보지 못했던 영역을 넓혀주고 있다. 이러한 컴퓨터의 발전 속에서 우리는 병렬의 패턴을 찾았고 병렬의 미학을 관찰했다. 처음에는 단순히 여러개의 두뇌를 합치는데 병렬이 주는 아름다움은 단순히 여럿이 모여 더 많은 일을 처리할 수 있다는 일차원적인 원리에 있지 않고 여럿이 모였을때 그 전에는 보지 못했던 새로운 가능성이 열린다는 것에 있는게 아닐까.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari