다중처리시스템에 대해서
컴퓨터 산업 자체가 처음 시작되었을 때부터 보다 더 많은 컴퓨팅 능력을 제공할 수 있게끔 하기 위해서 지속적으로 노력했다. ENIAC은 초당 300개의 연산을 처리할 수가 있었는데, 이것은 당시 계산기에 비해서 천배 가까이 빠른 성능이었지만 사람들은 여전히 만족하지 않았다.
요즘 우리는 ENIAC에 비해서는 백만 배 이상 빠른 컴퓨터를 사용하고 있지만 여전히 배고프다. 예를 들어 천문학자는 우주를 심층적으로 이해하기 위해서, 생물학자는 인간 유전자의 기능을 낱낱이 파헤치기 위해서, 항공학자는 보다 안전한 비행기를 개발하기 위해 많은 CPU 사이클을 요구하고 있다.
지금껏 빠른 컴퓨터를 위해 대표적인 접근 방법을 보면 클록 속도를 높이는 것이었다. 그러나, 우리는 클록 속도의 근본적인 한계에 도달하고 있다. 아인슈타인 상대성 이론에 의하면 전기 신호는 빛의 속도보다 빠를 순 없다. 즉, 진공 상태에서는 30cm/nsec이 한계라고 보면 되며, 구리 선이나 광섬유에서는 20cm/nsc이 한계다. 이것은 10 GHz로 동작하는 컴퓨터에서는 시그널이 최대 2cm 이상은 이동할 수 없다는 것을 의미한다.
아무리 작은 컴퓨터를 제작해 낸다고 해도 열 발산이라는 문제를 해결해야만 한다. 컴퓨터의 속도가 빨라질수록 그만큼 열이 많이 발생하게 되며, 컴퓨터가 작아지면 이 열을 식히기가 더욱더 어려워진다. 이미 고성능 팬티엄 시스템에서는 CPU 냉각기가 CPU 자체보다 더 커져 버렸다.
더 빠른 속도를 얻는 방법 중에 또 다른 방법으로는 여러 병렬 컴퓨터를 이용하는 것이다. 이 기계들은 정말 많은 CPU들로 구성되는데, 각 CPU는 평균적인 속도로 동작한다. 그러나, 평균적인 CPU들이 모여 큰 컴퓨팅 능력을 제공하게 된다.
흔히 고성능 병렬 컴퓨터는 많은 숫자를 처리하는 작업에 사용된다. 이런 작업의 대표적인 예로, 날씨를 예측하고 비행기 날개 주변의 공기 흐름을 모델링하고, 세계 경제를 시뮬레이션 하는 등의 작업이 있다. 이런 문제는 계산 집중이라는 특징이 있다. 이런 문제들을 해결하는 프로그램은 여러 CPU에서 동시에 수행된다고 보면 된다.
다중 컴퓨터 시스템의 발전과 관련된 또 다른 기술은 인터넷의 급성장이다. 인터넷은 본래 결함에 상당히 잘 견디는 결함 허용 군 제어 시스템을 위해 설계되었다. 오늘날, 많은 새로운 용도로 활용되고 있고 학계의 컴퓨터 연구자들로부터 환영받고 있다. 새로운 용도 중 하나는 전 세계에 널리 사용되고 있는 수천여 개의 컴퓨터들을 연결해서 큰 과학 계산 문제를 해결하기 위해 함께 사용하는 것이다.
벡만 개의 서로 관련 없는 컴퓨터를 한 공간에서 관리하는 것은 충분한 돈, 그리고 넓은 방만 있으면 가능하다. 다만, 백만 개의 서로 관련 없는 컴퓨터를 전 세계에 펼쳐 놓는 것은 넓은 방이 필요 없기 때문이다. 남은 문제는 이들이 서로 성공적으로 통신하게끔 만들고 공통의 문제를 함께 풀어나가도록 조치하는 것이다. 상호연결 기술에 대해 다양한 연구들이 진행되었고, 어떤 상호연결의 종류를 선택하느냐에 따라 시스템의 정상적인 특징, 그리고 소프트웨어를 구성하는 방법이 달라지게 된다.
전자적인 구성 요소간의 모든 통신은 결국엔 그들간에 메시지 전송으로 결론이 난다. 이때 메시지란 잘 정의된 비트 열이다. 단지 시간의 크기, 거리의 단위, 그리고 연관된 논리적인 구성이 서로 다를 뿐이다. 통신 방법의 한 극단을 보면 공유 메모리 기반 다중처리기이다. 이 시스템은 2개에서 천여 개까지의 CPU들의 공유 메모리를 통해 서로 통신한다. 이 모델에서는 모든 CPU는 동일하게 전체 물리 메모리를 접근할 수가 있다.
또한 등록과 저장 명력을 사용해서 각 워드의 데이터를 읽거나 쓸 수가 있다. 메모리 접근은 보통 2~10nsec 정도가 걸린다. 고속 상호 연결망에 의해 연결된 시스템 구조는 메시지 패싱 다중처리기라고도 하는데, 각 메모리는 연관된 CPU만 접근할 수가 있는 지역 메모리로 보면 된다. CPU들은 상호 연결망을 통해서 다중워드 메시지를 보냄으로써 서로 통신한다. 적절한 상호 연결망을 사용하면 짧은 메시지의 전송은 10~50 usec 정도가 소요된다.
'컴퓨터&네트워크' 카테고리의 다른 글
네트워크에 대해서 (0) | 2024.08.26 |
---|---|
분산 시스템 (0) | 2024.08.25 |
멀티미디어와 운영체제 (0) | 2024.08.19 |
입출력 장치들에 대해서 (1) | 2024.08.18 |
컴퓨터 스케줄링 알고리즘 (1) | 2024.08.16 |