새로운 컴퓨터 패러다임, 양자 컴퓨터

IT 이슈를 파헤치다|2018.01.15 23:19

Key Point

  • 양자 컴퓨팅이란 무엇인가?
  • 양자 컴퓨터는 어디에 쓰는 건가?
  • 양자 컴퓨터의 현주소
  • 양자 컴퓨터가 미칠 영향


양자 컴퓨팅이란 무엇인가?


양자 컴퓨터는 기존 컴퓨터와는 자료를 처리하는 체계 자체가 다릅니다.

기존의 컴퓨터는 0과 1, 두 개의 값으로 이루어진 '비트'라는 체계로 계산을 수행했습니다.
이와는 달리, 양자 컴퓨팅은 양자 역학적인 현상을 통해 자료를 처리합니다. 자료의 처리양이 기존의 비트가 아닌 큐비트로 측정됩니다.

양자 컴퓨터가 어떻게 자료를 처리하는지 이해하기 위해서는 먼저 큐비트란 무엇인가 이해할 수 있어야 합니다.
큐비트는 양자 컴퓨팅에서 사용하는 양자 정보 단위입니다. 기존의 이진 컴퓨터 체계에서는 0과 1 이진 비트단위로 정보를 처리했습니다. 즉, 디지털 세계에서는 0과 1이 확실히 구분되고 이를 통해서 데이터를 나타냈습니다. 하지만 나노 이하의 세계에서는 불확정성 원리에 의해 0과 1이 동시에 존재할 수 있습니다.

이는 곳 하나의 비트가 0과 1을 동시에 나타낼 수 있다는 것을 의미합니다. 이렇게 양자 세계에서 0과 1을 동시에 나타낼 수 있는 비트를 큐비트라고 지칭합니다.

양자의 불확정성에 대해 좀 더 살펴봅니다. 우리가 알던 디지털 세계에서는 0과 1만이 존재합니다. 하지만 양자의 영역에서는 0과 1이 동시에 존재할 수 있습니다. A라는 물체가 B에 있을 확률이 10%라면 10번중 한번은 B에 있고 나머지 9번은 B에 없다는 것이 일반적인 확률론입니다. 하지만 양자의 세계에서는 B에 존재할 확률이 10%일 뿐 다른 곳에서도 동시에 존재할 수 있습니다.
이와 같은 특성 때문에 한번에 여러가지 상태를 표현할 수 있는 것입니다. 예를 들어, 0과 1 이 두개를 가지고 10, 01, 00, 11 이렇게 4가지의 상태가 가능합니다.

기존 컴퓨팅은 처리 능력을 높이기 위해서 계산 프로세서를 업그레이드하거나 계산 용량을 늘렸습니다. 기껏해야 여러대를 연결해서 N대로 병렬 컴퓨팅을 하는 것이 최선의 방법이었습니다. 하지만 이러한 방식으로는 계산량이 어마어마한 문제를 풀 수 없습니다. 왜냐하면 N대의 컴퓨터를 병렬 연결하면 N배 빨라지기 때문입니다. 이는 곧, 처리할 수 있는 계산량이 선형적으로 늘어난다는 것을 의미합니다.

양자 컴퓨팅은 2개의 큐비트로도 정보 처리 단위가 4입니다. 3개의 큐비트라면 8개의 정보를 한번에 처리할 수 있습니다. 곧, 사용할 수 있는 큐비트가 늘어날 수록 계산할 수 있는 양이 지수 함수적으로 증가합니다.


양자 컴퓨팅은 어디에 쓰는 것인가?

앞서 말했듯이, 양자 컴퓨팅은 정보 처리 단위인 큐비트 수가 많아질 수록 처리할 수 있는 계산량이 지수 함수적으로 커집니다. 그렇기 때문에 문제의 복잡도가 선형적으로 비례하지 않고 지수 함수적으로 증가하는 문제들을 해결하는데 적합하다고 볼 수 있습니다.

양자 컴퓨팅의 등장으로 가장 위험하다고 얘기가 나오는 분야가 바로 암호학입니다. 컴퓨터의 성능을 측정할 때에도 아주 큰 소인수를 분해하는 것으로 측정할 정도로 계산량이 만만치 않습니다. 이 소인수 분해의 난해함을 기반으로 만들어진 것이 현대의 암호화 방식입니다. 하지만 양자 컴퓨팅을 활용하면 이 난해함이 해결될 수 있습니다. 이러한 사실 때문에 구글이나 IBM같은 글로벌 기업이 양자 컴퓨팅에 많은 돈을 투자하는 것입니다.

현재 가장 고성능의 컴퓨팅을 꼽으라면 슈퍼 컴퓨터를 얘기할 것입니다. 양자 컴퓨팅은 슈퍼 컴퓨터의 연산 능력을 훨씬 뛰어넘을 것입니다. 슈퍼 컴퓨터가 고성능이라고 해도 N대를 연결해서 선형적으로 연산 능력이 증가하는 반면, 양자 컴퓨터는 연구 개발을 통해 처리 가능한 큐비트를 1개씩만 늘려도 처리할 수 있는 계산량이 어마어마하게 늘어나기 때문입니다.

양자 컴퓨팅의 현주소


양자 컴퓨터의 상용화는 아직 먼 얘기입니다. 양자 컴퓨터는 슈퍼 컴퓨터가 등장했을 때와 마찬가지로 특수 목적을 위해 사용될 것입니다. 컴퓨팅 방식 자체가 다르고, 어떤 용도로 사용하느냐에 따라 일반 컴퓨터와 성능차이가 크게 나지 않을 수 있습니다. 현재 Microsoft에서 양자 컴퓨터를 시뮬레이션 할 수 있는 Kit를 내놓았으며, IBM에서는 20큐비트 양자 컴퓨터를 상용화 할 계획을 가지고 있습니다.

MS에서 한 발 앞서 발표한 Q#은 양자 컴퓨터에 프로그래밍을 할 수 있는 프로그래밍 언어와 시뮬레이션까지 할 수 있는 개발 도구를 공개했습니다. MS Quantum Development Kit가 바로 그것입니다.

MS Quantum Development Kit는 다음과 같이 구성되어 있습니다.

  • Q# Language and Compiler → Q#은 양자 컴퓨팅에 특화된 컴퓨터 언어입니다. 양자 컴퓨터용 알고리즘을 구현하는데 사용됩니다. Q#을 활용하면 양자 프로세서에서 동작하는 프로그램을 만들 수 있습니다. 이때 양자 프로세서는 기존 디지털 컴퓨터와 프로그램에 의해 제어됩니다.
  • Q# Standard Library → Q#을 활용해 양자 컴퓨터용 알고리즘을 구현하는데 도움을 주는 라이브러리입니다. 또한, 기존 컴퓨터 언어를 통해 제어할 수 있는 연산 및 함수가 포함되어 있습니다.
  • Local Quantum Machine Simulator → 정확한 벡터 시뮬레이션과 속도를 내기 위해 최적화된 시뮬레이터를 제공합니다.
  • Quantum Computer Trace Simulator → Trace Simulator는 Q#으로 구현된 야자 컴퓨터용 프로그램을 실행할 때 필요한 자원들을 측정하는데 사용됩니다. 또한, Q#이 아닌 제어를 위한 코드들을 빠르게 디버깅 할 수 있게 도와줍니다.
  • Visual Studio Extension → Q#용 확장판입니다. Q# 예시 파일들과 프로젝트들이 포함되어 있습니다. 물론 Syntax Highliting도 가능합니다.


양자 컴퓨터가 미칠 영향

양자 컴퓨팅이 보편화되면 기존 컴퓨터 아키텍처에 근본적인 변화가 이루어지게 됩니다. 특히, 그동안 풀 수 없었던 문제들을 풀기 위해 양자 컴퓨팅이 사용이 될 것입니다. 그렇기 떄문에 양자 컴퓨팅의 특성을 고려한 알고리즘 설계가 필수적입니다. 따라서, 이 분야에 특화된 개발자들이 늘어날 것으로 생각됩니다. 양자 컴퓨터가 일반적인 컴퓨터를 대체하기까지는 상당히 오랜 시간이 걸릴 것으로 생각됩니다. 기존의 개발 영역은 그대로 필요할 것이고 양자 컴퓨팅이 필요한 영역이 새로 존재할 것입니다.

머신러닝과 같이 매우 큰 연산이 필요한 곳에서 양자 컴퓨팅이 활용된다면 눈부신 발전을 이룩할 수 있을 것입니다. 또한, 보안적으로 매우 뛰어나다고 평가받는 비트코인의 블록체인 시스템 역시 양자 컴퓨팅에 의해 위협을 받을 가능성이 존재합니다.

댓글()
  1. 김정민 2018.02.01 11:12 댓글주소  수정/삭제  댓글쓰기

    정말 이해하기 쉽게 깔끔하게 설명해 주셔서 감사히 잘 보고 갑니다.