Abstract
The main goal of synchronization is to guarantee exclusive access to shared data and critical sections, and then it makes parallel programs work correctly and reliably. Exclusive access restricts parallelism of parallel programs, therefor efficient synchronization is essential to achieve high performance in shared-memory parallel programs. Many techniques are devised for efficient synchronization, which utilize features of systems and applications. This paper shows the simulation results that existing synchronization methods have inefficiency under CC-NUMA(Cache Coherent Non-Uniform Memory Access) system, and then compares the performance of Freeze&Melt synchronization that can remove the inefficiency. The simulation results present that Test-and-Test&Set synchronization has inefficiency caused by broadcast operation and the pre-defined order of Queue-On-Lock-Bit (QOLB) synchronization to execute a critical section causes inefficiency. Freeze&Melt synchronization, which removes these inefficiencies, has performance gain by decreasing the waiting time to execute a critical section and the execution time of a critical section, and by reducing the traffic between clusters.
동기화는 병렬 프로그램의 수행이 정확하게 이루어지도록 하기 위해 공유 데이타나 프로그램상의 임계구간(critical section)에 대해 배타적인 수행을 보장하는 것을 목적으로 한다. 배타적인 프로그램의 수행은 병렬 프로그램의 병렬성을 제한하므로 효율적인 동기화는 높은 성능의 병렬 프로그램 수행을 위해 반드시 필요하다. 이런 필요에 의해 응용 프로그램이나 시스템의 특성을 이용하여 동기화의 성능을 높이는 기법들이 고안되었다. 본 논문에서는 모의실험을 통해 캐시에 기반을 둔 NUMA(Non-Uniform Memory Access) 시스템에서 나타나는 기존 동기화의 비효율성을 분석하여 제시하고, 이 비효율성을 제거할 수 있는 Freeze&Melt 동기화 기법과의 성능을 비교한다. 제시된 결과를 통해 Test-and-Test&Set 동기화는 동기화 과정에서 발생하는 방송(broadcast) 작업에 의해 비효율이 발생하고, QOLB(Queue-On-Lock-Bit) 동기화는 공유 데이타나 임계구간을 수행할 프로세서의 순서가 미리 정해져 있다는 점에 의해 비효율이 발생함을 확인할 수 있다. 이와 같은 단점들을 극복하고자 제안된 Freeze&Melt 동기화를 이용하여 임계구간을 수행하기까지 대기하는 시간과 임계구간을 수행하는 시간을 줄이고, 클러스터간의 통신량(traffic)을 감소시킴으로써 성능의 향상을 이룰 수 있다.