Removal of side effects for the automatic parallelization in C language

C 언어에서 자동 병렬 수행을 위한 부작용의 제거

  • Lee, Jung-Ho (Dept. of Computer Science and Engineering, In-ha University) ;
  • Lee, Kab-Lae (Dept. of Computer and Information, Kim-Cheun College of Science) ;
  • Yoo, Weon-Hee (Dept. of Computer Science and Engineering, In-ha University)
  • 이정호 (인하대학교 전자계산공학과) ;
  • 이갑래 (김천과학대학 컴퓨터정보계열) ;
  • 유원희 (인하대학교 전자계산공학과)
  • Published : 2000.04.14

Abstract

프로그램 언어의 수행순서는 종속성으로 인해 결정된다. 병렬 수행을 위해서는 수행 단위 사이의 종속성을 제거해야 한다. 함수 간의 종속성을 발생시키는 주요 요인으로는 전역 변수가 있다. 본 논문의 자동 병렬 수행 시스템은 순차 C언어 프로그램을 병렬 수행하여 순차 C언어 프로그램과 동일한 결과를 내게 한다. 전역 변수를 위한 프레임이 프로세서 내의 지역 메모리에 할당되며 전역 변수의 최종 결정 값을 프로세서 간에 메시지로 전달하고 복사하여 전역변수의 부작용이 발생하지 않도록 한다. 또한 피호출 함수가 수행중인 호출 함수에서는 최종 결정된 전역 변수의 값을 피호출 함수로부터 받아오기까지는 전역 변수를 참조할 수 없고 봉쇄 상태가 되는데 피호출 함수가 복귀하지 않아도 전역 변수에 대해 더 이상의 값 변경이 없음을 알게 되면 곧바로 그 값을 호출 프로세서에 전달함으로써 전역 변수 참조로 인한 수행 지연을 최대한 줄이는 방법을 제안한다.

Keywords