병렬성 및 지역성 증진을 위한 컴파일러 최적화

Compiler Optimization for Parallelism and Locality Improvement

  • 발행 : 1999.02.01

초록

본 논문에서는 순차 언어로 작성된 프로그램을 '병렬화'와 지역성 향상'을 목적으로 변형시키는 최적화 기법에 대해서 논의한다. 의존성과 지역성을 고려하여 순차 프로그램의 루프 구조를 분석하고, 루프 분산과 루프 병합 기법을 적용하여 프로그램을 변형시킨다. 이 변형된 프로그램은 쉽게 '굵은 단위'의 병렬성과 지역성이 향상된 형태의 쓰레드 프로그램으로 표현될 수 있다. 따라서 이 변형 기법은 최적화/자동병렬화 컴파일러 구현에 유용하게 응용될 수 있다. 4개의 SPARC 프로세서를 장착한 Solaris 시스템에서 이 기법을 SPEC95 프로그램에 적용하여 시험한 결과 순차프로그램과는 20∼62%, 기존의 SUIF 병렬화 컴파일러와는 3∼12% 정도의 수행시간이 개선되는 효과를 얻게 되었다.

In this paper, we study on the transformation technique of sequential programs for the purpose of 'exploiting parallelism' and 'improving locality'. Based on the analysis of loop procedures of sequential programs with the factor of dependency and locality, two transformation techniques of loop distribution and loop fusion are applied to them. Transformed programs can be easily expressed as a parallel program wit thread notation, having coarse-grain parallelism and improved locality. This means that those transformations can be useful tools for optimizing and automatic-parallelizing compiler construction. Application of those techniques to SPEC95 on a solaris machine with four SPARC processors show an improvement of execution time.

키워드