• 제목/요약/키워드: Parallelizing Compiler

검색결과 13건 처리시간 0.02초

Enhanced Region Partitioning Method of Non-perfect nested Loops with Non-uniform Dependences

  • Jeong Sam-Jin
    • International Journal of Contents
    • /
    • 제1권1호
    • /
    • pp.40-44
    • /
    • 2005
  • This paper introduces region partitioning method of non-perfect nested loops with non-uniform dependences. This kind of loop normally can't be parallelized by existing parallelizing compilers and transformations. Even when parallelized in rare instances, the performance is very poor. Based on the Convex Hull theory which has adequate information to handle non-uniform dependences, this paper proposes an enhanced region partitioning method which divides the iteration space into minimum parallel regions where all the iterations inside each parallel region can be executed in parallel by using variable renaming after copying.

  • PDF

병렬화 컴파일러의 구조 (Organization of Parallelizing Compilers)

  • 이재경;지동해;창병모
    • 전자통신동향분석
    • /
    • 제9권4호
    • /
    • pp.9-21
    • /
    • 1994
  • Wide variety of the architectural complexity of parallel computer often makes it difficult to develop efficient programs for them. One of approaches to improve this difficulty is to program in familiar sequential languages such as Fortran or C and to parallelize sequential programs into equivalent parallel programs automatically. This paper presents an organization of parallelizing compiler which transforms sequential programs into equivalent parallel programs. The parallelizer consists mainly of syntax analysis, control and data flow analysis, program transformation, and parallel code generation. In particular, the program restructuring in this parallelizer maximizes loop parallelism.

루프구조의 병렬화 컴파일러 설계 및 구현 ((A Design and Implementation of Parallelizing Compiler in Loop Structure))

  • 송월봉
    • 한국컴퓨터산업학회논문지
    • /
    • 제3권8호
    • /
    • pp.981-988
    • /
    • 2002
  • 본 논문에서는 순차루프를 이용한 간단한 병렬화 컴파일러를 제안한다. 이것은 컴파일 시간에 중첩 병렬 DOALL루프로 바꾸어주는 순차루프의 자동 변환에 관한 절차이다. 이를 위해서, Parafrase II 병렬화 컴파일러의 원시 프로그램을 분석하였으며 중첩루프에서 효율적인 병렬처리를 위한 새로운 병렬성 추출 방법을 구현하였다.

  • PDF

이기종 병렬 시스템을 위한 자동적 병렬화 컴파일러 후위 (Backend of a Parallelizing Compiler for an Heterogeneous Parallel System)

  • 권대석;김흥환;한상영
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제27권8호
    • /
    • pp.710-718
    • /
    • 2000
  • 고전적 시스템의 성능 향상을 위해 많은 병렬 처리 시스템들이 제안되어 왔다. 그러나 이들 시스템들은 흔히 통신과 동기화 부담을 과소 평가함으로써 기대한 만큼의 성능을 보이지 못하였다. 본 논문에서는 그러한 결과를 초래하는 이유를 설명하고, 병렬화 컴파일러가 만족시켜야 하는 성능상의 요구조건을 제시한다. 병렬화 결정은 성능 저하를 피하기 위해 반드시 통신과 동기화 부담(overhead)에 대한 분석에 기초하여 이루어져야 한다. 본 연구진은 이러한 발상을 자동적 병렬화 컴파일러 SUIF에 적용하여 SUIF의 후위를 MPI 함수를 이용하는 새로운 후위로 교체하고, 여기에 병렬화 결정의 타당성을 부담 정보에 기초하여 평가하는 능력을 부여하였다. 새로운 컴파일러 후위는 병렬화 가능한 부분이 명시된 SUIF 중간 코드를, 성능 저하를 초래하지 않으면서 MPI 함수 호출을 포함하는 분산 메모리 구조 병렬 프로그램으로 변환한다.

  • PDF

A Loop Transformation for Parallelism from Single Loops

  • Jeong, Sam-Jin
    • International Journal of Contents
    • /
    • 제2권4호
    • /
    • pp.8-11
    • /
    • 2006
  • This paper describes several loop partitioning techniques such as loop splitting method by thresholds and Polychronopoulos' loop splitting method for exploiting parallelism from single loop which already developed. We propose improved loop splitting method for maximizing parallelism of single loops with non-constant dependence distances. By using the distance for the source of the first dependence, and by our defined theorems, we present generalized and optimal algorithms for single loops with non-uniform dependences. The algorithms generalize how to transform general single loops into parallel loops.

  • PDF

Parallelism for Single Loops with Multiple Dependences

  • Jeong, Sam-Jin
    • International Journal of Contents
    • /
    • 제3권3호
    • /
    • pp.15-19
    • /
    • 2007
  • We review some loop partitioning techniques such as loop splitting method by thresholds and Polychronopoulos' loop splitting method for exploiting parallelism from single loop which already developed. We propose improved loop splitting method for maximizing parallelism of single loops with non-constant dependence distances. By using the iteration and distance for the source of the first dependence, and by our defined theorems, we present generalized and optimal algorithms for single loops with non-uniform dependences. The algorithms generalize how to transform general single loops with one dependence as well as with multiple dependences into parallel loops.

JAVA 프로그래밍 언어에서 단일루프구조의 무시적 병렬성 검출 (Exploiting Implicit Parallelism for Single Loops in Java Programming Language)

  • 권오진
    • 정보관리연구
    • /
    • 제29권3호
    • /
    • pp.1-26
    • /
    • 1998
  • 순차 Java 프로그램을 병렬 머쉰에서 실행할 경우 루프는 전체 수행 시간 중 많은 부분을 차지하므로 병렬성 검출의 기본이 된다. 본 논문은 기존에 작성된 단일 루프 구조를 갖는 Java 프로그래밍 언어에서 종속성 분석을 수행하여 묵시적 병렬성을 검출하는 방법을 제안한다. 또한 재구성 컴파일러에 의하여 병렬 코드를 생성하는 방법과 Java 원시 프로그램을 Java 프로그래밍 언어 자체에서 지원하는 다중스레드 기법으로 변환하는 방법을 제안한다. 스레드 문장으로 변환된 프로그램에 대해 루프의 반복계수와 쓰레드 수를 매개변수로 하여 성능 분석을 하였다. 재구성 컴파일러에 의한 장점은 사용자의 병렬성 검출에 대한 오버헤드를 줄이고, 순차 Java 프로그램에 대한 효과적인 병렬성 검출을 가능하게 한다.

  • PDF

Parallel Machine에 있어서의 Functional, Declarative 언어의 Algorithm (Algorithm for Functional and Declarative Language in Parallel Machine)

  • 김진수
    • 자연과학논문집
    • /
    • 제5권2호
    • /
    • pp.39-43
    • /
    • 1992
  • 사용자의 관점에서 볼때는 compiler가 parallelism을 발견할 수 있게 하는것이 매우 요구되지만, 아무리 잘 만들어진 compiler 라 할지라도 conditional, functional 또는 I/O statement 등 프로그램내에 존재하는 많은 parallelism을 인식 하기가 결코 쉬운 일이 아니다. 경우에 따라서는 compiler의 parallelism 결정이 곤란할경우 사용자에게 feedback 시키는 경우가 종종 있다. 이런 입장에서 프로그래머는 parallelism을 바로 전달하기 위해서 프로그램의 일부를 재구성 시킬 필요가 자주 발생한다. 그러한 관점에서 Functional, Declarative 언어의 잇점이 있다고 할 수 있고, 그러기 위해서는 paralled machine에 적합한 Algorithm 이 필요하다. 그러나, 이미 사용중인 Algorithm이 Parallel Machine에 부적절 하다는 것을 의미 하는것은 아니다. 본 연구에서는, Fortran을 이용하여 Parallel Algorithm을 구현 시키기위한 Declarative 언어에 있어서 Array 및 Matrix 를 다루기위한 Abstraction 방법을 제시 하고자 한다.

  • PDF

병렬성 및 지역성 증진을 위한 컴파일러 최적화 (Compiler Optimization for Parallelism and Locality Improvement)

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

  • PDF

버스기반의 VLIW형 프로세서를 위한 최적화 컴파일러 구현 (Implementation of Optimizing Compiler for Bus-based VLIW Processors)

  • 홍승표;문수묵
    • 한국정보과학회논문지:시스템및이론
    • /
    • 제27권4호
    • /
    • pp.401-407
    • /
    • 2000
  • 최근의 고성능 프로세서들은 명령어 수준의 병렬처리(Instruction Level Parallel Processing) 를 이용하여 성능향상을 꾀하고 있다. 특히 컴파일러의 도움을 받는 VLIW(Very Long Instruction Word) 방식의 프로세서는 고성능 DSP 및 그래픽 프로세싱 등 특수한 분야에서 사용이 증가하고 있다. 이러한 특수 목적의 프로세서 구조로서 버스 기반의 VLIW 구조가 제안되었으며[2], 이는 포워딩 하드웨어의 부담과 명령어 폭을 줄여주는 장점을 갖는다. 본 논문에서는 제안된 버스 기반의 VLIW 프로세서를 위해 개발된 최적화 스케쥴링 컴파일러를 소개한다. 우선 버스간 연결 및 자원사용을 모델링 하는 기법을 설명하고 이를 바탕으로 레지스터-버스 승진, 복사자 융합, 오퍼랜드 대체 등의 기계 의존적인 최적화 기법과 선택 스케쥴링, EPS(Enhanced Pipelining Scheduling) 기법 등 VLIW 스케쥴링 기법을 어떻게 구현했는지 설명한다. 이러한 최적화 기법들을 멀티미디어 응용 프로그램에 대하여 적용하여 보았고 약 20%의 성능향상을 보임을 확인하였다.

  • PDF