[016] 슈퍼컴퓨터부터 사물 인터넷 까지
컴퓨터들은 모두 논리적 구조, 즉 무엇을 계산할 수 있는지에 대해서는 공통된 속성을 가지고 있으며, 비슷한 아키텍처를 갖추고 있지만, 가격, 소모 전력 크기 속도 등에서 서로 다른 트레이드 오프를 보임
휴대전화와 태블릿 PC도 일종의 컴퓨터로, 운영체제를 실행하며 풍부한 컴퓨팅 환경을 제공함
- 디지털 기기에는 거의 전부 훨씬 작은 시스템이 내장됨
- 기기 종류는 카메라, 전자책 단말기, 건강 추적기, 가전 제품, 게임 콘솔 등 헤아릴 수 없이 많음
- 사물인터넷 등의 수많은 기기도 프로세서를 기반으로 작동함
슈퍼컴퓨터(Supercomputer)는 과학기술 연산을 비롯한 다양한 분야에 사용 되는 고속 컴퓨터
- 보통 많은 수의 프로세서와 대량의 메모리를 사용함
- 프로세서도 종래 프로세서보다 특정 종류의 데이터를 훨씬 빨리 처리하는 명령어로 구성됨
- 전용 하드웨어를 사용하는 대신, 속도는 빨라도 기본적으로 평범한 프로세서로 구성된 클러스터를 기반으로 구현
슈퍼컴퓨터의 속도는 플롭스(flops), 즉 초당 수행할 수 있는 부동 소수점 연산 횟수로 측정됨
- 부동 소수점 연산이란 소수 부분을 포함하는 수에 대한 산술 연산을 뜻함
GPU(Hraphics Processing Unit)는 범용 CPU보다 그래픽 관련 계산을 훨씬 빠르게 수행하는 그래픽
- CPU는 게임에 필요한 고속 그래픽 처리를 위해 개발됨
- 휴대전화용 음성 처리나 신호 처리에도 사용됨
- 일반 프로세서가 특정한 종류의 작업을 빠르게 처리하는 데 도움을 줌
- 간단한 산술 연산을 병렬로 대량 처리할 수 있음
- 일부 계산 작업이 병렬 처리 가능한 연산을 포함하고, 이를 GPU로 넘겨 줄 수 있다면, 전체 계산이 훨씬 더 빨라짐
- 머신러닝에서는 큰 데이터 셋의 여러 부분에 같은 계산을 독립적으로 수행할 일이 많기 때문에 GPU가 유용함
분산 컴퓨팅(Distributed Compution)은 네트워크로 연결되어 서로 독립적으로 작동하는 여러대의 컴퓨터
- 분산 컴퓨팅 시스템은 메모리를 공유하지 않고 물리적으로 넓게 흩어져 있음
- 전 세계의 다양한 지역에 퍼져있기도 함
- 컴퓨터가 흩어져 있을 수록 통신이 잠재적 병목 현상을 일으킬 가능성이 있음
- 다만 사람과 컴퓨터가 공간적으로 멀리 떨어져 있어도 상호 협력해서 일할 수 있음
모든 컴퓨터는 동일한 핵심 원칙을 가짐 즉, 한없이 다양한 작업을 수행하도록 프로그래밍 될 수 있는 범용 프로세서에 기반을 둠
- 각 프로세서에는 산술 연산을 하고, 데이터 값을 비교하고, 기존 계산 결과에 기초해 다음에 수행할 명령어를 선택하는 간단한 명령어로 이뤄진 한정된 레퍼토리가 존재
- 전반적인 아키텍처는 1940년대 후반 이래로 크게 바뀌진 않았지만, 물리적인 구조는 놀랍도록 빠르게 진화를 거듭해옴
모든 컴퓨터는 논리적인 면에서 같은 능력을 갖추고 있고, 속도와 메모리 요구사항 같은 현실적인 문제를 제외하면 정확히 똑같은 것을 계산할 수 있음
- 앨런 튜링은 단순한 컴퓨터를 묘사하고, 그 컴퓨터가 매우 상식적인 수준에서 계산 가능한 것이면 어떤 것이든 계산 할 수 있다는 것을 증명함
- 오늘날 이러한 종류의 컴퓨터를 튜링 머신(Turing ma-chine)이라고 함
- 그는 다른 어떤 튜링 머신이라도 모방하여 작동 할 수 있는 튜링 머신을 보여줌
- 지금은 이를 범용 튜링(Universal Turing machine)이라고 함
- 범용 튜링 머신인 것처럼 작동하는 프로그램을 작성하기는 쉽고
- 실제 컴퓨터인 것처럼 작동하는 범용 튜링 머신용 프로그램을 작성하는 것도 가능
- 이러한 이유로 모든 컴퓨터는 얼마나 빨리 계산할 수 있느냐에 대해서는 차등이 있더라도, 무엇을 계산할 수 있느냐에 대해서는 서로 동등함
제2차 세계 대전 동안에 튜링은 이론을 현실로 옮김
- 그는 컴퓨터가 인간 수준에 지적 능력을 보여 줄 수 있는지를 평가하는 데 사용할 테스트를 제안
- 지금은 이 테스트를 튜링 테스트(Turing test)라고 함
질문자가 키보드와 화면만 가지고 두 상대방과 의사소통 하는 경우를 생각
- 한쪽은 컴퓨터고 다른 한쪽은 인간임
- 질문자는 대화를 통해 어느 쪽이 컴퓨터인지 알아낼 수 있을까?
- 튜링은 질문자가 인간과 컴퓨터를 확실히 구분할 수 없다면 컴퓨터가 인간 수준의 지적 행동을 수행하는 것이라고 봄
튜링의 이름은 캡차(CAPTCHA)라는 약어에 일부가 됨
- 캡차는 '컴퓨터와 인간을 구별하기 위한 완전 자동화된 공개 튜링 테스트'의 약자
- 캡차는 왜곡된 문자 패턴으로서, 웹사이트 사용자가 프로그램이 아니라 인간임을 확인할 용도로 폭넓게 사용됨
- 캡차는 역 튜링 테스트(Reverse Turing test)의 한 사례
- 사람이 컴퓨터보다 시각적인 패턴을 더 잘 식별할 수 있다는 점을 이용하여 인간과 컴퓨터를 구별하려는 시도
캡차는 시각 장애가 있는 사용자는 풀 수가 없음