KR970049508A - 병렬 컴파일러 및 그 제어 병렬화 설계방법 - Google Patents
병렬 컴파일러 및 그 제어 병렬화 설계방법 Download PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/451—Code distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/443—Optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/45—Exploiting coarse grain parallelism in compilation, i.e. parallelism between groups of instructions
- G06F8/457—Communication
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)
- 자료 병렬성과 제어 병렬성을 모두 지원하여 공유 분산 메모리를 혼합한 고속 병렬 컴퓨터 구조에서 병렬자원을 효율적으로 이용할 수 있는 병렬 컴파일러에 있어서, 소스 프로그램을 입력받아 추상 구문 트리와 심벌 테이블을 만드는 파서수단과; 상기 파서 수단이 만든 심벌 테이블을 이용하여 프로그램 본래의 의미를 유지하면서 문장의 수행 순서를 다시 정하는 데에 필요한 정보를 추출하는 사정 종속적 분석 수단과; 상기 사전 종속적 분석 수단에 의해 추출된 정보를 이용하여 자료 분산 수행과 제어 병렬 수행을 담당하는 병렬 변환 수단과; 상기 병렬 변환 수단의 수행 결과를 이용하여 배열 할당문 및 루프 등에서 필연적으로 삽입이 요구될 때를 위하여 통신 프리미티브를 선택하거나 분산 자료의 동적인 할당을 위한 코드를 십압하거나 병렬 수행을 위한 루프 경계를 조정하거나 적절한 조건문을 삽입하는 통신 변환 수단과; 상기 통신 변환 수단의 수행 결과로 생성된 코드를 최적화하는 최적화 수단; 및 상기 최적화 수단에 의해 최적화된 프로그램을 이전에 구축된 정보를 이용하여 분할하고 메시지를 산출하는 데에 추상 구문 트리를 C 프로그램과 라이브러리 호출 형태로 변환하는 코드 변환 수단을 포함하는 것을 특징으로 하는 병렬 컴파일러.
- 제1항에 있어서, 상기 파서 수단을 위해 어휘 분석, 구문 분석, 기본적인 의미 분석을 함께 수행할 수 있도록 정의된 예약어와 확장된 문법을 구비하는 것을 특징으로 하는 병렬 컴파일러.
- 제1항에 있어서, 상기 병렬 변환 수단이 제어 병렬 수행을 노드 내로 한정함으로써 일정 시점에서 서로 다른 작업들이 동시에 수행되는 것으로 자료를 공유하는 경우에 대비하는 것을 특징으로 하는 병렬 컴파일러.
- 제1항에 있어서, 사용자가 컴파일러를 수행할 수 있도록 컴파일러 구동 명령어인 드라이버와; 상기 코드 변환 수단의 출력인 C 프로그래모가 라이브러리 호출 형태를 컴파일 하는 C 컴파일러; 및 상기 C 컴파일러가 컴파일할 때에 이용하는 라이브러리를 더 포함하는 것을 특징으로 하는 병렬 컴파일러.
- 제4항에 있어서, 상기 라이브러리가, 내부적으로 제공되는 내장 라이브러리와; 포트란 언어를 지원하는 HPF 라이브러리와; 실행 시에 동적 링크되는 실행시간 라이브러리;및 운영체제와 인터페이스를 위한 하부 인터페이스로 구성되는 것을 특징으로 하는 병렬 컴파일러.
- 제5항에 있어서, 상기 실행시간 라이브러리가, 자료 분산을 위한 노드간의 통신을 위하여 MPI 라이브러리를 사용함으로써 자료 병렬 수행을 지원하며; 하드웨어 상의 노드 내에 있는 여러 처리기에서 작업을 병렬 수행하게 하기 위하여 스레드 라이브러리를 이용함으로써 제어 병렬화를 지원하는 것을 특징으로 하는 병렬 컴파일러.
- 자료 병렬성과 제어 병렬성을 모두 지원하여 공유 분산 메모리를 혼합한 고속 병렬 컴퓨터 구조에서 병렬 자원을 효율적으로 이용할 수 있는 병렬 컴파일러 설계방법에 있어서, 초기화하는 제1과정과; 파싱하여 추상 구문 트리와 심벌 테이블을 만드는 제2과정과; 자료를 분산 할당하고 제어를 병렬화하는 제3과정과; 토신 분석과 통신 변환을 수행하는 제4과정과; C프로그램과 라이브러리 호출 형태의 프로그램을 출력하는 제5과정; 및 오픈된 파일을 크로우즈하고 작업을 종료하는 제6과정을 포함하는 것을 특징으로 하는 병렬 컴파일러 설계방법.
- 제7항에 있어서, 상기 제1과정이, 입력된 컴파일 명령을 처리하는 제1단계와; 입출력 파일을 오픈하는 제2단계와; 에러 메시지와 심벌 테이블 등을 초기화하는 제3단계와; 필요에 따라 전처리기를 호출하는 제4단계와; 서브프로그램이 존재하는지 판단하는 제5단계와; 상기 제5단계에서 서브프로그램이 존재하지 않는다고 판단되면, 상기 제6과정으로 진행하는 제6단계; 및 상기 제5단계에서 서브프로그래밍 존재한다고 판단되면, 각 서브프로그램에 대하여 초기화를 수행하는 제7단계로 이루어지는 것을 특징으로 하는 병렬 컴파일러 설계방법.
- 제7항에 있어서, 상기 제2과정이, 에러가 발행했는지 판단하는 제1단계와; 상기 제1단계에서 에러가 발생 했다고 판단되면, 상기 제6과정으로 진행하는 제2단계; 및 상기 제1단계에서 에러가 발생하지 않았다고 판단되면, 상기 제3과정으로 진행하는 제3단계로 이루어 지는 것을 특징으로 하는 병렬 컴파일러 설계방법.
- 제7항에 있어서, 상기 제어 병렬화 방법이 프로그래머가 병렬 포트란 프로그램을 작성할 수 있도록 컴파일러에서 제1변수[최대 제1변수=정수]와 제2변수 구문으로 제공하는 것을 특징으로 하는 제어 병렬화 설계방법.
- 제10항에 있어서, 상기 제1변수와 상기 제2변수 구문 사이에는 자료 공유 변수 리트스와 블록들이 위치하는 것을 특징으로 하는 제어 병렬화 설계방법.
- 제11항에 있어서, 상기 자료 공유 변수 리스트가, 병렬로 수행되는 각 블록에서 사용되는 변수들을 정의하는 영역으로 공유 형태와 전유 형태의 두 가지 형태로 정의할 수 있는 것을 특징으로 하는 제어 병렬화 설계방법.
- 제10항에 있어서, 모든 블록들은 병렬로 수행될 수 있는데 상기 최대 제1변수에 의해 처리기 수가 결정되는 것을 특징으로 하는 제어 병렬화 설계방법.
- 제10항에 있어서, 제2변수 구문이 수행되는 시점에 묵시적인 동기화가 이루어지는 것을 특징으로 하는 제어 병렬화 설계방법.
- 컴파일할 때의 라이브러리 이용방법에 있어서, 구문으로 작성된 프로그램이 컴파일러에서 실행 시간 라이브러리 호출로 번역되는 제1과정과; 번역된 실행 시간 라이브러리 함수가 하부 인터페이스를 통해 운영 체제에서 제공하는 스레드 라이브러리를 이용하여 구분 내의 블록 개수만큼 스레드를 생성하게 하는 제2과정; 및 각 블록을 하나의 스레드에 실어서 하드웨어 상의 여러 처리기에서 생성된 스레드가 병렬로 수행하게 하는 제3과정; 및 수행이 완료된 스레드를 결합하게 하는 제4과정을 포함하는 것을 특징으로 하는 라이브러리 이용방법.※ 참고사항 : 최초출원 내용에 의하여 공개하는 것임.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2016489A4 (en) * | 2006-03-30 | 2009-05-06 | Atostek Oy | METHOD FOR GENERATING PARALLEL PROGRAMS |
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 |
KR102702543B1 (ko) | 2019-01-25 | 2024-09-05 | 삼성전자주식회사 | 이기종 프로세서들을 위해 전자 장치의 프로세서에 의해 구현되는 방법 및 전자 장치를 동작시키기 위한 프로세서 |
KR102236700B1 (ko) * | 2019-11-18 | 2021-04-05 | 연세대학교 산학협력단 | 패킷 프로세싱 프로그램 병렬화 컴파일 장치 및 방법 |
-
1995
- 1995-12-06 KR KR1019950047057A patent/KR0176088B1/ko not_active IP Right Cessation
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) | 유형 추론 및 유형 지향 후기 바인딩 | |
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 | |
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 | |
US20090112568A1 (en) | Method for Generating a Simulation Program Which Can Be Executed On a Host Computer | |
GB2420638A (en) | Method of substituting code fragments in Internal Representation | |
Pahade et al. | Introduction to Compiler and its Phases | |
US7694285B2 (en) | Relaxed and extended delegates | |
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 | |
CN112579088A (zh) | 面向异构混合编程的一站式程序编译方法 |
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 |