KR20180124692A - Method for processing task in respect to distributed file system - Google Patents

Method for processing task in respect to distributed file system Download PDF

Info

Publication number
KR20180124692A
KR20180124692A KR1020170168451A KR20170168451A KR20180124692A KR 20180124692 A KR20180124692 A KR 20180124692A KR 1020170168451 A KR1020170168451 A KR 1020170168451A KR 20170168451 A KR20170168451 A KR 20170168451A KR 20180124692 A KR20180124692 A KR 20180124692A
Authority
KR
South Korea
Prior art keywords
distributed data
distributed
gpu
file system
heap
Prior art date
Application number
KR1020170168451A
Other languages
Korean (ko)
Other versions
KR102026333B1 (en
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 울산과학기술원
Publication of KR20180124692A publication Critical patent/KR20180124692A/en
Application granted granted Critical
Publication of KR102026333B1 publication Critical patent/KR102026333B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present invention relates to a task processing method for a distributed file system. The method according to an embodiment of the present invention comprises the steps of: receiving information on a plurality of tasks to be processed for distributed data from a distributed file system; loading first distributed data from the distributed file system based on the information and storing the first distributed data in a Java virtual machine (JVM) heap CPU memory when a task related to a GPU kernel operation is included among information on the plurality of tasks; storing second distributed data obtained by copying the first distributed data in an off-heap CPU memory; storing third distributed data obtained by copying the second distributed data in a GPU memory; and performing a GPU kernel operation on the third distributed data. Therefore, the number of transmitting data is minimized.

Description

분산 파일 시스템에 대한 태스크 처리 방법{METHOD FOR PROCESSING TASK IN RESPECT TO DISTRIBUTED FILE SYSTEM}{METHOD FOR PROCESSING TASK IN RESPECT TO DISTRIBUTED FILE SYSTEM}

본 발명은 분산 파일 시스템에 대한 태스크 처리 방법에 관한 것으로서, 보다 자세하게는 분산 데이터를 off-heap CPU 메모리에 저장하여 GPU가 분산 파일 시스템의 태스크를 수행하게 하는 분산 파일 시스템에 대한 태스크 처리 방법에 관한 것이다. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a task processing method for a distributed file system, and more particularly, to a task processing method for a distributed file system in which a GPU executes a task of a distributed file system by storing distributed data in an off- will be.

하둡(hadoop, high-Availability distributed object-oriented platform) 프레임 워크는 대량의 자료를 처리할 수 있도록 클러스터 컴퓨팅 환경에서 동작하는 분산 처리 프레임워크이다.Hadoop (Hadoop), a high-availability distributed object-oriented platform, is a distributed processing framework that works in a clustered computing environment to handle large amounts of data.

하둡 프레임 워크는 분산 파일 시스템인 하둡 분산 파일 시스템 (hadoop distributed file system, HDFS)을 기초로 데이터를 관리하고 맵리듀스(map-reduce)를 이용해서 데이터를 병렬적으로 처리할 수 있다. 또한 하둡 프레임 워크는 처리해야 할 데이터를 분산 데이터로 나누어 이에 대해 복수의 노드에서 태스크를 수행하도록 하고, 각각의 노드에서의 태스크 처리 결과를 병합하여 결과를 출력할 수 있도록 한다.The Hadoop framework manages data based on the Hadoop distributed file system (HDFS), a distributed file system, and can process data in parallel using map-reduce. In addition, the Hadoop framework divides the data to be processed into distributed data, executes the task on a plurality of nodes, and merges the result of the task processing on each node so as to output the result.

한편, 스파크(spark) 프레임 워크는 분산 데이터 처리를 분산 클러스터에서 고속으로 실행할 수 있게 하는 프레임 워크이다. 스파크는 처리 대상이 되는 분산 데이터를 하둡 분산 파일 시스템에서 읽고, 이후 태스크의 수행을 GPU 메모리에서 연산하도록 할 수 있기 때문에 기계 학습이나 차트 계산처럼 반복 계산이 많은 작업에 대해서는 하둡보다 빠르게 처리할 수 있다. On the other hand, the spark framework is a framework that enables distributed data processing to be executed at high speed in a distributed cluster. Sparks can be faster than Hadoop for tasks that require repeated computations, such as machine learning or charting, because they can read the distributed data to be processed from the Hadoop distributed file system and then perform the task's execution in GPU memory .

한편, 스파크 프레임 워크는 GPU 커널 연산 수행 시 하둡 분산 파일 시스템으로부터 로딩하여 컴퓨터의 메인 메모리 또는 디스크에 저장하고 연산이 필요할 때마다 GPU에 전송하여 연산에 사용하는 방식을 취하고 있다. On the other hand, the Spark Framework is loaded from the Hadoop distributed file system when GPU kernel operation is performed, and is stored in the main memory or disk of the computer, and is transferred to the GPU whenever necessary to be used for calculation.

다만, 위와 같은 방식으로 GPU가 분산 데이터에 대한 태스크 수행을 완료하면 컴퓨터의 메인 메모리 또는 디스크로부터 복사하였던 GPU의 분산 데이터가 사라지기 때문에, 스파크 프레임 워크는 GPU에서 분산 데이터에 대한 반복적인 연산이 수행되는 경우, 하나의 태스크가 완료될 때마다 메인 메모리 또는 디스크로부터 분산 데이터를 다시 GPU에 전송하는 방식을 사용하고 있다. However, when the GPU completes the tasks for the distributed data in the above manner, the distributed data of the GPU copied from the main memory or the disk of the computer disappears. Therefore, the spark framework performs repetitive operations on the distributed data in the GPU , The distributed data is transferred from the main memory or disk to the GPU again whenever one task is completed.

이와 같이, 메인 메모리에서 GPU로 분산 데이터를 주기적으로 전송함에 따라 소요되는 시간은 GPU의 연산 속도에 비해 매우 크기 때문에, 기존의 GPU를 활용한 분산 데이터의 태스크 처리 방식은 GPU의 연산 성능을 충분히 활용하는 것에 적합하지 않다.Thus, since the time required for periodically transmitting distributed data from the main memory to the GPU is much larger than the GPU operation speed, the task processing method of the distributed data using the existing GPU can sufficiently utilize the computation performance of the GPU It is not suitable for doing.

한국 공개특허공보 제10-1794696호: 이기종 프로세싱 타입을 고려한 태스크 스케쥴링 방법 및 분산 처리 시스템Korean Patent Laid-Open Publication No. 10-1794696: Task Scheduling Method Considering Heterogeneous Processing Types and Distributed Processing System

본 발명의 실시예에서 해결하고자 하는 과제는 분산 파일 시스템에서 반복 연산에 사용되는 분산 데이터를 off-heap CPU 메모리에 저장함으로써 데이터 전송이 발생하는 횟수를 최소화하는 기술을 제공하는 것이다. A problem to be solved by an embodiment of the present invention is to provide a technique for minimizing the number of times data transmission occurs by storing distributed data used for iterative operations in a distributed file system in an off-heap CPU memory.

또한 off-heap CPU 메모리 간에 사용되는 MPI(message passing interface) 규약을 기초로 off-heap CPU 메모리에 저장된 분산 데이터를 다른 노드와 직접적으로 공유할 수 있게 하는 기술을 제공하고자 한다. We also provide a technique that allows distributed data stored in the off-heap CPU memory to be shared directly with other nodes based on the MPI (message passing interface) protocol used between the off-heap CPU memories.

다만, 본 발명의 실시예가 이루고자 하는 기술적 과제는 이상에서 언급한 과제로 제한되지 않으며, 이하에서 설명할 내용으로부터 통상의 기술자에게 자명한 범위 내에서 다양한 기술적 과제가 도출될 수 있다.It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are intended to provide further explanation of the invention as claimed.

본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법은 분산 파일 시스템으로부터 분산 데이터에 대해 처리해야 할 복수의 태스크에 대한 정보를 수신하는 단계, 상기 복수의 태스크에 대한 정보 중 GPU(graphic processing unit) 커널 연산에 관한 태스크가 포함되어 있는 경우, 상기 정보를 기초로 상기 분산 파일 시스템으로부터 상기 분산 데이터 중 제1 분산 데이터를 로딩하여 JVM(java virtual machine) heap CPU(central processing unit) 메모리에 저장하는 단계, 상기 제1 분산 데이터를 복사한 제2 분산 데이터를 off-heap CPU 메모리에 저장하는 단계, 상기 제2 분산 데이터를 복사한 제3 분산 데이터를 GPU 메모리에 저장하는 단계 및 상기 제3 분산 데이터에 대해 상기 GPU 커널 연산을 수행하는 단계를 포함한다. A task processing method for a distributed file system according to an exemplary embodiment of the present invention includes receiving information on a plurality of tasks to be processed for distributed data from a distributed file system, processing unit), a first distributed data among the distributed data is loaded from the distributed file system based on the information, and the first distributed data is loaded into a Java virtual machine (JVM) heap central processing unit (CPU) memory Storing the second distributed data copied from the first distributed data in an off-heap CPU memory, storing third distributed data copied from the second distributed data in the GPU memory, And performing the GPU kernel operation on the distributed data.

이때 상기 분산 파일 시스템은 하둡 분산 파일 시스템(hadoop distributed file system, HDFS)이고, 상기 제1 분산 데이터를 로딩하여 상기 JVM heap CPU 메모리에 저장하는 단계는 스파크(spark) 프레임 워크의 API를 기초로 수행될 수 있다. In this case, the distributed file system is a Hadoop distributed file system (HDFS). The step of loading the first distributed data and storing the first distributed data in the JVM heap CPU memory is performed based on an API of a spark framework .

또한 상기 제3 분산 데이터를 상기 GPU 메모리에 저장하는 단계는 GPU 컨텍스트(GPU context)를 선언하는 단계를 포함할 수 있다. In addition, storing the third distributed data in the GPU memory may include declaring a GPU context.

더하여 상기 off-heap CPU 메모리는 MPI(message passing interface) 규약에 따라 상기 제2 분산 데이터를 상기 분산 파일 시스템에 포함된 노드와 공유할 수 있다. In addition, the off-heap CPU memory may share the second distributed data with nodes included in the distributed file system according to a message passing interface (MPI) protocol.

더불어 상기 제2 분산 데이터를 상기 off-heap CPU 메모리에 저장하는 단계는 UDS(unix domain socket) 통신을 통해 상기 JVM heap CPU 메모리로부터 상기 off-heap CPU 메모리에 상기 제1 분산 데이터를 복사하는 단계를 포함할 수 있다. Storing the second distributed data in the off-heap CPU memory includes copying the first distributed data from the JVM heap CPU memory to the off-heap CPU memory through UDS (unix domain socket) communication .

아울러 상기 제3 분산 데이터를 상기 GPU 메모리에 저장하는 단계는 CUDA(compute unified device architecture)의 memcpy 명령을 통해 상기 off-heap CPU 메모리로부터 상기 GPU 메모리에 상기 제2 분산 데이터를 복사하는 단계를 포함할 수 있다. Storing the third distributed data in the GPU memory includes copying the second distributed data from the off-heap CPU memory to the GPU memory via a compute unified device architecture (CUDA) memcpy command .

본 발명의 실시예에 따르면, off-heap CPU 메모리로부터 전송 받은 분산 데이터에 대해 GPU가 태스크를 수행하게 하여 메인 메모리에서 GPU로 분산 데이터를 주기적으로 전송함에 따라 소요되는 시간은 없앰으로써, 분산 파일 시스템에서의 GPU 성능을 최대한으로 발휘할 수 있게 한다. According to the embodiment of the present invention, since the GPU performs the task on the distributed data transmitted from the off-heap CPU memory and periodically transmits the distributed data from the main memory to the GPU, To maximize GPU performance.

도 1은 본 발명의 일 실시예에 따른 태스크 처리 장치 및 분산 파일 시스템을 포함하는 전체 시스템을 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법의 프로세스를 도시하는 흐름도이다.
도 3은 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법에 따라 태스크가 수행되는 과정을 설명하기 위한 예시도이다.
도 4는 영역 분할법(domain decomposition method)을 수행할 때 발생하는 할로(halo)에 대하여 설명하기 위한 예시도이다.
도 5는 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법에 따라 영역 분할법이 수행되는 과정을 설명하기 위한 예시도이다.
도 6은 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법과 기존 프레임 워크의 성능을 비교한 실험 결과이다.
1 is a diagram illustrating an overall system including a task processing apparatus and a distributed file system according to an embodiment of the present invention.
2 is a flowchart showing a process of a task processing method for a distributed file system according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a process of performing a task according to a task processing method for a distributed file system according to an embodiment of the present invention. Referring to FIG.
4 is an exemplary diagram for explaining halos generated when a domain decomposition method is performed.
5 is an exemplary diagram illustrating a process of performing a region partitioning method according to a task processing method for a distributed file system according to an embodiment of the present invention.
FIG. 6 is a graph illustrating an experimental result of comparing a task processing method for a distributed file system and an existing framework according to an exemplary embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.  그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명의 범주는 청구항에 의해 정의될 뿐이다.BRIEF DESCRIPTION OF THE DRAWINGS The advantages and features of the present invention and the manner of achieving them will become apparent with reference to the embodiments described in detail below with reference to the accompanying drawings. It should be understood, however, that the invention is not limited to the disclosed embodiments, but may be embodied in various forms and should not be construed as limited to the embodiments set forth herein, To fully disclose the scope of the invention to a person skilled in the art, and the scope of the invention is only defined by the claims.

본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명은 본 발명의 실시예들을 설명함에 있어 실제로 필요한 경우 외에는 생략될 것이다.  그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다.  그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing embodiments of the present invention, a detailed description of well-known functions or constructions will be omitted unless otherwise described in order to describe embodiments of the present invention. The following terms are defined in consideration of the functions in the embodiments of the present invention, which may vary depending on the intention of the user, the intention or the custom of the operator. Therefore, the definition should be based on the contents throughout this specification.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are merely examples of possible implementations. In other implementations, other functional blocks may be used without departing from the spirit and scope of the following detailed description. Also, while one or more functional blocks of the present invention are represented as discrete blocks, one or more of the functional blocks of the present invention may be a combination of various hardware and software configurations that perform the same function.

또한 어떤 구성 요소들을 포함한다는 표현은 개방형의 표현으로서 해당 구성 요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성 요소들을 배제하는 것으로 이해되어서는 안 된다.Also, to the extent that the inclusion of certain elements is merely an indication of the presence of that element as an open-ended expression, it should not be understood as excluding any additional elements.

나아가 어떤 구성 요소가 다른 구성 요소에 연결되어 있다거나 접속되어 있다고 언급될 때에는, 그 다른 구성 요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성 요소가 존재할 수도 있다고 이해되어야 한다. Further, when a component is referred to as being connected or connected to another component, it may be directly connected or connected to the other component, but it should be understood that there may be other components in between.

이하에서는 도면들을 참조하여 본 발명의 실시예들에 대해 설명하도록 한다. Hereinafter, embodiments of the present invention will be described with reference to the drawings.

도 1은 본 발명의 일 실시예에 따른 태스크 처리 장치(100) 및 분산 파일 시스템(distributed file system)(10)을 포함하는 전체 시스템을 나타낸 도면이다.1 is a diagram illustrating an overall system including a task processing apparatus 100 and a distributed file system 10 according to an embodiment of the present invention.

분산 파일 시스템(10)은 복수의 노드로 구성되어 있고, 복수의 노드는 통신망을 통해 데이터를 송수신할 수 있다. 이때 각 노드는 분산 파일 프레임워크를 기초로 분산 데이터에 대한 태스크를 처리한다. 이때 분산 파일 시스템(10)은 하둡 분산 파일 시스템(Hadoop Distributed File System, HDFS)을 포함할 수 있고, 분산 파일 프레임워크는 스파크(spark) 프레임 워크의 API를 포함할 수 있다. The distributed file system 10 is composed of a plurality of nodes, and a plurality of nodes can transmit and receive data through a communication network. At this time, each node processes tasks for distributed data based on the distributed file framework. At this time, the distributed file system 10 may include a Hadoop Distributed File System (HDFS), and the distributed file framework may include an API of a spark framework.

여기서, 분산 파일 시스템(10)의 노드는 예를 들어, 컴퓨터, 워크스테이션 등과 같이 하나 이상의 프로세서를 포함하여 연산을 수행할 수 있는 장치를 포함할 수 있다. Here, the nodes of the distributed file system 10 may include devices capable of performing operations including, for example, one or more processors, such as computers, workstations, and the like.

또한 분산 파일 시스템(10)의 노드는, 분산 데이터에 대해 처리해야 할 태스크(task)를 생성하여 태스크의 처리를 다른 노드에 요청하는 클라이언트 노드(client node), 클라이언트 노드로부터 요청된 태스크를 수신하여 다른 노드가 태스크를 처리하도록 할당 및 스케쥴링하는 잡 트래커 노드(job tracker node), 잡 트래커 노드의 지시에 따라 태스크를 수행하고 태스크의 처리 결과를 생성하는 태스크 트래커 노드(task tracker node)를 포함할 수 있다. In addition, the node of the distributed file system 10 includes a client node for generating a task to be processed with respect to distributed data and requesting the processing of the task to another node, a task requested from the client node A job tracker node for allocating and scheduling tasks to be handled by other nodes, a task tracker node for performing tasks according to instructions of a job tracker node and generating a task processing result have.

이때 분산 파일 시스템(10)을 구성하는 복수의 노드는 하나의 역할에 국한되는 것이 아니며, 하나의 노드가 클라이언트 노드, 잡 트래커 노드, 태스크 트래커 노드 중 하나 이상의 역할을 동시에 수행할 수 있다. At this time, the plurality of nodes constituting the distributed file system 10 are not limited to one role, and one node may perform at least one of a client node, a job tracker node, and a task tracker node at the same time.

태스크 처리 장치(100)는 하나 이상의 프로세서를 포함하며, 하둡 분산 파일 시스템(10)을 구성하는 노드로서 사용될 수 있다. 태스크 처리 장치(100)는 클라이언트 노드, 잡 트래커 노드, 태스크 트래커 노드 중 하나 이상의 역할을 동시에 수행할 수 있고, 분산 데이터에 대한 태스크를 수행함에 있어 off-heap CPU 메모리(120)에 저장된 분산 데이터(121)를 기초로 GPU가 태스크를 수행하게 할 수 있다. 이에 따라, 태스크 처리 장치(100)에 의해 수행되는 분산 파일 시스템에 대한 태스크 처리 방법을 도 2와 함께 설명한다. The task processing apparatus 100 includes one or more processors and can be used as a node constituting the Hadoop distributed file system 10. [ The task processing apparatus 100 can simultaneously perform one or more roles of a client node, a job tracker node, and a task tracker node. In performing a task on distributed data, the task processing apparatus 100 can execute distributed data stored in the off-heap CPU memory 120 Gt; 121, < / RTI > the GPU can perform the task. Accordingly, the task processing method for the distributed file system performed by the task processing apparatus 100 will be described with reference to FIG.

도 2는 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법의 프로세스를 도시하는 흐름도이다. 도 2에 따른 분산 파일 시스템에 대한 태스크 처리 방법의 각 단계는 도 1을 통해 설명한 하나 이상의 프로세서를 포함하는 태스크 처리 장치(100)에 의해 수행될 수 있으며, 각 단계를 설명하면 다음과 같다.2 is a flowchart showing a process of a task processing method for a distributed file system according to an embodiment of the present invention. Each step of the task processing method for the distributed file system according to FIG. 2 can be performed by the task processing apparatus 100 including one or more processors described with reference to FIG. 1, and each step will be described below.

우선, 분산 파일 시스템(10)으로부터 분산 데이터에 대해 처리해야 할 복수의 태스크에 대한 정보를 수신한다(S210). 이때 분산 데이터는 가령, RDD(resilent distributed dataset)을 포함할 수 있으며, 태스크는 분산 데이터를 관리하기 위해 처리하는 연산 중 하나로서, 가령 스파크 프레임 워크를 기초로 생성되는 맵 태스크(map task), 리듀스 태스크(reduce task) 등을 포함할 수 있으나 이에 국한되는 것은 아니다.First, information on a plurality of tasks to be processed for distributed data is received from the distributed file system 10 (S210). In this case, the distributed data may include resilient distributed dataset (RDD), and the task is one of the operations for managing distributed data, for example, a map task generated based on the spark framework, Reduce tasks, and the like. ≪ RTI ID = 0.0 >

한편, 스파크 프레임 워크는 분산 데이터 처리를 분산 클러스터에서 고속으로 실행할 수 있게 하는 프레임 워크로서, 처리 대상이 되는 분산 데이터를 하둡 분산 파일 시스템(10)에서 읽고, 태스크의 수행을 GPU 메모리(130)에서 연산하도록 할 수 있다. On the other hand, the spark framework is a framework that enables distributed data processing to be executed in a distributed cluster at a high speed. The spark framework reads distributed data to be processed from the Hadoop distributed file system 10 and executes the tasks in the GPU memory 130 .

한편, 스파크 프레임 워크는 GPU 커널 연산 수행 시 하둡 분산 파일 시스템(10)으로부터 분산 데이터(111)를 로딩하여 컴퓨터의 메인 메모리 또는 디스크에 저장하고 연산이 필요할 때마다 분산 데이터를 GPU에 전송하여 연산에 사용하는 방식을 취하고 있다.On the other hand, the spark framework loads the distributed data 111 from the Hadoop distributed file system 10 when the GPU kernel operation is performed, stores the distributed data in the main memory or disk of the computer, and transmits the distributed data to the GPU And the like.

본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법은 off-heap CPU 메모리(120)에 분산 데이터(121)를 저장하고 GPU 컨택스트(GPU context)를 선언하여 GPU 메모리(130)가 분산 데이터(131)의 저장을 유지할 수 있게 함으로써, 반복 연산 중 하나의 태스크가 완료되더라도 GPU 메모리(130) 내에서 분산 데이터가 사라지지 않게 하여, 하드웨어 간 분산 데이터의 전송과 관련된 시간 손실을 최소화하고, GPU의 높은 연산 성능을 충분히 활용할 수 있게 한다.The task processing method for the distributed file system according to an embodiment of the present invention includes storing the distributed data 121 in the off-heap CPU memory 120 and declaring the GPU context so that the GPU memory 130 By allowing the storage of the distributed data 131 to be maintained, the distributed data is not lost in the GPU memory 130 even if one task in the iterative operation is completed, thereby minimizing time loss associated with transmission of distributed data between hardware , Allowing the GPU to take full advantage of its high computing power.

이를 위해, 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법은 분산 파일 시스템(10)으로부터 수신한 복수의 태스크 중 GPU 커널 연산을 수행하는 것으로 지정된 GPU 태스크가 포함되어 있는 경우 프로세서가 다음과 같은 단계를 수행하게 할 수 있다. To this end, when the task processing method for the distributed file system according to an embodiment of the present invention includes a GPU task designated to perform a GPU kernel operation among a plurality of tasks received from the distributed file system 10, The following steps can be performed.

먼저, 분산 파일 시스템(10)으로부터 태스크를 처리해야 하는 것으로 지정된 소정의 분산 데이터(111)를 로딩하여 JVM(java virtual machine) heap CPU 메모리에 저장한다(S220). 이때 S220 단계는 스파크 프레임 워크에 포함된 API를 기초로 수행될 수 있다. First, predetermined distributed data 111 designated as a task to be processed from the distributed file system 10 is loaded and stored in a JVM (java virtual machine) heap CPU memory (S220). In this case, step S220 may be performed based on the API included in the spark framework.

이후, JVM heap CPU 메모리(110)에 저장된 분산 데이터(111)를 복사하여 off-heap CPU 메모리(120)에 저장하고(S230), off-heap CPU 메모리(120)에 저장된 분산 데이터(121)를 복사하여 GPU 메모리(130)에 저장한다(S240). 이를 위해, 본 발명의 일 실시예는 스파크 프레임 워크가 포함하는 API에 비하여, 아래 표 1의 기능을 하는 API를 추가적으로 포함할 수 있다. 이때 JVM heap CPU 메모리(110)와 off-heap CPU 메모리(120) 간의 분산 데이터(111) 전송은 UDS(unix domain socket) 통신을 기초로 수행할 수 있으며, 이에 따라 send, recv의 API 기능을 구현할 수 있다. Thereafter, the distributed data 111 stored in the JVM heap CPU memory 110 is copied and stored in the off-heap CPU memory 120 (S230), and the distributed data 121 stored in the off- And stores it in the GPU memory 130 (S240). For this, an embodiment of the present invention may additionally include an API having the functions of Table 1 below, in comparison with the API included in the spark framework. At this time, the transmission of the distributed data 111 between the JVM heap CPU memory 110 and the off-heap CPU memory 120 can be performed based on UDS (unix domain socket) communication. Accordingly, .

또한 off-heap CPU 메모리(120)와 GPU 메모리(130) 간의 분산 데이터(121) 전송은 CUDA 명령어(예를 들어, memcpy)를 기초로 수행할 수 있으며, 이에 따라 htod, dtoh의 API 기능을 구현할 수 있다. Also, the transmission of the distributed data 121 between the off-heap CPU memory 120 and the GPU memory 130 can be performed on the basis of a CUDA command (for example, memcpy), thereby implementing API functions of htod and dtoh .

한편, exec, cache, uncache는 GPU를 관리하는 기능으로서 기존의 기술을 사용하여 API를 구현할 수 있으며, halo_extract, halo_shuffle, halo_append는 domain decomposition method 분야에서 사용되는 기존의 알고리즘을 통해 API를 구현할 수 있다. Meanwhile, exec, cache, and uncache are functions to manage GPU, and APIs can be implemented using existing technologies, and halo_extract, halo_shuffle, and halo_append can implement API through existing algorithms used in domain decomposition method field.

Figure pat00001
Figure pat00001

따라서, S230 단계에는 표 1에 따른 API 중 send를 사용할 수 있고, S240 단계에서는 htod를 사용할 수 있다. Therefore, in step S230, send of the API according to Table 1 can be used, and in step S240, htod can be used.

이때 off-heap CPU 메모리(120)에 저장된 분산 데이터(121)를 복사하여 GPU 메모리(130)에 저장하는 단계(S240)는 GPU 컨텍스트를 선언하는 단계를 포함할 수 있다. At this time, copying the distributed data 121 stored in the off-heap CPU memory 120 and storing the copied data 121 in the GPU memory 130 (S240) may include declaring the GPU context.

GPU 컨텍스트는 GPU가 off-heap CPU 메모리(120)로부터 분산 데이터(121)를 복사하여 저장하여 커널 연산을 수행하게 하는 명령어로서, GPU 컨텍스트가 off-heap CPU 메모리(120)에서 선언되는 경우 GPU에서 분산 데이터(131)에 대한 태스크가 완료되더라도 GPU 메모리(130) 내에서 분산 데이터(131)가 사라지지 않는다는 이점이 있다. 이를 위해, 표 2에 기재된 코드와 같이 off-heap CPU 메모리(120)에서 GPU 컨텍스트를 선언할 수 있다. The GPU context is a command for the GPU to copy and store the distributed data 121 from the off-heap CPU memory 120 to perform the kernel operation. When the GPU context is declared in the off-heap CPU memory 120, There is an advantage that the distributed data 131 does not disappear in the GPU memory 130 even if the task for the distributed data 131 is completed. To do this, the GPU context can be declared in the off-heap CPU memory 120 as shown in Table 2. [

Figure pat00002
Figure pat00002

이에 따라, 복수의 태스크 중 GPU 커널 연산을 수행하는 것으로 지정된 GPU 태스크를 GPU 메모리(130)에 저장된 분산 데이터(131)에 대해 수행한다(S250). 이때 반복 연산이 필요한 경우, 표 1의 cache의 기능을 통해 GPU 컨텍스트를 해제하지 않음으로써 GPU 메모리(130)에 분산 데이터의 저장을 계속하여 유지함으로써 추가적인 연산을 수행할 수 있으며, 모든 연산이 완료되면 uncache의 기능을 통해 GPU 메모리(130)에 저장된 분산 데이터(131)를 삭제시키고 GPU 컨텍스트의 선언을 해제할 수 있다. 한편, GPU에서 태스크 수행이 완료된 분산 데이터(131)는 다시 off-heap CPU 메모리(120) 및 JVM heap CPU 메모리(110)에 반환하여, 분산 파일 시스템(10)에 업로딩할 수 있다. Accordingly, the GPU task designated to perform the GPU kernel operation among the plurality of tasks is performed on the distributed data 131 stored in the GPU memory 130 (S250). In this case, when the iterative operation is required, additional operations can be performed by continuing to store the distributed data in the GPU memory 130 by not releasing the GPU context through the cache function shown in Table 1. When all operations are completed it is possible to delete the distributed data 131 stored in the GPU memory 130 through the uncache function and to release the declaration of the GPU context. The distributed data 131 in which the task execution is completed in the GPU can be returned to the off-heap CPU memory 120 and the JVM heap CPU memory 110 and uploaded to the distributed file system 10.

이에 따라, 본 발명의 실시예는 off-heap CPU 메모리(120)에 저장된 분산 데이터를 기초로 GPU가 태스크를 수행하게 함으로써, 반복적인 연산에서 주기적인 데이터 전송에 따라 발생하는 메인 메모리와 GPU 간의 데이터 전송 문제를 해결하여, 분산 파일 시스템(10)에서의 GPU 성능을 최대한으로 발휘할 수 있게 한다.Accordingly, the embodiment of the present invention allows the GPU to perform a task based on the distributed data stored in the off-heap CPU memory 120, so that the data between the main memory and the GPU Thereby solving the transmission problem, thereby maximizing the performance of the GPU in the distributed file system 10. [

도 3은 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법에 따라 태스크가 수행되는 과정을 설명하기 위한 예시도이다. FIG. 3 is a diagram illustrating a process of performing a task according to a task processing method for a distributed file system according to an embodiment of the present invention. Referring to FIG.

도 3을 참조하면, 첫번째 행은 분산 데이터에 대해 처리해야 할 복수의 태스크에 대한 정보를 의미낸다. 이때 JVM heap CPU 메모리(110)에 저장된 분산 데이터(111)는 RDD(resilent distributed dataset), off-heap CPU 메모리(120)에 저장된 분산 데이터(121) 및 JVM heap CPU 메모리(110)에 저장된 분산 데이터(131)는 JVM heap CPU 메모리(110)로부터 복사한 데이터로서 VRDD(virtual resilent distributed dataset)라고 표현하였다. 한편, send, htod, cache, exec, dtoh, recv는 표 1에 포함된 API이며, TextFile, map, reduce는 스파크 프레임 워크에 포함된 API이다. 한편, 도 3에 도시된 예시에 사용된 태스크는 아래 표 3과 같고, 표 3의 line1-10은 도 3에 도시된 line 1-10과 대응된다. Referring to FIG. 3, the first row indicates information about a plurality of tasks to be processed for distributed data. At this time, the distributed data 111 stored in the JVM heap CPU memory 110 includes distributed data 121 stored in the resilient distributed dataset (RDD), off-heap CPU memory 120, and distributed data 121 stored in the JVM heap CPU memory 110 (131) is a virtual resilient distributed dataset (VRDD) as data copied from the JVM heap CPU memory (110). On the other hand, send, htod, cache, exec, dtoh, and recv are APIs included in Table 1, and TextFile, map, and reduce are APIs included in the spark framework. Meanwhile, the task used in the example shown in FIG. 3 is as shown in Table 3 below, and line 1 - 10 in Table 3 corresponds to line 1-10 shown in FIG. 3.

Figure pat00003
Figure pat00003

도 3 및 표 3을 참조할 때, 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법은 분산 파일 시스템(10)으로부터 분산 데이터(111, 121, 131)에 대해 처리해야 할 복수의 태스크에 대한 정보(도 3의 첫번째 행)를 수신할 수 있다. 3 and Table 3, a task processing method for a distributed file system according to an embodiment of the present invention is a method for processing a plurality of distributed data files 111, 121, 131 to be processed from a distributed file system 10 Information on the task (the first row in Fig. 3) can be received.

이에 따라, 스파크 프레임 워크에 포함된 API를 기초로 TextFile 태스크를 수행하여 하둡 분산 파일 시스템(10)(HDFS)으로부터 분산 데이터(RDD1)를 로딩하여 JVM heap CPU 메모리(110)에 저장할 수 있다. 또한, 스파크 프레임 워크에 포함된 API를 기초로 분산 데이터(RDD1)에 대해 map 태스크를 수행하여 분산 데이터(RDD2)를 생성할 수 있다. 이후, 표 1에 따라 생성한 API를 기초로 send 태스크를 수행하여 분산 데이터(RDD2)를 JVM heap CPU 메모리(110)로부터 off-heap CPU 메모리(120)에 복사하여 저장(VRDD3)할 수 있고, htod 태스크를 수행하여 off-heap CPU 메모리(120)에 저장된 분산 데이터(VRDD3)을 복사하여 GPU 메모리(130)에 저장(VRDD5)할 수 있고, 이후 cache 태스크를 수행하여 GPU 메모리(130)에 분산 데이터(VRDD5)의 저장을 유지하도록 할 수 있다. Accordingly, the TextFile task may be executed based on the API included in the spark framework to load the distributed data RDD1 from the Hadoop distributed file system 10 (HDFS) and store the distributed data RDD1 in the JVM heap CPU memory 110. [ Also, the distributed data RDD2 can be generated by performing a map task on the distributed data RDD1 based on the API included in the spark framework. Thereafter, the distributed data RDD2 may be copied from the JVM heap CPU memory 110 to the off-heap CPU memory 120 and stored (VRDD3) by performing a send task based on the API generated according to Table 1, (VRDD5) stored in the GPU memory 130 by copying the distributed data (VRDD3) stored in the off-heap CPU memory 120 by performing the htod task and then executing the cache task to distribute It is possible to maintain the storage of the data VRDD5.

이에 따라, GPU가 반복 연산(Iteration 1, Iteration 2, ...)을 수행함에 있어서 연산을 위해 반복적으로 사용하는 분산 데이터(VRDD5)를 보존할 수 있기 때문에, GPU와 CPU 간의 데이터 전송을 최소화 하고 GPU의 높은 연산 성능을 충분히 활용할 수 있다.Accordingly, since the GPU can store the distributed data (VRDD5) repeatedly used for the calculation in performing the iterative calculation (Iteration 1, Iteration 2, ...), data transfer between the GPU and the CPU is minimized GPU's high computing power can be fully utilized.

도 4는 영역 분할법(domain decomposition method)을 수행할 때 발생하는 할로(halo)에 대하여 설명하기 위한 예시도이다. 4 is an exemplary diagram for explaining halos generated when a domain decomposition method is performed.

영역 분할법은 도메인을 서브 도메인으로 분할하면서 분할의 경계에서 발생하는 경계값 문제를 해결하는 공지의 알고리즘이다. 이때 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법은 도메인의 분할과 함께 발생하는 서브 도메인(domain 0, domain 1) 간의 중첩 영역인 할로(Halo)에서의 연산 값을 여러 노드에서 직접적으로 공유하도록 할 수 있다. The domain segmentation method is a well-known algorithm for solving the boundary value problem occurring at the boundary of a partition while dividing the domain into sub-domains. At this time, a task processing method for a distributed file system according to an embodiment of the present invention is a method for processing a task in a node (Halo), which is an overlapping area between sub-domains (domain 0 and domain 1) You can share it directly.

도 5는 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법에 따라 영역 분할법이 수행되는 과정을 설명하기 위한 예시도이다. 5 is an exemplary diagram illustrating a process of performing a region partitioning method according to a task processing method for a distributed file system according to an embodiment of the present invention.

도 5를 참조하면, 첫번째 행은 분산 데이터에 대해 처리해야 할 복수의 태스크에 대한 정보를 의미낸다. 이때 GPU 메모리(130)에 저장된 분산 데이터(VRDD1)는 저장이 유지된 채로 반복 연산에 사용될 수 있다. 한편, 도 4에서 domain 0 과 domain 1에 대한 분산 데이터는 서로 다른 노드에 저장되어 있을 수 있다. Referring to FIG. 5, the first row indicates information about a plurality of tasks to be processed for distributed data. At this time, the distributed data (VRDD1) stored in the GPU memory (130) can be used for iterative calculation while the storage is maintained. Meanwhile, in FIG. 4, the distributed data for domain 0 and domain 1 may be stored in different nodes.

예를 들어, 현재 노드에는 domain 0에 대한 분산 데이터(VRDD1)를 저장하고 있고, 다른 노드에 domain 1에 대한 분산 데이터가 저장되어 있다고 가정한다. 이때 현재 노드가 domain 0의 할로 부분에 대한 연산을 수행하기 위해서는 다른 노드가 갖고 있는 domain 1의 할로 부분에 대한 정보가 공유되어야 한다. 이를 위해, 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법은 아래 표 4와 같은 명령을 통해 영역 분할법을 수행할 수 있다. For example, assume that the current node is storing distributed data (VRDD1) for domain 0, and the distributed data for domain 1 is stored in another node. In this case, in order for the current node to perform operation on the halo part of domain 0, information about the halo part of domain 1 of another node should be shared. To this end, the task processing method for the distributed file system according to an embodiment of the present invention can perform the area partitioning method through the command shown in Table 4 below.

Figure pat00004
Figure pat00004

도 5 및 표 4를 참조할 때, 본 발명의 일 실시예는 표 1에 따라 생성한 API를 기초로 extract 태스크를 수행하여 GPU 메모리(130)에 저장된 분산 데이터(VRDD1) 중 할로에 해당하는 부분을 추출하여 해당 부분을 off-heap CPU 메모리(120)에 복사하여 저장한다. 이후, shuffle 태스크를 수행하여 off-heap CPU 메모리(120)에 저장된 할로 부분에 대한 분산 데이터(VRDD2)를 다른 노드에 저장된 할로 부분에 대한 분산 데이터와 공유하여 halo에 대한 영역 분할법 연산을 수행할 수 있고, 그에 따라 영역 분할법 연산이 수행된 분할 데이터(VRDD3)을 생성할 수 있다. 이때 off-heap CPU 메모리(120)는 MPI(message passing interface) 규약에 따라 분산 데이터를 분산 파일 시스템(10)의 다른 노드와 공유할 수 있기 때문이다. 5 and Table 4, an embodiment of the present invention performs an extract task based on the API generated according to Table 1 to calculate a part of the distributed data (VRDD1) stored in the GPU memory 130 Heap CPU memory 120, and stores the copied portion. Thereafter, the shuffle task is performed to share the distributed data (VRDD2) for the halo portion stored in the off-heap CPU memory 120 with the distributed data for the halo portion stored at the other node to perform the area division method for halo And can thereby generate the divided data VRDD3 in which the area division method operation has been performed. This is because the off-heap CPU memory 120 can share distributed data with other nodes of the distributed file system 10 in accordance with the MPI (message passing interface) protocol.

이후, GPU 메모리(130)는 표 1에 따라 생성한 API를 기초로 append 태스크를 수행하여 VRDD1과 VRDD3으로부터 영역 분할법이 1회 연산된 domain 0에 대한 정보를 생성할 수 있고, 이러한 연산을 반복하여 수행할 수 있다. Thereafter, the GPU memory 130 may perform an append task based on the API generated according to Table 1 to generate information on domain 0, which is calculated once by the area division method, from VRDD1 and VRDD3, Can be performed.

따라서 본 발명의 일 실시예는 off-heap CPU 메모리(120)를 사용함에 따라, GPU 메모리(130)만을 연산에 사용하여 분산 데이터에 대한 정보를 직접적으로 공유할 수 없었던 기존 기술과 달리 다른 노드와 분산 데이터를 직접적으로 통신하여 공유할 수 있다.Therefore, according to the embodiment of the present invention, since the off-heap CPU memory 120 is used, only the GPU memory 130 is used for the calculation, and unlike the existing technology in which information on distributed data can not be directly shared, Distributed data can be directly communicated and shared.

도 6은 본 발명의 일 실시예에 따른 분산 파일 시스템에 대한 태스크 처리 방법과 기존 프레임 워크의 성능을 비교한 실험 결과이다. FIG. 6 is a graph illustrating an experimental result of comparing a task processing method for a distributed file system and an existing framework according to an exemplary embodiment of the present invention.

도 6에 따른 실험은, spark-C 프레임 워크, spark-G 프레임 워크 및 본 발명의 실시예에 따른 CPU 메모리에서 GPU 메모리(130)로 분산 데이터를 복사/저장하는 시간과 exec 태스크를 수행하는 GPU 커널 연산 시간을 비교한 것으로서, 본 발명의 일 실시예가 기존의 스파크 프레임 워크에 비해 현저하게 향상된 속도를 보이는 것을 확인할 수 있다. 6 is based on the spark-C framework, the spark-G framework, and the GPU memory 130, which performs time and exec tasks to copy / store distributed data from the CPU memory to the GPU memory 130 according to embodiments of the present invention. As compared to the kernel operation time, it can be seen that the embodiment of the present invention shows remarkably improved speed compared to the existing spark framework.

따라서 상술한 실시예에 따르면, off-heap CPU 메모리(120)로부터 전송 받은 분산 데이터에 대해 GPU가 태스크를 수행하게 하여 메인 메모리에서 GPU로 분산 데이터를 주기적으로 전송함에 따라 소요되는 시간은 없앰으로써, 분산 파일 시스템(10)에서의 GPU 성능을 최대한으로 발휘할 수 있게 한다.Therefore, according to the above-described embodiment, since the GPU performs the task on the distributed data transmitted from the off-heap CPU memory 120 and the distributed data is periodically transmitted from the main memory to the GPU, So that GPU performance in the distributed file system 10 can be maximized.

상술한 본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.The above-described embodiments of the present invention can be implemented by various means. For example, embodiments of the present invention may be implemented by hardware, firmware, software, or a combination thereof.

하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), FPGAs(Field Programmable Gate Arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.In the case of hardware implementation, the method according to embodiments of the present invention may be implemented in one or more Application Specific Integrated Circuits (ASICs), Digital Signal Processors (DSPs), Digital Signal Processing Devices (DSPDs), Programmable Logic Devices (PLDs) , FPGAs (Field Programmable Gate Arrays), processors, controllers, microcontrollers, microprocessors, and the like.

펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드 등이 기록된 컴퓨터 프로그램은 컴퓨터 판독 가능 기록 매체 또는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 메모리 유닛은 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 프로세서와 데이터를 주고 받을 수 있다.In the case of an implementation by firmware or software, the method according to embodiments of the present invention may be implemented in the form of a module, a procedure or a function for performing the functions or operations described above. A computer program recorded with a software code or the like may be stored in a computer-readable recording medium or a memory unit and may be driven by a processor. The memory unit is located inside or outside the processor, and can exchange data with the processor by various known means.

또한 본 발명에 첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수도 있다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 인코딩 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방법으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.Combinations of the individual blocks of the block diagrams and flowchart illustrations attached to the present invention may also be performed by computer program instructions. These computer program instructions may be embedded in an encoding processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus, so that the instructions, performed through the encoding processor of a computer or other programmable data processing apparatus, Thereby creating means for performing the functions described in each step of the flowchart. These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce a manufacturing item containing instruction means for performing the functions described in each block or flowchart of the block diagram. Computer program instructions may also be stored on a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.

더불어 각 블록 또는 각 단계는 특정된 논리적 기능을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한 몇 가지 대체 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들 또는 단계들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.In addition, each block or each step may represent a portion of a module, segment, or code that includes one or more executable instructions for executing the specified logical function. It should also be noted that in some alternative embodiments, the functions mentioned in the blocks or steps may occur out of order. For example, two blocks or steps shown in succession may in fact be performed substantially concurrently, or the blocks or steps may sometimes be performed in reverse order according to the corresponding function.

이와 같이, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Thus, those skilled in the art will appreciate that the present invention may be embodied in other specific forms without departing from the spirit or essential characteristics thereof. It is therefore to be understood that the embodiments described above are to be considered in all respects only as illustrative and not restrictive. It is intended that the present invention covers the modifications and variations of this invention provided they come within the scope of the appended claims and their equivalents. .

10: 분산 파일 시스템
100: 태스크 처리 장치
110: JVM heap CPU 메모리
120: off-heap CPU 메모리
130: GPU 메모리
111, 121, 131: 분산 데이터
10: Distributed File System
100: Task processing device
110: JVM heap CPU memory
120: off-heap CPU memory
130: GPU memory
111, 121, 131: distributed data

Claims (9)

하나 이상의 프로세서에 의해 수행되는 분산 파일 시스템에 대한 태스크 처리 방법에 있어서,
분산 파일 시스템으로부터 분산 데이터에 대해 처리해야 할 복수의 태스크에 대한 정보를 수신하는 단계;
상기 복수의 태스크에 대한 정보 중 GPU(graphic processing unit) 커널 연산에 관한 태스크가 포함되어 있는 경우,
상기 정보를 기초로 상기 분산 파일 시스템으로부터 상기 분산 데이터 중 제1 분산 데이터를 로딩하여 JVM(java virtual machine) heap CPU(central processing unit) 메모리에 저장하는 단계;
상기 제1 분산 데이터를 복사한 제2 분산 데이터를 off-heap CPU 메모리에 저장하는 단계;
상기 제2 분산 데이터를 복사한 제3 분산 데이터를 GPU 메모리에 저장하는 단계; 및
상기 제3 분산 데이터에 대해 상기 GPU 커널 연산을 수행하는 단계를 포함하는
분산 파일 시스템에 대한 태스크 처리 방법.
1. A task processing method for a distributed file system performed by one or more processors,
Receiving information on a plurality of tasks to be processed for distributed data from a distributed file system;
When a task related to a graphics processing unit (GPU) kernel operation is included in the information on the plurality of tasks,
Loading first distributed data of the distributed data from the distributed file system based on the information and storing the first distributed data in a Java virtual machine (JVM) heap central processing unit (CPU) memory;
Storing second distributed data obtained by copying the first distributed data in an off-heap CPU memory;
Storing third distributed data having copied the second distributed data in a GPU memory; And
And performing the GPU kernel operation on the third distributed data
How to handle tasks for distributed file systems.
제1항에 있어서,
상기 분산 파일 시스템은,
하둡 분산 파일 시스템(hadoop distributed file system, HDFS)이고,
상기 제1 분산 데이터를 로딩하여 상기 JVM heap CPU 메모리에 저장하는 단계는,
스파크(spark) 프레임 워크의 API를 기초로 수행되는
분산 파일 시스템에 대한 태스크 처리 방법.
The method according to claim 1,
The distributed file system includes:
Hadoop distributed file system (HDFS)
The step of loading the first distributed data and storing the first distributed data in the JVM heap CPU memory includes:
Based on the API of the spark framework
How to handle tasks for distributed file systems.
제1항에 있어서,
상기 제3 분산 데이터를 상기 GPU 메모리에 저장하는 단계는,
GPU 컨텍스트(GPU context)를 선언하는 단계를 포함하는
분산 파일 시스템에 대한 태스크 처리 방법.
The method according to claim 1,
Wherein the storing the third distributed data in the GPU memory comprises:
Declaring a GPU context (GPU context)
How to handle tasks for distributed file systems.
제1항에 있어서,
상기 off-heap CPU 메모리는,
MPI(message passing interface) 규약에 따라 상기 제2 분산 데이터를 상기 분산 파일 시스템에 포함된 노드와 공유하는
분산 파일 시스템에 대한 태스크 처리 방법.
The method according to claim 1,
The off-heap CPU memory includes:
Sharing the second distributed data with a node included in the distributed file system according to an MPI (message passing interface) protocol
How to handle tasks for distributed file systems.
제1항에 있어서,
상기 제2 분산 데이터를 상기 off-heap CPU 메모리에 저장하는 단계는,
UDS(unix domain socket) 통신을 통해 상기 JVM heap CPU 메모리로부터 상기 off-heap CPU 메모리에 상기 제1 분산 데이터를 복사하는 단계를 포함하는
분산 파일 시스템에 대한 태스크 처리 방법.
The method according to claim 1,
Storing the second distributed data in the off-heap CPU memory comprises:
Copying the first distributed data from the JVM heap CPU memory to the off-heap CPU memory via UDS (unix domain socket) communication
How to handle tasks for distributed file systems.
제1항에 있어서,
상기 제3 분산 데이터를 상기 GPU 메모리에 저장하는 단계는,
CUDA(compute unified device architecture)의 memcpy 명령을 통해 상기 off-heap CPU 메모리로부터 상기 GPU 메모리에 상기 제2 분산 데이터를 복사하는 단계를 포함하는
분산 파일 시스템에 대한 태스크 처리 방법.
The method according to claim 1,
Wherein the storing the third distributed data in the GPU memory comprises:
Copying the second distributed data from the off-heap CPU memory to the GPU memory via a memcpy command of a compute unified device architecture (CUDA)
How to handle tasks for distributed file systems.
제1항 내지 제6항 중 어느 한 항의 방법을 수행하는 하나 이상의 프로세서를 포함하는 연산 장치.
7. An arithmetic unit comprising one or more processors for performing the method of any one of claims 1-6.
제1항 내지 제6항 중 어느 한 항의 방법을 하나 이상의 프로세서가 수행하게 하는 명령어를 포함하는 컴퓨터 프로그램이 기록된 컴퓨터 판독 가능 기록매체.
A computer program comprising instructions for causing one or more processors to perform the method of any one of claims 1 to 6.
제1항 내지 제6항 중 어느 한 항의 방법을 하나 이상의 프로세서가 수행하도록 하는 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램. A computer program stored on a computer-readable medium for causing the one or more processors to perform the method of any one of claims 1 to 6.
KR1020170168451A 2017-05-12 2017-12-08 Method for processing task in respect to distributed file system KR102026333B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170059611 2017-05-12
KR1020170059611 2017-05-12

Publications (2)

Publication Number Publication Date
KR20180124692A true KR20180124692A (en) 2018-11-21
KR102026333B1 KR102026333B1 (en) 2019-09-27

Family

ID=64602683

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170168451A KR102026333B1 (en) 2017-05-12 2017-12-08 Method for processing task in respect to distributed file system

Country Status (1)

Country Link
KR (1) KR102026333B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021075674A1 (en) * 2019-10-18 2021-04-22 삼성전자주식회사 Electronic device and control method therefor
CN113254199A (en) * 2021-05-07 2021-08-13 埃森智能科技(深圳)有限公司 Method, system and equipment for simultaneously processing multiple tasks

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150101644A (en) * 2014-02-27 2015-09-04 서울시립대학교 산학협력단 Executing performance enhancement method, executing performance enhancement apparatus and executing performance enhancement system for map-reduce programming model considering different processing type
KR101794696B1 (en) 2016-08-12 2017-11-07 서울시립대학교 산학협력단 Distributed processing system and task scheduling method considering heterogeneous processing type

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150101644A (en) * 2014-02-27 2015-09-04 서울시립대학교 산학협력단 Executing performance enhancement method, executing performance enhancement apparatus and executing performance enhancement system for map-reduce programming model considering different processing type
KR101794696B1 (en) 2016-08-12 2017-11-07 서울시립대학교 산학협력단 Distributed processing system and task scheduling method considering heterogeneous processing type

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
X Lu 외 4인, 'DataMPI: Extending MPI to Hadoop-like Big Data Computing', 2014 IEEE 28th International Parallel & Distributed Processing Symposium, May 2014* *
Y Yuan 외 5인, ‘Spark-GPU: An Accelerated In-Memory DataProcessing Engine on Clusters’, 2016 IEEE International Conference on Big Data, Dec 2016* *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021075674A1 (en) * 2019-10-18 2021-04-22 삼성전자주식회사 Electronic device and control method therefor
CN113254199A (en) * 2021-05-07 2021-08-13 埃森智能科技(深圳)有限公司 Method, system and equipment for simultaneously processing multiple tasks

Also Published As

Publication number Publication date
KR102026333B1 (en) 2019-09-27

Similar Documents

Publication Publication Date Title
EP3667496B1 (en) Distributed computing system, data transmission method and device in distributed computing system
KR102173284B1 (en) Electronic system driving distributed file system using different types of storage mediums, and data storing method and managing method thereof
US9665404B2 (en) Optimization of map-reduce shuffle performance through shuffler I/O pipeline actions and planning
CN110262901B (en) Data processing method and data processing system
Li et al. Malt: distributed data-parallelism for existing ml applications
EP3356937B1 (en) Distributed stream-based database triggers
US9170950B2 (en) Method, apparatus and computer programs providing cluster-wide page management
CN104536937B (en) Big data all-in-one machine realization method based on CPU GPU isomeric groups
WO2017070900A1 (en) Method and apparatus for processing task in a multi-core digital signal processing system
US9367359B2 (en) Optimized resource management for map/reduce computing
CN109669772B (en) Parallel execution method and equipment of computational graph
US10970805B2 (en) Graphics processing unit operation
US8689233B2 (en) Distributed function execution for hybrid systems
WO2019153880A1 (en) Method for downloading mirror file in cluster, node, and query server
KR102026333B1 (en) Method for processing task in respect to distributed file system
CN107204998B (en) Method and device for processing data
Slagter et al. SmartJoin: a network-aware multiway join for MapReduce
WO2016008317A1 (en) Data processing method and central node
JP2016071886A (en) Scheduler computing device, data node for distributed computing system including the same, and method thereof
US10474545B1 (en) Storage system with distributed input-output sequencing
JP6814756B2 (en) Hypervisor, arithmetic unit
CN107851101B (en) Method for executing fault-tolerant data processing in distributed computing system and fault-tolerant distributed computing system
US11604669B2 (en) Single use execution environment for on-demand code execution
Gawande et al. Improving network traffic in MapReduce for big data applications
US20230419160A1 (en) 3-tier quantum computing execution model

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