1 |
1
애플리케이션을 실행하는 이종 시스템에 있어서,상기 애플리케이션의 생성에 사용된 병렬 프로그래밍 모델을 지원하지 않는 적어도 하나의 계산 디바이스; 및상기 계산 디바이스의 동작을 제어하며, 상기 애플리케이션의 코드를 호스트 코드 및 디바이스 코드로 나누어서 처리하는 호스트 프로세서를 포함하며,상기 호스트 프로세서는, 상기 호스트 코드를 컴파일하여 호스트 바이너리를 생성하고, 상기 디바이스 코드를 상기 계산 디바이스가 지원하는 병렬 프로그래밍 모델로 번역한 후 컴파일하여 커널 바이너리를 생성하고, 상기 호스트 바이너리를 실행하여 상기 계산 디바이스가 상기 커널 바이너리를 실행하도록 제어하며,병렬 프로그래밍 모델들간의 API의 대응관계를 포함하는 클러스터 런타임 코드 및 상기 계산 디바이스에 대응되는 벤더 런타임 라이브러리를 이용하여 상기 호스트 코드를 컴파일함으로써 상기 호스트 바이너리를 생성하며,상기 호스트 코드에서 호출되는 API에 대응되며, 상기 계산 디바이스가 지원하는 병렬 프로그래밍 모델에서 사용되는 API를 상기 클러스터 런타임 코드를 참조하여 호출하는 것을 특징으로 하는, 이종 시스템
|
2 |
2
삭제
|
3 |
3
삭제
|
4 |
4
제1항에 있어서,상기 호스트 프로세서는,상기 클러스터 런타임 코드를 참조하여 호출된 API를, 상기 계산 디바이스의 제조사가 제공하는 상기 벤더 런타임 라이브러리를 이용하여 처리하는 것을 특징으로 하는 이종 시스템
|
5 |
5
제1항에 있어서,상기 호스트 프로세서는,상기 호스트 코드를 컴파일함에 있어서, 상기 호스트 코드의 언어에 대응되는 상용 컴파일러를 사용하는 것을 특징으로 하는 이종 시스템
|
6 |
6
제1항에 있어서,상기 호스트 프로세서는,상기 디바이스 코드를 컴파일함에 있어서, 상기 계산 디바이스의 제조사가 제공하는 벤더 컴파일러를 사용하는 것을 특징으로 하는 이종 시스템
|
7 |
7
이종 시스템에서 애플리케이션을 실행하는 방법에 있어서,상기 애플리케이션의 코드를 호스트 코드 및 디바이스 코드로 분리하는 단계;상기 호스트 코드를 컴파일하여 호스트 바이너리를 생성하는 단계;상기 이종 시스템에 포함된 적어도 하나의 계산 디바이스가 상기 애플리케이션의 생성에 사용된 병렬 프로그래밍 모델을 지원하지 않는다면, 상기 디바이스 코드를 상기 계산 디바이스가 지원하는 병렬 프로그래밍 모델로 번역한 후 컴파일하여 커널 바이너리를 생성하는 단계; 및상기 호스트 바이너리를 실행하여 상기 계산 디바이스가 상기 커널 바이너리를 실행하도록 제어하는 단계를 포함하며,상기 호스트 바이너리를 생성하는 단계는,병렬 프로그래밍 모델들간의 API의 대응관계를 포함하는 클러스터 런타임 코드 및 상기 계산 디바이스에 대응되는 벤더 런타임 라이브러리를 이용하여 상기 호스트 코드를 컴파일함으로써 상기 호스트 바이너리를 생성하며,상기 호스트 바이너리를 실행하여 상기 계산 디바이스가 상기 커널 바이너리를 실행하도록 제어하는 단계는,상기 호스트 코드에서 호출되는 API에 대응되며, 상기 계산 디바이스가 지원하는 병렬 프로그래밍 모델에서 사용되는 API를 상기 클러스터 런타임 코드를 참조하여 호출하는 단계; 및상기 클러스터 런타임 코드를 참조하여 호출된 API를, 상기 계산 디바이스의 제조사가 제공하는 상기 벤더 런타임 라이브러리를 이용하여 처리하는 단계를 포함하는 것을 특징으로 하는, 방법
|
8 |
8
삭제
|
9 |
9
삭제
|
10 |
10
제7항에 있어서,상기 호스트 바이너리를 생성하는 단계는,상기 호스트 코드의 언어에 대응되는 상용 컴파일러를 사용하여 상기 호스트 코드를 컴파일하는 것을 특징으로 하는 방법
|
11 |
11
제7항에 있어서,상기 커널 바이너리를 생성하는 단계는,상기 계산 디바이스의 제조사가 제공하는 벤더 컴파일러를 사용하여 상기 디바이스 코드를 컴파일하는 것을 특징으로 하는 방법
|
12 |
12
제7항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록 매체
|
13 |
13
이종 시스템에 의해 수행되며, 제7항에 기재된 방법을 수행하기 위해 매체에 저장된 컴퓨터 프로그램
|