Abstract
One of the jai or purposes of multiprocessor system is to get a high efficiency in performance improvement. But in most cases, it is unavoidable to use some special programming languages or tools for full use of multiprocessor system. In general, loop and recursive call statements of algorithms are considered as typical parts for parallelization. Especially, recursive call statements are easy to parallelize conceptually without support of any special languages or tools. But it is difficult to control the degree of parallelism caused by high depth of recursive call leading to execution crash. This paper proposes a device to control Parallelism in the process of POSIX thread bated parallelization of recursive algorithms. For this, we define the concept of thread and process in UNIX system, and analyze the results of experimental application of the device to quick sorting algorithm.
처리기를 여러 개 장착한 다중처리기 시스템의 근본 목적은 적은 비용으로 많은 성능 향상을 얻자는 데에 있다. 그러나 다중처리기 시스템을 충분히 활용하기 위해서는 병렬처리를 지원하는 특별한 언어를 사용하거나 병렬성을 탐색하는 도구의 도움을 얻어야 하는 경우가 대부분이다. 일반적으로 알고리즘에서 병렬화에 적합한 대표적인 영역으로 루프와 재귀호출 등이 알려져 있다. 이 중 재귀호출은 특별한 도구나 언어의 지원 없이 개념적인 측면에서 비교적 쉽게 병렬화 시킬 수 있다. 그러나 재귀호출이 깊어지면 통제되지 않은 병렬성이 과도하게 높아져 오히려 수행불능 상태가 되고 만다. 본 논문은 POSIX스레드를 이용하여 재귀호출로 구성된 알고리즘을 병렬화시키는 과정에서 병렬성을 제어하는 방안을 제시한다. 이를 위하여 유닉스 시스템에서 프로세스와 스레드의 개념을 정립하고, 제안된 병렬성 제어 방안을 퀵 정렬에 적용한 결과를 실증적으로 분석하여 그 효용성을 검증한다.