병렬연산 - parallel computing

기술용어통 반디통 용어집

한 사람이 작업하면 하루가 걸리는 일을 두 사람이 나누어 한다면 작업시간을 절반으로 줄일 수 있다. 컴퓨터의 경우, 연산이라 불리는 계산작업은 CPU라 불리는 중앙처리장치가 담당하고 있다. 따라서 CPU를 사람과 비유하자면 CPU의 개수를 증가시켜 연산작업을 분담시킨다면 계산시간을 단축시킬 수 있다.

이러한 원리를 적용한 것이 바로 병렬연산으로, 병렬연산에서는 여러 개의 CPU가 하나의 연산작업을 동시에 수행하게 된다. 이론적으로는 연산작업에 참여하는 CPU의 개수에 비례하여 계산시간이 단축되어야 하지만 실제로는 그렇지가 않다. 그 이유로는 CPU 사이의 DATA 교환에 소요되는 시간이 CPU가 많아질수록 증가하기 때문에 CPU의 개수가 많아질수록 병렬연산의 효율은 감소한다. 사람들이 하나의 작업을 분담하여 처리하는 경우를 상상해 보면 쉽게 이해할 수 있다.

병렬연산에는 크게 클러스터(cluster)형과 분산(distributed)형이 있다. 전자는 하나의 컴퓨터 내에 다수의 CPU를 내장한 슈퍼 컴퓨터를 의미하고, 후자는 일반 컴퓨터를 여러 대 연결하여 DATA를 외부적으로 교환하는 것이다. 병렬연산을 위해서는 많은 기술이 필요하고 문제점도 안고 있다. 대표적인 문제점으로는 연산에 참여하고 있는 CPU 중에서 어느 하나라도 기능을 수행하지 못하게 되면 전체 연산에 커다란 장애를 초래하는 것이고, 그 다음으로는 연산에 참여하는 CPU의 작업량을 균등하게 유지시키는 것이다.

병렬연산은 컴퓨터의 급속한 발전과는 별도로 거대한 규모의 수치해석(numerical analysis)을 가능하도록 할뿐더러 해석시간을 급속도로 단축시키고 있다. 따라서, 현재로서는 연산시간의 한계에 직면하고 있는 많은 유한요소 해석 문제들도 얼마 지나지 않아 병렬연산에 힘입어 구현 가능할 것으로 확신한다.

. C024

기술용어통 수치해석 category-cae 병렬연산 parallel computing