KR101748210B1 - 분산 처리 시스템 및 분산 처리 시스템에서의 파일 처리 방법 - Google Patents
분산 처리 시스템 및 분산 처리 시스템에서의 파일 처리 방법 Download PDFInfo
- Publication number
- KR101748210B1 KR101748210B1 KR1020160003923A KR20160003923A KR101748210B1 KR 101748210 B1 KR101748210 B1 KR 101748210B1 KR 1020160003923 A KR1020160003923 A KR 1020160003923A KR 20160003923 A KR20160003923 A KR 20160003923A KR 101748210 B1 KR101748210 B1 KR 101748210B1
- Authority
- KR
- South Korea
- Prior art keywords
- file
- node
- input
- output
- computing device
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
- G06F15/163—Interprocessor communication
- G06F15/17—Interprocessor communication using an input/output type connection, e.g. channel, I/O port
-
- G06F17/30194—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
본 발명은 분산 처리 시스템 및 분산 처리 시스템에서의 파일 처리 방법에 관한 것이다. 본 발명의 제1 측면에 따르면 복수의 노드를 포함하는 분산 처리 시스템은 복수의 노드 중 계산 노드를 결정하는 호스트 노드 및 호스트 노드의 결정에 기초하여, 파일이 저장된 파일 시스템로부터 특정 파일의 데이터의 입출력을 수행하는 계산 노드를 포함하여, 호스트 노드 이외의 계산 노드에서도 직접 파일 입출력을 가능하게 한다.
Description
본 발명은 분산 처리 시스템 및 분산 처리 시스템에서의 파일 처리 방법에 관한 것이다.
OpenCL(Open Computing Language)는 이종 컴퓨팅 환경에서 실행되는 프로그램들을 위한 표준 프로그래밍 모델이다.
이러한 OpenCL 은 하나의 호스트에 여러 개의 계산 디바이스로 구성되어 있는 시스템을 가정하며, 하나의 계산 디바이스는 다시 여러 개의 계산 유닛으로 분리되며, 각 계산 유닛은 하나 이상의 계산 요소로 구성된다.
예를 들어, 호스트는 운영체제를 실행하고 있으며, CPU, GPU, Cell BE processor®, Intel Xeon Phi coprocessor® 등이 계산 디바이스가 될 수 있다.
이와 같은 OpenCL의 실행 모델에서는 호스트가 필요한 데이터를 계산 디바이스에 복사하고, 복사된 데이터를 커널이라는 OpenCL C 언어로 구성된 프로그램을 통해 계산 디바이스에서 계산을 수행하여, 계산된 결과를 다시 호스트의 메모리로 복사한다.
이러한 일련의 동작들은 모두 명령(Command)이라는 형태로 각 계산 디바이스에 전달되어 실행된다.
하지만 OpenCL 실행 모델에서는 계산 디바이스가 시스템 콜을 사용하여 직접 파일 입출력을 수행할 수 있는 어떠한 수단도 제시하지 않는다. 따라서 파일 입출력과 OpenCL 연산을 동시에 수행하고자 할 경우, OpenCL 호스트 프로그램이 파일 입출력을 수행하여 계산 디바이스에 데이터를 넘겨주는 형태로 구현하여야 한다.
일반적으로 분산 시스템에서 OpenCL 을 사용하여 이종 컴퓨팅을 수행하고 자 할 때에는, 분산 시스템을 구성하는 노드 간 통신을 수행할 수 있는 MPI(Message Passing Interface) 등의 통신 라이브러리와 OpenCL을 같이 사용하여야 한다. 이 경우 OpenCL과 MPI를 모두 사용할 줄 알아야 하므로 프로그래밍이 복잡하다는 문제점이 있다.
그런데 OpenCL 실행 모델에서는 계산 디바이스가 로컬 시스템에 설치된 디바이스라는 제한을 두지 않기 때문에, 복수개의 노드로 구성되는 분산 시스템에서도 OpenCL을 이용한 데이터처리 실행 모델을 구현할 수 있다.
이 경우, 분산 시스템을 구성하는 노드 중 하나를 호스트 프로그램을 수행하는 호스트 노드로 설정할 수 있고, 다른 노드를 계산을 수행하는 계산 노드로 설정할 수 있으며, 계산 노드의 계산 디바이스들을 활용하여 연산을 수행할 수 있다.
이와 같은 실행 모델을 사용하여 파일 입출력과 연산을 동시에 수행할 경우, 분산 시스템의 호스트 노드는 파일입출력과 계산 노드로 입력된 데이터의 전송을 수행하고, 계산 노드는 호스트 노드로부터 전송된 데이터를 처리하게 된다.
위와 같은 경우 호스트 노드에서만 파일 입출력이 수행되므로, 계산 노드가 호스트 노드를 통해 입력된 데이터를 처리하기 위해서는 호스트 노드와 계산 노드 사이에 대량의 데이터 전송이 빈번하게 발생하게 되고, 이에 따라 성능저하가 발생하는 문제점이 있다.
관련하여 선행기술문헌인 한국공개특허번호 제10-1998-0036294호에서는, MPI함수를 이용한 HPCC함수들을 제안함으로써 공유 메모리 형태의 자료 분산과 분산 메모리 형태의 자료 분산을 혼용하여 한 노드 내에서는 공유 메모리 형태의 자료 분산을 수행하고, 노드를 벗어나면 분산 메모리 형태의 자료 분산을 수행하는 공유 메모리 시스템 상에서의 자료 분산 및 통신 방법을 제안하고 있는데, 선행기술문헌 또한 상술된 바와 같은 문제점을 해소하지 못한다.
따라서 상술된 문제점을 해결하기 위한 기술이 필요하게 되었다.
한편, 전술한 배경기술은 발명자가 본 발명의 도출을 위해 보유하고 있었거나, 본 발명의 도출 과정에서 습득한 기술 정보로서, 반드시 본 발명의 출원 전에 일반 공중에게 공개된 공지기술이라 할 수는 없다.
본 발명의 일실시예는 분산 처리 시스템 장치 및 분산 처리 시스템에서의 파일 처리 방법을 제시하는 데에 목적이 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 제 1 측면에 따르면, 복수의 노드를 포함하는 분산 처리 시스템은, 복수의 노드 중 계산 노드를 결정하는 호스트 노드 및 상기 호스트 노드의 결정에 기초하여, 파일이 저장된 파일 시스템로부터 특정 파일의 데이터의 입출력을 수행하는 계산 노드를 포함한다.
본 발명의 제2 측면에 따르면, 복수의 노드를 포함하는 분산 처리 시스템을 이용한 파일 처리 방법은, 호스트 노드가 상기 복수의 노드 중 계산 노드를 결정하는 단계 및 결정된 계산 노드가 파일이 저장된 파일 시스템로부터 특정 파일의 데이터의 입출력을 수행 단계를 포함한다.
본 발명의 제 3 측면에 따르면, 본 발명은 파일 처리 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체이며, 상기 파일 처리 방법은 호스트 노드가 상기 복수의 노드 중 계산 노드를 결정하는 단계 및 결정된 계산 노드가 파일이 저장된 파일 시스템로부터 특정 파일의 데이터의 입출력을 수행 단계를 포함한다.
본 발명의 제 4측면에 따르면, 본 발명은 분산 처리 시스템에 의해 수행되며, 파일 처리 방법을 수행하기 위한 기록매체이며, 상기 파일 처리 방법은 호스트 노드가 상기 복수의 노드 중 계산 노드를 결정하는 단계 및 결정된 계산 노드가 파일이 저장된 파일 시스템로부터 특정 파일의 데이터의 입출력을 수행 단계를 포함한다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 본 발명의 일실시예는 계산 노드를 통한 파일입출력을 수행할 수 있는 OpenCL API(Application Programming Interface)를 추가함으로써 호스트 노드와 계산 노드 간 데이터 전송을 위한 통신을 수행하지 않게 하여, 노드간 통신에 따른 성능저하를 방지할 수 있다.
또한, 본 발명의 과제 해결 수단 중 어느 하나에 의하면, MPI와 같은 통신 라이브러리를 사용하지 않고, OpenCL만으로 분산 시스템의 계산 노드에서 파일입출력을 가능하게 할 수 있어, 병렬 컴퓨팅 프레임워크 기반 분산 시스템을 프로그래밍하려는 프로그래머에게 보다 쉬운 프로그래밍 환경을 제공하며, 이에 프로그래머는 클러스터 시스템의 확장을 용이하게 수행할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일실시예에 따른 분산 처리 시스템의 구성도이다.
도 2 는 본 발명의 일실시예에 따른 분산 처리 시스템에서의 파일 처리 방법을 설명하기 위한 순서도이다.
도 3 은 본 발명의 일실시예에 따른 노드와 파일시스템의 연결관계를 나타낸 예시도이다.
도 4 는 본 발명의 일실시예에 따른 OpenCL의 객체간 의존관계를 도시한 예시도이다.
도 2 는 본 발명의 일실시예에 따른 분산 처리 시스템에서의 파일 처리 방법을 설명하기 위한 순서도이다.
도 3 은 본 발명의 일실시예에 따른 노드와 파일시스템의 연결관계를 나타낸 예시도이다.
도 4 는 본 발명의 일실시예에 따른 OpenCL의 객체간 의존관계를 도시한 예시도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일실시예에 따른 분산 시스템을 설명하기 위한 구성도이다.
분산 처리 시스템(100)은, 이종 클러스터 환경을 제공할 수 있는 시스템으로서, OpenCL(Open Computing Language) 애플리케이션을 실행시킬 수 있다.
이와 같은 분산 처리 시스템(100)은, 네트워크(10) 및 하나 이상의 노드(20)를 포함할 수 있다.
네트워크(10)는 인피니밴드 또는 이더넷 등과 같은 상호 접속 네트워크로 구현될 수 있다. 이러한 네트워크(10)를 통해 하나 이상의 노드(20)는 OpenCL 애플리케이션의 동작을 위한 통신을 수행할 수 있다.
관련하여 노드(20)는 하나 이상의 계산 디바이스를 포함할 수 있으며, 하나 이상의 계산 디바이스를 이용하여 OpenCL 애플리케이션의 명령 또는 워크로드를 처리할 수 있다.
이때 계산 디바이스는 그래픽 처리도 가능하며 그래픽 처리 이외에도 일반적인 계산이 가능할 수 있다. 이러한 계산 디바이스는 예를 들어, CPU(Central Processing Unit), GPU(Graphics Processing Unit), Cell BE processor, Intel® Xeon phi coprocessor 또는 가속기(accelerator)일 수 있다.
또한 계산 디바이스는, 하나 이상의 계산 유닛으로 구성될 수 있다.
상술된 바와 같은 노드(20)를 포함하는 분산 처리 시스템(100)은, 시스템을 구성하는 모든 노드에서 OpenCL 애플리케이션을 실행시킬 수 있으며, 특히, 일 노드에서는 타(他) 노드에 위치하는 계산 디바이스를 가상화시켜, 마치 상기 계산 디바이스를 상기 일 노드에서 포함하고 있는 것처럼 구현할 수 있다.
상술된 노드(20)를 수행하는 역할에 따라 호스트 노드(21)와 계산 노드(22)로 나뉠 수 있으며, 호스트 노드(21)는 호스트 프로그램을 수행할 수 있으며, 계산 노드(22)는 하나 이상의 계산 디바이스를 이용하여 호스트 노드(21)에 의해 수행되는 호스트 프로그램에 따라 계산 등의 명령을 처리할 수 있다.
한편 도 2 는 본 발명의 일실시예에 따른 분산 처리 시스템(100)의 파일 입출력 방법을 설명하기 위한 순서도이다.
분산 처리 시스템(100)에 포함되는 하나 이상의 노드(20) 중에서 일 노드(20)를 호스트 노드(21)로서 결정될 수 있고, 결정된 호스트 노드(21)에서는 호스트 프로그램이 실행될 수 있다(S210).
이때, 호스트 노드(21)는 사용자에 의해 결정되거나, 또는 분산 시스템에서 임의로 일 노드로 선택될 수 있다.
호스트 노드(21)는 파일 입출력을 수행할 계산 노드를 결정할 수 있다(S215).
기존의 OpenCL 객체들 중에서는 파일을 명시적으로 다루는 객체가 없으므로 확장된 OpenCL API 를 구현하고, 계산 노드가 직접 파일을 입출력하기 위해서는 파일을 다루는 객체(파일 객체)를 선언되어야 할 수 있다.
먼저 호스트 노드(21)는 입력출을 수행할 파일의 정보를 포함하는 파일 객체를 선언할 수 있다. 또한 호스트 노드(21)는 파일 객체를 파일 입출력을 수행할 계산 디바이스를 특정하는 객체와 종속시킬 수 있다. 보다 구체적으로 호스트 노드(21)는 파일 객체를 파일 처리 명령에 관한 객체에 종속시키고, 파일 처리 명령에 관한 객체를 계산 디바이스를 특정하는 객체와 종속시켜 파일 객체를 계산 디바이스를 특정하는 객체와 종속시킬 수 있다. 또한 호스트 노드(21)는 계산 디바이스를 포함하는 계산 노드를 파일 입출력을 수행할 계산 노드로 결정할 수 있다.
이렇게 각각의 객체간 종속과 관련하여는 밑에서 도 4를 참조하여 상세히 설명하겠다.
이때 계산 디바이스의 특정은 기 설정된 방식에 의해 선정되거나, 사용자 입력에 기초하여 사전에 지정될 수도 있다.
그리고 호스트 노드(21)는 확장된 OpenCL API 를 통해 특정 계산 노드(22)가 파일로부터 데이터를 읽도록 제어할 수 있다(S220).
이때 확장된 OpenCL API 는 특정 계산 노드(22)가 파일입출력을 수행할 수 있도록 기존 OpenCL API 에 파일의 데이터 입출력을 위한 새로운API를 추가한 것이다. 이때 새로운 API는 파일입출력이 수행되기 전에 미리 추가될 수 있다.
즉, 호스트 노드(21)는 호스트 노드(21)에서 실행되는 호스트 프로그램을 통해 파일입출력을 수행하는 것이 아닌, 파일입출력에 대해 정의된 확장된 OpenCL API 를 통해 계산 노드(22)의 동작을 제어함으로써 계산 노드(22)에서 파일 입출력이 수행되도록 할 수 있다.
도 3 은 본 발명의 일실시예에 따른 호스트 노드(21), 계산 노드(22) 및 파일시스템(30) 간의 연결관계를 나타낸 예시도로 이를 참조하면, 호스트 노드(21)는 확장된 OpenCL API를 통해 계산 노드(22)가 파일 시스템(30)으로부터 데이터를 직접 로딩하도록 제어할 수 있으며, 계산 노드(22)가 로딩한 데이터를 계산 디바이스에 전송되도록 제어할 수 있다.
그리고 호스트 노드(21)는 계산 노드(22)에서 입력된 데이터를 처리하도록 제어할 수 있다(S230). 구체적으로 호스트 노드(21)는 계산 노드(22)의 특정 계산 디바이스에서 입력된 데이터가 처리되도록 제어할 수 있다.
다시 말하면, 호스트 노드(21)가 확장된 OpenCL API를 통해 계산 노드(22)에서의 파일입출력을 제어하면, OpenCL 런타임은 계산 노드(22)에서의 파일 입출력 및 호스트-디바이스 간 데이터 전송을 수행할 수 있고, 계산 노드(22)는 전송된 데이터를 처리할 수 있다.
이후, 호스트 노드(21)는 계산 노드(22)에서 처리된 데이터를 계산 노드(22)가 파일로 출력하도록 제어할 수 있다(S240). 구체적으로 호스트 노드(21)는 계산 노드(22)의 특정 계산 디바이스에서 파일이 출력되도록 제어할 수 있다.
이와 같이 본 발명에서 제시하는 파일 입출력을 위한 확장된 OpenCL API 를 사용함으로써 계산 노드가 직접 파일에 접근할 수 있도록 하며, 이를 통해 불필요한 호스트 노드와 계산 노드 간 데이터 전송을 제거하여 기존 파일 입출력을 호스트 노드에서만 수행해야 하는 제한점으로 인한 호스트 노드와 계산 노드 간의 데이터를 송수신에 따른 성능 저하를 방지할 수 있다.
다음은 도 4를 참조하여 본 발명의 객체간 종속에 대해서 설명하겠다.
앞서도 언급하였듯 기존의 OpenCL 객체들 중에서는 파일을 명시적으로 다루는 객체가 없으므로 확장된 OpenCL API 를 구현하고, 계산 노드가 직접 파일을 입출력하기 위해서는 파일을 다루는 객체(파일 객체)를 선언되어야 할 수 있다.
이를 위해, 파일을 다루는 객체를 포함하여 OpenCL의 객체간 의존 관계가 추가로 선언될 수 있다.
여기서 의존관계란 예를 들어, 객체 A 를 선언하기 위해서 객체 A와 종속관계에 있는 객체 B 를 선언하여야 하는 관계를 말한다.
도 4 는 확장된 OpenCL API를 구현하기 위한 객체들간의 의존관계를 나타낸 예시도로 이를 참조하면, 객체 Kernel(401)을 선언하기 위해서는 의존관계에 있는 객체 Program(402)을 선언해야 하며, 다시 객체 Program(402)를 선언하기 위해서는 의존관계에 있는 Context(403)과 계산 디바이스를 특정하는 객체(DeviceID, 404)를 선언해야 한다.
따라서 계산 노드(22)에 포함된 계산 디바이스가 파일 입출력을 수행할 수 있도록 파일 객체의 의존관계를 설정함으로써, 파일 객체를 이용하여 파일입출력을 수행할 수 있는 확장된 OpenCL API 를 구현할 수 있다.
도 4 를 참조하면, 파일의 주소, 접근 권한, 상태 등의 정보를 저장하는 새로운 객체인 파일 객체(File Object, 405)는 계산 디바이스의 워크로드에 대한 객체 즉 파일 처리 명령에 관한 객체(CommandQueue, 406)에 종속되도록, 의존관계가 설정될 수 있고, 이를 통해 File Object(405)가 객체 DeviceID(404)에 의존되도록 할 수 있다. 다시 말해 호스트 노드(21)는 DeviceID(404)를 CommandQueue(406)에 종속시키고, CommandQueue(406)를 File Object(405)에 종속시킬 수 있다.
그리고 File Object(405)가 선언되면, OpenCL의 객체간 의존 관계에 따라 파일 입출력을 수행할 계산 디바이스가 결정되고, 결정된 계산 디바이스를 포함하는 계산 노드가 파일입출력을 수행할 수 있다. 본 발명의 실시예에 따르면 결정된 계산 디바이스가 직접 파일입출력을 수행할 수도 있다.
즉, 객체 File Object(405)는 계산 디바이스를 나타내는 객체인 DeviceID(404)에 종속되고, 객체 DeviceID(404)에 해당하는 계산 디바이스는 물리적으로 특정 계산 노드에 포함되므로 파일 입출력을 수행할 특정 계산 노드가 결정될 수 있다.
따라서 호스트 노드(21)는 File Object(405)를 이용하여 확장된 OpenCL API를 실행시켜, 파일 객체가 종속되는 계산 디바이스가 있는 계산 노드에서 파일 입출력이 수행되도록 할 수 있다.
분산 시스템 안에 있는 모든 계산 노드의 계산 디바이스가 호스트 노드의 계산 디바이스인 것처럼 보이는 가상환경을 제공하기 위해 계산 노드를 알지 하지 못하도록 하는 기존의 기법과 달리, 본 발명에서는 File Object(405)를 이용하여 특정 계산 노드가 직접 파일입출력을 수행할 수 있도록 파일 입출력을 수행할 계산 노드를 지정할 수 있는 수단을 제공할 수 있다.
그리고 파일 입출력을 위한 확장 OpenCL API 함수 구현 시, 본 발명은 파일에서 읽은 데이터가 호스트 노드의 메모리가 아닌 OpenCL 의 객체인 MemObject에 저장되도록 함으로써 파일로부터 읽은 데이터를 계산 디바이스 메모리로 옮기는 동작이 온전히 계산 노드에서만 이루어지도록 할 수 있다. 즉 계산 디바이스는 저장 객체를 포함할 수 있으며, 계산 디바이스는 입력된 파일의 데이터를 저장하기 위한 저장 객체(MemObject)에 데이터를 저장할 수 있다.
이를 통해 본 발명은 호스트 노드와 계산 노드 간 불필요한 데이터 전송을 없앨 수 있다.
상술된 과정을 통해 본 발명은 분산 처리 시스템에서의 각 노드가 호스트 코드 중 필요한 부분을 실행할 수 있도록 하며, 노드 간 통신은 계산 디바이스간 통신을 통해 발생하게 할 수 있게 한다. 또한 본 발명의 각 노드는 클러스터 시스템 내의 모든 계산 디바이스와 통신하는 것과 같이 동작할 수 있다.
도 2 를 통해 설명된 실시예에 따른 분산 시스템에서의 파일 입출력 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 분산 처리 시스템
20: 노드
21: 호스트 노드
22: 계산 노드
30: 파일 시스템
20: 노드
21: 호스트 노드
22: 계산 노드
30: 파일 시스템
Claims (16)
- 분산 처리 시스템에 있어서,
호스트 프로그램에 따라 적어도 하나의 명령어로 구성된 워크로드를 처리하는 계산 노드로 상기 워크로드를 제공하는 호스트 노드; 및
응용프로그램인터페이스를 이용하여 제공된 워크로드를 처리하는 적어도 하나의 계산 디바이스를 포함하는 계산 노드를 포함하고,
상기 분산 처리 시스템은,
파일 입출력이 포함된 워크로드를 처리하는 계산 디바이스를 포함하는 계산 노드가 상기 파일시스템과의 파일 입출력을 수행하고,
상기 응용프로그램인터페이스는,
상기 계산노드가 파일시스템과의 파일 입출력을 수행하도록 상기 파일 처리 명령에 관한 객체(CommandQueue)에 종속된 파일 객체를 포함하고, 상기 파일 입출력을 수행할 계산노드가 특정되도록 상기 계산 디바이스를 특정하는 객체에 상기 파일 처리 명령에 관한 객체가 종속되는, 분산 처리 시스템.
- 삭제
- 삭제
- 제 1 항에 있어서,
상기 파일 객체는,
상기 파일의 주소, 접근 권한 및 상태 중 적어도 하나를 포함하는, 분산 처리 시스템.
- 삭제
- 제 1 항에 있어서,
상기 응용프로그램인터페이스는,
상기 계산노드에서 파일 입출력을 하도록 파일객체가 추가된 OpenCL의 응용프로그램인터페이스인, 분산 처리 시스템. - 제 1 항에 있어서,
상기 계산 디바이스는 저장 객체를 포함하고, 입력된 파일의 데이터를 상기 저장 객체에 저장하는, 분산 처리 시스템. - 분산 처리 시스템이 파일 입출력을 처리하는 방법에 있어서,
호스트 노드가 호스트 프로그램에 따라 적어도 하나의 명령어로 구성된 워크로드를 처리하는 계산 노드로 상기 워크로드를 제공하는 단계; 및
상기 워크로드를 처리하는 적어도 하나의 계산 디바이스를 포함하는 계산 노드가 응용프로그램인터페이스를 이용하여 제공된 워크로드를 처리하는 단계를 포함하고,
상기 방법에 있어서,
파일 입출력이 포함된 워크로드를 처리하는 계산 디바이스를 포함하는 계산 노드가 파일시스템과의 파일 입출력을 수행하는 단계를 더 포함하고,
상기 응용프로그램인터페이스는,
상기 계산노드가 상기 파일 시스템과의 파일 입출력을 수행하도록 상기 파일 처리 명령에 관한 객체(CommandQueue)에 종속된 파일 객체를 포함하고, 상기 파일 입출력을 수행할 계산노드가 특정되도록 상기 계산 디바이스를 특정하는 객체에 상기 파일 처리 명령에 관한 객체가 종속되는, 파일 처리 방법.
- 삭제
- 삭제
- 제 8 항에 있어서,
상기 파일 객체는,
상기 파일의 주소, 접근 권한 및 상태 중 적어도 하나를 포함하는, 파일 처리 방법.
- 삭제
- 제 8 항에 있어서,
상기 계산노드에서 파일 입출력을 하도록 파일객체가 추가된 OpenCL의 응용프로그램인터페이스인, 파일 처리 방법. - 제8항에 있어서,
상기 입출력을 수행하는 단계는,
상기 계산 디바이스가 입력된 파일의 데이터를 상기 계산 디바이스에 포함된 저장 객체에 저장하는 단계를 더 포함하는, 파일 처리 방법. - 제8항에 기재된 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능한 기록매체.
- 분산 처리 시스템에 의해 수행되며, 제8항에 기재된 방법을 수행하기 위해 기록매체에 저장된 컴퓨터 프로그램.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006531 | 2015-01-14 | ||
KR20150006531 | 2015-01-14 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160087761A KR20160087761A (ko) | 2016-07-22 |
KR101748210B1 true KR101748210B1 (ko) | 2017-06-27 |
Family
ID=56681355
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160003923A KR101748210B1 (ko) | 2015-01-14 | 2016-01-12 | 분산 처리 시스템 및 분산 처리 시스템에서의 파일 처리 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101748210B1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102086044B1 (ko) * | 2017-01-17 | 2020-03-06 | 서울대학교산학협력단 | 이종 클러스터 시스템에서의 계산 처리 방법 및 이를 수행하기 위한 병렬 시스템 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012252591A (ja) * | 2011-06-03 | 2012-12-20 | Hitachi Ltd | プロセス割当システム、プロセス割当方法、およびプロセス割当プログラム |
JP2014006657A (ja) * | 2012-06-22 | 2014-01-16 | Fujitsu Ltd | ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 |
-
2016
- 2016-01-12 KR KR1020160003923A patent/KR101748210B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2012252591A (ja) * | 2011-06-03 | 2012-12-20 | Hitachi Ltd | プロセス割当システム、プロセス割当方法、およびプロセス割当プログラム |
JP2014006657A (ja) * | 2012-06-22 | 2014-01-16 | Fujitsu Ltd | ジョブ管理プログラム、ジョブ管理方法及びジョブ管理装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20160087761A (ko) | 2016-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109032706B (zh) | 智能合约执行方法、装置、设备和存储介质 | |
CN109669772B (zh) | 计算图的并行执行方法和设备 | |
CN111078323B (zh) | 基于协程的数据处理方法、装置、计算机设备及存储介质 | |
US11520633B2 (en) | Thread associated memory allocation and memory architecture aware allocation | |
CN108062254B (zh) | 作业处理方法、装置、存储介质及设备 | |
US9239739B2 (en) | Methods and apparatus for controlling affinity for execution entities | |
Lauderdale et al. | Towards a codelet-based runtime for exascale computing: Position paper | |
WO2013165459A1 (en) | Control flow graph operating system configuration | |
TW201820131A (zh) | 進程管理方法及裝置 | |
US20220109605A1 (en) | Implementing Affinity and Anti-Affinity with Kubernetes | |
Luszczek | Parallel programming in MATLAB | |
CN116382880B (zh) | 任务执行方法、装置、处理器、电子设备及存储介质 | |
US9880918B2 (en) | Mobile and remote runtime integration | |
US20150160973A1 (en) | Domain based resource isolation in multi-core systems | |
EP3155523B1 (en) | Mobile and remote runtime integration | |
US10496433B2 (en) | Modification of context saving functions | |
US11561843B2 (en) | Automated performance tuning using workload profiling in a distributed computing environment | |
KR101748210B1 (ko) | 분산 처리 시스템 및 분산 처리 시스템에서의 파일 처리 방법 | |
US20160110170A1 (en) | Message inlining | |
US10977071B2 (en) | System and method for VM cloning in a software defined storage environment | |
Wu et al. | Modeling the virtual machine launching overhead under fermicloud | |
US7908375B2 (en) | Transparently externalizing plug-in computation to cluster | |
US10452408B1 (en) | System and method for intercepting data flow between a computer process and a file | |
US9547522B2 (en) | Method and system for reconfigurable virtual single processor programming model | |
US9477696B2 (en) | Serializing resource utilization using hardware built-in functions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |