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

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

Info

Publication number
KR970049508A
KR970049508A KR1019950047057A KR19950047057A KR970049508A KR 970049508 A KR970049508 A KR 970049508A KR 1019950047057 A KR1019950047057 A KR 1019950047057A KR 19950047057 A KR19950047057 A KR 19950047057A KR 970049508 A KR970049508 A KR 970049508A
Authority
KR
South Korea
Prior art keywords
parallel
compiler
library
program
conversion means
Prior art date
Application number
KR1019950047057A
Other languages
English (en)
Other versions
KR0176088B1 (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

병렬 컴파일러 및 그 제어 병렬화 설계방법
본 내용은 요부공개 건이므로 전문내용을 수록하지 않았음
제2도는 본 발명에 따른 병렬 포트란 컴파일러 구성도,
제4도는 라이브러리 구성 및 인터페이스를 나타낸 도면.

Claims (15)

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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8527971B2 (en) * 2006-03-30 2013-09-03 Atostek Oy Parallel program generation method
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
KR20200093105A (ko) 2019-01-25 2020-08-05 삼성전자주식회사 이기종 프로세서들을 위해 전자 장치의 프로세서에 의해 구현되는 방법 및 전자 장치를 동작시키기 위한 프로세서
KR102236700B1 (ko) * 2019-11-18 2021-04-05 연세대학교 산학협력단 패킷 프로세싱 프로그램 병렬화 컴파일 장치 및 방법

Also Published As

Publication number Publication date
KR0176088B1 (ko) 1999-05-15

Similar Documents

Publication Publication Date Title
Loogen et al. Parallel functional programming in Eden
US5586328A (en) Module dependency based incremental compiler and method
US5778212A (en) Interprocedural analysis user interface
Wipliez et al. Software code generation for the RVC-CAL language
KR101354803B1 (ko) 유형 추론 및 유형 지향 후기 바인딩
EP2315118B1 (en) Method and apparatus for enabling parallel processing during execution of a cobol source program using two-stage compilation
US5812855A (en) System and method for constaint propagation cloning for unknown edges in IPA
US8869126B2 (en) Method and apparatus enabling multi threaded program execution for a Cobol program including OpenMP directives by utilizing a two-stage compilation process
US8966461B2 (en) Vector width-aware synchronization-elision for vector processors
US20090328016A1 (en) Generalized expression trees
US8930925B2 (en) Method for enabling compilation of a Cobol source program utilizing a two-stage compilation process, the Cobol source program including a mix of Cobol, C++ or JAVA statements, and optional OpenMP directives
Metcalf The seven ages of fortran
KR970049508A (ko) 병렬 컴파일러 및 그 제어 병렬화 설계방법
Shei et al. MATLAB parallelization through scalarization
Tian et al. Compression of correlated sources using LDPC codes
Sah et al. An introduction to the Rush language
Adamski et al. Polyhedral source-to-source compiler
GB2420638A (en) Method of substituting code fragments in Internal Representation
US7694285B2 (en) Relaxed and extended delegates
Pahade et al. Introduction to Compiler and its Phases
Tao et al. Automatic parallelization of programs via software stream rewriting
KR100246544B1 (ko) 고속병렬컴퓨터에서 병렬 구문에 의한 쓰레드 생성 방법
KR100198956B1 (ko) 쓰레드(thread) 기반형 번역기에서의 지역변수 테이블 설정방법
WO2002003194A2 (en) Multi-entry threading method and apparatus for automatic and directive-guided parallelization of a source program
Boyland et al. Attributed transformational code generation for dynamic compilers

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