KR0176088B1 - 병렬 컴파일러 및 그 제어 병렬화 설계방법 - Google Patents

병렬 컴파일러 및 그 제어 병렬화 설계방법 Download PDF

Info

Publication number
KR0176088B1
KR0176088B1 KR1019950047057A KR19950047057A KR0176088B1 KR 0176088 B1 KR0176088 B1 KR 0176088B1 KR 1019950047057 A KR1019950047057 A KR 1019950047057A KR 19950047057 A KR19950047057 A KR 19950047057A KR 0176088 B1 KR0176088 B1 KR 0176088B1
Authority
KR
South Korea
Prior art keywords
parallel
compiler
library
data
program
Prior art date
Application number
KR1019950047057A
Other languages
English (en)
Other versions
KR970049508A (ko
Inventor
김학영
민옥기
이재경
Original Assignee
양승택
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 양승택, 한국전자통신연구원 filed Critical 양승택
Priority to KR1019950047057A priority Critical patent/KR0176088B1/ko
Publication of KR970049508A publication Critical patent/KR970049508A/ko
Application granted granted Critical
Publication of KR0176088B1 publication Critical patent/KR0176088B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/451Code distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/44Encoding
    • G06F8/443Optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/45Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
    • G06F8/457Communication

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 병렬 컴파일러 및 그 제어 병렬화 설계방법에 관한 것으로서, 그 특징은 자료 병렬성과 제어 병렬성을 모두 지원하여 공유 분산 메모리를 혼합한 고속 병렬 컴퓨터 구조에서 병렬자원을 효율적으로 이용할 수 있는 병렬 컴파일러에 있어서, 소스 프로그램을 입력받아 추상 구문 트리와 심벌 테이블을 만드는 파서 수단과 상기 파서 수단이 만든 심벌 테이블을 이용하여 프로그램 본래의 의미를 유지하면서 문장의 수행 순서를 다시 정하는 데에 필요한 정보를 추출하는 사전 종속적 분석 수단과 상기 사전 종속적 분석 수단에 의해 추출된 정보를 이용하여 병렬 처리를 위한 자료를 분산시키고, 그 자료에 대한 병렬적인 제어를 수행하는 병렬 변환 수단과 상기 병렬 변환 수단의 수행결과에 의해 통신분석을 한 후, 상기 분산된 자료의 동적 할당을 위한 코드를 생성하고, 병렬 수행을 위한 루프 경계를 조정하도록 하는 통신 변환 수단과, 상기 통신 변환 수단의 수행 결과로 생성된 코드를 최적화하는 최적화 수단 및 상기 최적화 수단에 의해 최적화된 코드를 분할하고, 상기 파서 수단에 의해 생성된 추상 구문 트리와 심벌 테이블을 C 프로그램과 라이브러리 호출 형태로 변환하는 코드 변환 수단을 포함하여, 기존의 하드웨어 구성과는 다른 구성을 갖는 고속 병렬 컴퓨터에서 병렬 포트란 컴파일러를 설계하여 최종적으로 사용자에게 편리한 프로그래밍 도구를 제공할 수 있다는 효과가 있다.

Description

병렬 컴파일러 및 그 제어 벙렬화 설계방법
제1도는 본 발명이 적용되는 시스템의 하드웨어 구성도.
제2도는 본 발명에 따른 병렬 포트란 컴파일러 구성도.
제3도는 본 발명에 따른 병렬 포트란 컴파일러 제어과정의 흐름도.
제4도는 라이브러리 구성 및 인터페이스를 나타낸 도면.
본 발명은 병렬 컴파일러 및 그 제어 병렬화 설계방법에 관한 것으로서, 특히 공유 분산 메모리를 혼합한 클러스터링 계층구조를 갖는 고속 병렬 시스템에서의 자료 병렬 수행과 제어 병렬 수행을 모두 지원하는 병렬 컴파일러 및 그 제어 병렬화 설계방법에 관한 것이다.
일반적으로, 고속 병렬 컴퓨터는 전용의 고속 네트워크로 상호 연결된 대칭형 멀티프로세서 노드들로 구성되며, 각 노드는 4개의 CPU와 지역 공유 메모리를 갖고 4개의 노드는 하나의 클러스터를 구성한다.
그리고 노드들 간의 고속 네트워크를 통하여 자료를 전달하는 데에는 메시지 전달 시스템이 사용된다.
프로세서, 노드, 클러스터의 계층을 가지며 프로세서간 네트워크는 버스이며 노드간 그리고 클러스터간 네트워크는 크로스 바 스위치로 구성된다.
종래에는 포트란 컴파일러가 순차언어이지만 다양한 병렬 컴퓨터의 출현으로 병렬 자원을 활용할 수 있는 병렬 언어를 제공하는 것이 요구되었다.
종래에 이미 HPFF에서 HPF 언어 규격이 발표되었고 HPF 언어규격을 수용하는 병렬 포트란 컴파일러가 개발되었다.
그러나, 이들 병렬 포트란 컴파일러는 자료 병렬 수행은 지원하지만 HPF 언어 규격에 제외된 제어 병렬성은 지원하지 않고 있다는 문제점이 있었다.
상기 문제점을 해결하기 위한 본 발명의 목적은 자료 병렬성과 제어 병렬성을 모두 지원하여 공유 분산 메모리를 혼합한 고속 병렬 컴퓨터 구조에서 병렬자원을 효율적으로 이용할 수 있는 병렬 포트란 컴파일러 및 그 제어 병렬화 설계방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명에서 제공하는 병렬 컴파일러는 소스 프로그램을 입력받아 추상 구문 트리와 심벌 테이블을 만드는 파서 수단과, 상기 파서 수단이 만든 심벌 테이블을 이용하여 프로그램 본래의 의미를 유지하면서 문장의 수행 순서를 다시 정하는 데에 필요한 정보를 추출하는 사전 종속적 분석 수단과, 상기 사전 종속적 분석 수단에 의해 추출된 정보를 이용하여 병렬 처리를 위한 자료를 분산시키고, 그 자료에 대한 병렬적인 제어를 수행하는 병렬 변환 수단과, 상기 병렬 변환 수단의 수행결과에 의해 통신분석을 한 후, 상기 분산된 자료의 동적 할당을 위한 코드를 생성하고, 병렬 수행을 위한 루프 경계를 조정하도록 하는 통신 변환 수단과, 상기 통신 변환 수단의 수행 결과로 생성된 코드를 최적화하는 최적화 수단 및 상기 최적화 수단에 의해 최적화된 코드를 분할하고, 상기 파서 수단에 의해 생성된 추상 구문 트리와 심벌 테이블을 C 프로그램과 라이브러리 호출 형태로 변환하는 코드 변환 수단을 포함하는 데에 있다.
또한, 상기와 같은 병렬 컴파일러에 의해 자료 병렬성과 제어 병렬성을 모두 지원함으로써 병렬자원을 효율적으로 이용할 수 있도록 하는 제어 병렬화 설계방법은, 먼저, 상기 병렬 컴파일러를 초기화하는 제1과정과, 외부에서 입력되는 소스 코드를 파싱하여 추상 구문 트리 및 심벌 테이블을 만드는 제2과정과, 자료를 분산 할당하고 제어를 병렬화하는 제3과정과, 통신 분석과 통신 변환을 수행하는 제4과정과, 상기 제2과정에서 생성된 추상 구문트리 및 심벌 테이블을 C 프로그램과 라이브러리 호출 형태로 변환하여 출력하는 제5과정 및 오픈된 파일을 클로우즈하고 작업을 종료하는 제6과정을 포함하는 데에 있다.
그리고, 상기와 같이 생성되어, 컴파일할 때 사용되는 라이브러리 이용 방법은, 구문으로 작성된 프로그램이 컴파일러에서 실행 시간 라이브러리 호출로 번역되는 제1과정과, 상기 제1과정에서 번역된 실행 시간 라이브러리 함수가 운영 체제에서 제공되는 쓰레드 라이브러리를 이용하여 구문 내의 블록 개수만큼 쓰레드를 생성하는 제2과정 및 상기 구문 내의 각 블록을 상기 제2과정에서 생성된 하나의 쓰레드에 실어서 그 쓰레드가 하드웨어 상의 여러 처리기에서 병렬로 수행하도록 하는 제3과정을 포함하는 데에 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일 실시예를 상세히 설명한다.
제1도는 본 발명이 적용되는 시스템의 하드웨어 구성도이다.
제1도를 참조하여 본 발명이 적용되는 시스템의 하드웨어 구성을 설명하면 다음과 같다.
본 발명이 적용되는 시스템의 하드웨어 구성은 노드(10)와 크로스 바 스위치(cross bar switch)(20) 및 입출력을 담당하는 입출력 노드들(30)을 갖는다. 노드(10)는 4개의 CPU(11)와 공유 메모리(12)를 갖고, 크로스 바 스위치(20)는 고속의 네트워크이다. 응용 소프트웨어 관점에서 노드(10)는 이하 설명될 제어 노드 및 응용 노드에 해당된다.
제2도는 본 발명에 따른 병렬 포트란 컴파일러 구성도이다.
제2도를 참조하여 병렬 포트란 컴파일러 구성을 설명하면 다음과 같다.
병렬 포트란 컴파일러(110)는 파서(parser)(111), 사전 종속적 분석(predecomposition analysis)(112), 병렬 변환(data/task parallel transformation)(113), 통신 변환(communication transformation)(114), 최적화(optimizer)(115), 코드 변환(code transformer)(116)으로 구성되며, 라이브러리(library)(130)를 포함한다.
이외에도 사용자가 컴파일러를 수행할 수 있도록 컴파일러 구동 명령어(ParaFor)인 드라이버(140)를 제공하여야 하고 병렬 포트란 컴파일러(110)의 출력인 C 프로그램과 라이브러리 호출 형태(120)를 컴파일하는 C 컴파일러(150)가 필요하다.
파서란 원래 주어진 문장으로부터 구문 트리(syntax tree)를 작성하는 구문 해석법의 일종으로서 이 방법에는 하향식(top-down) 방식과 상향식(bottom-up) 방법이 있는데, 하향식 방법은 구문 트리를 뿌리에서부터 구성하여 나가는 방법이고 상향식 방법은 반대로 앞쪽으로부터 구성하여 나가는 방법이다.
이는 또한 포트란이나 알골 등의 식에서는 연산자가 최우선 순위를 가지고 있으므로 이 성질을 이용하여 구문 트리를 구성하는 방법을 연산자 순위 문법이라고 한다.
상기 본 발명의 병렬 컴파일러를 구성하는 각 요소들의 동작을 살펴보면 다음과 같다.
먼저, 파서(111)는 소스 프로그램(170)을 입력받아 추상 구문 트리(Abstract Syntax Table)와 심벌 테이블(160)을 만든다. 이를 위해 어휘 분석, 구문 분석, 기본적인 의미 분석을 함께 수행할 수 있도록 예약어를 정의하고 문법을 확장하였다. 사전 종속성 분석(112)은 프로그램 본래의 의미를 유지하면서 문장의 수행 순서를 다시 정하는 데에 필요한 정보를 추출한다. 제어와 자료에 대한 정확한 정보를 추출해야 하지만 변수값이나 반복 회수가 컴파일 시간까지도 알 수 없는 경우에 정확한 분석은 힘들기 때문에 주로 고전적인 방법으로 이루어진다.
병렬 변환(113)은 상기 사전 종속적 분석 수단에 의해 추출된 정보를 이용하여 병렬 처리를 위한 자료를 분산시키고, 그 자료에 대한 병렬적인 제어를 수행하는데, 이중 자료 분산은 순차적인 저장소와 분산처리 구조에서 요구되는 지역성간에 충돌을 방지하기 위해 지시어를 사용하며, 프로그래멀에 의해 정의된 자료 분산 정보를 이용하여 자료 할당과 분산을 한다.
또한, 제어 병렬 수행은 일정 시점에서 서로 다른 작업들이 동시에 수행되는 것으로 자료를 공유하는 경우가 발생하므로 노드(10)간에는 오히려 통신에 의한 가중치만 증가하여 많은 수행 시간을 초래할 수 있기 때문에 노드(10)내로 한정하였다.
한편, 통신 변환(114)은 상기 병렬 변환 수단의 수행 결과에 의해 통신분석을 한 후, 상기 분산된 자료의 동적 할당을 위한 코드를 생성하고, 병렬 수행을 위한 루프 경계를 조정하는데, 배열 할당문, 루프 등에서 필연적으로 삽입이 요구되며 이를 위해 통신 프리미티브를 선택하고 분산 자료의 동적인 할당을 위한 코드를 삽입하며, 병렬 수행을 위한 루프 경계를 조정한후, 적절한 조건문을 삽입한다.
코드 변환(116)은 이전에 구축된 정보를 이용하여 프로그램을 분할하고 상기 파서(111)에 의해 생성된 추상 구문 트리와 심벌 테이블(160)을 C 프로그램과 라이브러리 호출 형태(120)로 변환한다.
제3도는 병렬 포트란 컴파일러 제어과정의 흐름도이다.
제3도를 참조하여 병렬 포트란 컴파일러 제어과정을 설명하면 다음과 같다.
S21에서는 입력된 컴파일 명령을 처리하고 입출력 파일을 오픈하고 에러 메시지와 심벌 테이블 등을 초기화하고 필요시 전처리기(preprocessor)를 호출한다. S22에서는 서브프로그램이 존재하는지 판단한다.
상기 S22에서 서브프로그램이 존재하지 않는다고 판단되면, S29로 진행한다.
상기 S22에서 서브프로그램이 존재한다고 판단되면, S23에서는 각 서브프로그램에 대하여 초기화를 수행한다. S24에서는 그 초기화된 서브 프로그램들을 파싱하여 추상 구문 트리와 심벌 테이블을 만든다. S25에서는 그 파싱결과 에러가 발생했는지 판단한다.
상기 S25에서 에러가 발생했다고 판단되면, S29로 진행하고, 상기 S25에서 에러가 발생하지 않았다고 판단되면, S26에서 자료를 분산할당하고 제어를 병렬화하는 병렬 변환을 한다. S27에서는 통신 분석과 동시에 통신 변환이 이루어진다. S28에서는 상기 파싱(S24)에 의해 생성된 추상 구문 트리 및 심벌 테이블을 C 프로그램과 라이브러리 호출 형태로 변환하여 출력한다. S29에서는 오픈된 파일을 클로우즈하고 작업을 종료한다.
제4도는 라이브러리 구성 및 인터페이스를 나타낸 도면이다.
제4도를 참조하여 라이브러리 구성 및 인터페이스를 설명하면 다음과 같다.
먼저, 라이브러리(400)에는 내장(Intrinsic) 라이브러리 및 HPF 라이브러리(410)와 실행시간 라이브러리(420)와 운영체제와 인터페이스를 위한 하부 인터페이스(430)가 있다. 실행시간 라이브러리(420)는 병렬 수행을 지원하는 것으로 자료 분산을 위한 노드간의 통신은 MPI 라이브러리(510)를 사용하고 제어 병렬화에는 쓰레드(thread) 라이브러리(520)를 이용하여 하드웨어(600)상의 노드(10) 내에 있는 여러 처리기(11)에서 작업을 병렬 수행하게 된다.
제어 병열화 방법은 프로그래머가 병렬 포트란 프로그램(200)을 작성할 수 있도록 컴파일러(300)에서 병렬 처리 구문(PARALLEL(MAX PARALLEL=정수)과 END PARALLEL)으로 제공하는데, 상기 PARALLEL과 END PARALLEL 구문 사이에는 자료 공유 변수 리스트와 블록들이 위치하고 모든 블록들은 병렬로 수행될 수 있는데 MAX PARALLEL에 의해 처리기 수를 결정하며, END PARALLEL 구문이 수행되는 시점에 묵시적인 동기화가 이루어진다. 자료 공유 변수 리스트는 병렬로 수행되는 각 블록에서 사용되는 변수들을 정의하는 영역으로 공유(SHARED)와 사유(PRIVATE) 두가지 형태로 정의할 수 있다.
위와 같이 정의된 구문으로 작성된 프로그램(200)은 컴파일러(300)에서 실행 시간 라이브러리 호출로 번역한다.
번역된 실행 시간 라이브러리 함수(420)는 하부 인터페이스(430)를 통해 운영 체제(500)에서 제공하는 쓰레드 라이브러리(520)를 이용하여 구문 내의 블록 개수만큼 쓰레드를 생성하게 한 후, 각 블록을 하나의 쓰레드에 실어서 하드웨어(600) 상의 여러 처리기에서 생성된 쓰레드가 병렬로 수행하게 한다. 수행이 완료된 쓰레드를 결합(join)하게 하여 동기화 한다.
상기와 같은 병렬 포트란 컴파일러는 기본적으로 HPFF(High Performance Fortran Forum)의 HPF(High Performance Fortran) 언어 규칙을 수용하고 고속 병렬 컴퓨터에 적합한 제어 병렬성을 확장하였다.
그러므로, 상술한 바와 같은 본 발명의 효과는 기존의 하드웨어 구성과는 다른 구성을 갖는 고속 병렬 컴퓨터에서 병렬 포트란 컴파일러를 설계하여 최종적으로 사용자에게 편리한 프로그래밍 도구를 제공하는 데에 있다.

Claims (14)

  1. 소스 프로그램을 입력받아 추상 구문 트리와 심벌 테이블을 만드는 파서 수단과; 상기 파서 수단이 만든 심벌 테이블을 이용하여 프로그램 본래의 의미를 유지하면서 문장의 수행 순서를 다시 정하는 데에 필요한 정보를 추출하는 사전 종속적 분석 수단과; 상기 사전 종속적 분석 수단에 의해 추출된 정보를 이용하여 병렬 처리를 위한 자료를 분산시키고, 그 자료에 대한 병렬적인 제어를 수행하는 병렬 변환 수단과; 상기 병렬 변환 수단의 수행결과에 의해 통신분석을 한 후, 상기 분산된 자료의 동적 할당을 위한 코드를 생성하고, 병렬 수행을 위한 루프 경계를 조정하도록 하는 통신 변환 수단과; 상기 통신 변환 수단의 수행 결과로 생성된 코드를 최적화하는 최적화 수단; 및 상기 최적화 수단에 의해 최적화된 코드를 분할하고 상기 파서 수단에 의해 생성된 추상 구문 트리와 심벌 테이블을 C 프로그램과 라이브러리 호출 형태로 변환하는 코드 변환 수단을 포함하는 것을 특징으로 하는 병렬 컴파일러.
  2. 제1항에 있어서, 상기 파서 수단을 위해 어휘 분석, 구문 분석, 기본적인 의미 분석을 함께 수행할 수 있도록 정의된 예약어와 확장된 문법을 더 포함하는 것을 특징으로 하는 병렬 컴파일러.
  3. 제1항에 있어서, 상기 병렬 변환 수단이 제어 병렬 수행을 노드 내로 한정함으로써 일정 시점에서 서로 다른 작업들이 동시에 수행되는 것으로 자료를 공유하는 경우에 대비하는 것을 특징으로 하는 병렬 컴파일러.
  4. 제1항에 있어서, 사용자가 컴파일러를 수행할 수 있도록 컴파일러 구동 명령어인 드라이버와; 상기 코드 변환 수단의 출력인 C 프로그램과 라이브러리 호출 형태를 컴파일하는 C 컴파일러; 및 상기 C 컴파일러가 컴파일할 때에 이용하는 라이브러리를 더 포함하는 것을 특징으로 하는 병렬 컴파일러.
  5. 제4항에 있어서, 상기 라이브러리는, 내부적으로 제공되는 내장 라이브러리와; 포트란 언어를 지원하는 HPF 라이브러리와; 실행 시에 동적 링크되는 실행시간 라이브러리; 및 운영체제와 인터페이스를 위한 하부 인터페이스로 구성되는 것을 특징으로 하는 병렬 컴파일러.
  6. 제5항에 있어서, 상기 실행시간 라이브러리가, 자료 분산을 위한 노드간의 통신을 위하여 MPI 라이브러리를 사용함으로써 자료 병렬 수행을 지원하며; 하드웨어 상의 노드 내에 있는 여러 처리기에서 작업을 병렬 수행하게 하기 위하여 쓰레드 라이브러리를 이용함으로써 제어 병렬화를 지원하는 것을 특징으로 하는 병렬 컴파일러.
  7. 자료 병렬성과 제어 병렬성을 모두 지원하여 병렬자원을 효율적으로 이용할 수 있는 병렬 컴파일러 설계방법에 있어서, 컴파일하기 위해 외부로부터 입력된 소스 프로그램 및 상기 컴파일러를 초기화하는 제1과저과; 상기 입력된 소스 프로그램을 파싱하여 추상 구문 트리와 심벌 테이블을 만드는 제2과정과; 자료를 분산 할당하고 제어를 병렬화하는 제3과정과; 통신 분석과 통신 변환을 수행하는 제4과정과; 상기 제2과정에서 생성된 추상 구문 트리 및 심벌테이블을 C 프로그램과 라이브러리 호출 형태로 변환하여 출력하는 제5과정; 및 오픈된 파일을 클로우즈하고 작업을 종료하는 제6과정을 포함하는 것을 특징으로 하는 병렬 컴파일러 설계방법.
  8. 제7항에 있어서, 상기 제2과정은, 상기 제1과정에서 입력된 소스 프로그램에 에러가 발생했는지 판단하는 제1단계와; 상기 제1단계에서 에러가 발생했다고 판단되면, 상기 제6과정으로 진행하고, 에러가 발생하지 않았다고 판단되면, 상기 제3과정으로 진행하는 제2단계로 이루어지는 것을 특징으로 하는 병렬 컴파일러 설계방법.
  9. 제7항에 있어서, 상기 제어 병렬화 방법이 프로그래머가 병렬 포트란 프로그램을 작성할 수 있도록 컴파일러에서 제1변수[최대 제1변수=정수]와 제2변수 구문으로 제공하는 것을 특징으로 하는 제어 병렬화 설계방법.
  10. 제9항에 있어서, 상기 제1변수와 상기 제2변수 구문 사이에는 자료 공유 변수 리스트와 블록들이 위치하는 것을 특징으로 하는 제어 병렬화 설계방법.
  11. 제10항에 있어서, 상기 자료 공유 변수 리스트가, 병렬로 수행되는 각 블록에서 사용되는 변수들을 정의하는 영역으로 공유 형태와 전유 형태의 두 가지 형태로 정의할 수 있는 것을 특징으로 하는 제어 병렬화 설계방법.
  12. 제9항에 있어서, 모든 블록들은 병렬로 수행될 수 있는데 상기 최대 제1변수에 의해 처리기 수가 결정되는 것을 특징으로 하는 제어 병렬화 설계방법.
  13. 제9항에 있어서, 제2변수 구문이 수행되는 시점에 묵시적인 동기화가 이루어지는 것을 특징으로 하는 제어 병렬화 설계방법.
  14. 컴파일할 때의 라이브러리 이용 방법에 있어서, 구문으로 작성된 프로그램이 컴파일러에서 실행 시간 라이브러리 호출로 번역되는 제1과정과; 번역된 실행 시간 라이브러리 함수가 하부 인터페이스를 통해 운영 체제에서 제공하는 쓰레드 라이브러리를 이용하여 구문 내의 블록 개수만큼 쓰레드를 생성하게 하는 제2과정; 및 각 블록을 하나의 쓰레드에 실어서 하드웨어 상의 여러 처리기에서 생성된 쓰레드가 병렬로 수행하게 하는 제3과정; 및 수행이 완료된 쓰레드를 결합하게 하는 제4과정을 포함하는 것을 특징으로 하는 라이브러리 이용방법.
KR1019950047057A 1995-12-06 1995-12-06 병렬 컴파일러 및 그 제어 병렬화 설계방법 KR0176088B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019950047057A KR0176088B1 (ko) 1995-12-06 1995-12-06 병렬 컴파일러 및 그 제어 병렬화 설계방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019950047057A KR0176088B1 (ko) 1995-12-06 1995-12-06 병렬 컴파일러 및 그 제어 병렬화 설계방법

Publications (2)

Publication Number Publication Date
KR970049508A KR970049508A (ko) 1997-07-29
KR0176088B1 true KR0176088B1 (ko) 1999-05-15

Family

ID=19438034

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019950047057A KR0176088B1 (ko) 1995-12-06 1995-12-06 병렬 컴파일러 및 그 제어 병렬화 설계방법

Country Status (1)

Country Link
KR (1) KR0176088B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101279179B1 (ko) * 2006-03-30 2013-06-26 아토스텍 오이 병렬 프로그램 생성 방법
US10963323B2 (en) 2018-10-25 2021-03-30 Sangyung University Industry-Academy Cooperation Foundation Method and apparatus for transformation of MPI programs for memory centric computers
KR102236700B1 (ko) * 2019-11-18 2021-04-05 연세대학교 산학협력단 패킷 프로세싱 프로그램 병렬화 컴파일 장치 및 방법
US11340876B2 (en) 2019-01-25 2022-05-24 Samsung Electronics Co., Ltd. Method implemented by processor of electronic device and processor to operate electronic device for heterogeneous processors

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101279179B1 (ko) * 2006-03-30 2013-06-26 아토스텍 오이 병렬 프로그램 생성 방법
US10963323B2 (en) 2018-10-25 2021-03-30 Sangyung University Industry-Academy Cooperation Foundation Method and apparatus for transformation of MPI programs for memory centric computers
US11340876B2 (en) 2019-01-25 2022-05-24 Samsung Electronics Co., Ltd. Method implemented by processor of electronic device and processor to operate electronic device for heterogeneous processors
KR102236700B1 (ko) * 2019-11-18 2021-04-05 연세대학교 산학협력단 패킷 프로세싱 프로그램 병렬화 컴파일 장치 및 방법

Also Published As

Publication number Publication date
KR970049508A (ko) 1997-07-29

Similar Documents

Publication Publication Date Title
Loogen et al. Parallel functional programming in Eden
US8930892B2 (en) System and method for computational unification of heterogeneous implicit and explicit processing elements
US11928447B2 (en) Configuration management through information and code injection at compile time
US20130086549A1 (en) Flow-optimization system and method for cloud computing
US8966461B2 (en) Vector width-aware synchronization-elision for vector processors
Agrawal et al. Interprocedural compilation of irregular applications for distributed memory machines
Metcalf The seven ages of fortran
KR0176088B1 (ko) 병렬 컴파일러 및 그 제어 병렬화 설계방법
Shei et al. MATLAB parallelization through scalarization
Chamberlain et al. Factor-join: A unique approach to compiling array languages for parallel machines
Dorta et al. Basic skeletons in llc
Min et al. Portable compilers for OpenMP
Abramov et al. OpenTS: an outline of dynamic parallelization approach
Pahade et al. Introduction to Compiler and its Phases
KR100246544B1 (ko) 고속병렬컴퓨터에서 병렬 구문에 의한 쓰레드 생성 방법
Zima et al. Automatic Restructuring for Parallel and Vector Computers
KR100198956B1 (ko) 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법
Bozkus et al. Compiling hpf for distributed memory mimd computers
Babb et al. Retargetable high performance Fortran compiler challenges
JP3551352B2 (ja) ループ分割方法
Cantiello et al. Compilers, techniques, and tools for supporting programming heterogeneous many/multicore systems
Huang et al. Extending global optimizations in the OpenUH compiler for OpenMP
Kumar et al. Compiling MATLAB for high performance computing via x10
CN117971231A (zh) 一种代码处理的方法及装置、电子设备、存储介质
타로파 et al. Designing a Generic Compiler for Scalable Computing Fabric

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20071024

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee