KR20160070984A - 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법 - Google Patents

하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법 Download PDF

Info

Publication number
KR20160070984A
KR20160070984A KR1020140178119A KR20140178119A KR20160070984A KR 20160070984 A KR20160070984 A KR 20160070984A KR 1020140178119 A KR1020140178119 A KR 1020140178119A KR 20140178119 A KR20140178119 A KR 20140178119A KR 20160070984 A KR20160070984 A KR 20160070984A
Authority
KR
South Korea
Prior art keywords
fluid dynamics
computational fluid
simulation
data
synchronization
Prior art date
Application number
KR1020140178119A
Other languages
English (en)
Other versions
KR101656693B1 (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 KR1020140178119A priority Critical patent/KR101656693B1/ko
Publication of KR20160070984A publication Critical patent/KR20160070984A/ko
Application granted granted Critical
Publication of KR101656693B1 publication Critical patent/KR101656693B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/13Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Structural Engineering (AREA)
  • Computational Mathematics (AREA)
  • Civil Engineering (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Architecture (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치에 관한 것으로, 전산유체역학의 시뮬레이션을 위한 개별 작업을 복수 개의 슬레이브 노드(slave node)에 할당하며, 시뮬레이션을 수행을 위해 복수 개의 슬레이브 노드와의 전역 동기화(global synchronization)를 수행하는 하나의 마스터 노드(master node) 및 마스터 노드의 제어에 따라 분산 저장소(Hadoop Distributed FIle System, HDFS)를 이용하여 전산유체역학의 시뮬레이션을 위한 개별 작업을 분산하여 수행하며, 슬레이브 노드들 간의 상호 데이터를 동기화하는 복수 개의 슬레이브 노드를 포함한다.

Description

하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법{Apparatus and method for simulating computational fluid dynamics using Hadoop platform}
본 발명은 고성능 컴퓨팅의 사용처 중 하나인 전산유체역학의 시뮬레이션을 맵리듀스(MapReduce) 기술을 활용하여 구현하는 기술에 관한 것으로서, 특히 하둡 플랫폼(Hadoop platform) 상에서 수행되는 전산유체역학의 시뮬레이션 장치 및 방법에 관한 것이다.
최근 수십 년간 계산 칩 성능의 급격한 향상이 있어 왔다. 많은 그리드 컴퓨팅과 고성능 컴퓨팅(high performance computing, HPC) 클러스터는 과거에는 해결할 수 없었던 계산을 통해 인류에 기여하고 있는데, 이는 이러한 급격한 칩의 성능에 힘입은 것이다. 특별히 과학 계산은 해석학적 기법을 통해 풀 수 없는 문제들을 이러한 연산 성능을 통해 해결하는 중요한 분야이다. 발전하는 칩 성능은 '가속기'로 표현되는 그래픽 처리 유닛(graphic processing unit, GPU)과 같은 특수용도의 칩들을 일반 연산 분야에서 적극적으로 사용하게 되었다. 이와 같은 기조에 따라 과학 연산 분야에서도 이러한 칩들이 사용된 이종 클러스터(Heterogeneous cluster)를 이용한 연구가 활발하게 전개되고 있다.
한편, 대부분의 고성능 컴퓨팅은 단일 노드보다는 다수의 노드로 이루어진 컴퓨팅 클러스터에서 이루어진다. 이에 따라 각각의 노드의 성능을 모두 끌어내는 한편, 전체 시스템의 안정성을 유지하기 위한 노력은 HPC 구성의 일부가 되었다. 그러나, 이러한 기법들의 난이도가 낮지 않고, 하드웨어마다 성공적인 구성을 얻는 방법이 다양한 것은 개발자와 HPC가 필요한 과학자 모두에게 벽이 되었다.
다행히 개인용 PC를 위한 그리드 컴퓨팅 연구들이 상당수 진행되었고, 특히 최근에 데이터 집약적인 영역에서 큰 인기를 얻고 있는 하둡(Hadoop)과 같은 소프트웨어를 이용한 접근법이 제시된 것은 좋은 결실이다. 낮은 신뢰도의 노드에서 사용될 것을 가정한 하둡은 분산 파일 저장소와 같은 적극적인 클러스터 상태 관리, 간략한 프로그래밍 모델 등으로 많은 사용처에서 인기를 얻었다. 이하에서 인용되는 선행기술문헌에는 이러한 맵리듀스를 이용한 분산 처리 기술이 제시되어 있다.
그러나 이러한 발전된 계산 칩의 성능과 하둡을 통해 과학 시뮬레이션에 이용하는 활용 방법론은 아직까지 제시되지 못하고 있다.
J. Dean and S. Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters,"pp. 137-149.
본 발명이 해결하고자 하는 기술적 과제는, 종래의 대형 전산유체역학 시뮬레이션이 슈퍼컴퓨터에만 한정하여 구동되는 한계를 극복하고, 이에 따라 하드웨어 및 운용 인력에 소요되는 비용이 증가하는 문제점을 해결하고, 소프트웨어 실패에 따른 처리 및 시뮬레이션의 중단에 따른 비효율의 불편함을 해소하고자 한다.
상기 기술적 과제를 해결하기 위하여, 본 발명의 일 실시예에 따른 하둡 플랫폼(Hadoop platform)를 이용하여 전산유체역학(computational fluid dynamics)을 시뮬레이션하는 장치는, 상기 전산유체역학의 시뮬레이션을 위한 개별 작업을 복수 개의 슬레이브 노드(slave node)에 할당하며, 상기 시뮬레이션을 수행을 위해 상기 복수 개의 슬레이브 노드와의 전역 동기화(global synchronization)를 수행하는 하나의 마스터 노드(master node); 및 상기 마스터 노드의 제어에 따라 분산 저장소(Hadoop Distributed FIle System, HDFS)를 이용하여 상기 전산유체역학의 시뮬레이션을 위한 개별 작업을 분산하여 수행하며, 슬레이브 노드들 간의 상호 데이터를 지역 동기화하는 복수 개의 슬레이브 노드;를 포함한다.
일 실시예에 따른 상기 전산유체역학의 시뮬레이션 장치에서, 상기 슬레이브 노드는 상기 전산유체역학의 시뮬레이션을 위한 데이터 각각에 키(key)를 부여하고, 상기 키를 정렬함으로써 데이터 동기화가 발생하는 경계(boundary)를 감소시킬 수 있다.
일 실시예에 따른 상기 전산유체역학의 시뮬레이션 장치에서, 상기 마스터 노드는 동기화 메시지의 전송을 감독함으로써, 상기 동기화 메시지의 전송이 실패한 경우 실패한 부분만을 상기 슬레이브 노드로 하여금 재계산하도록 제어할 수 있다.
일 실시예에 따른 상기 전산유체역학의 시뮬레이션 장치에서, 상기 슬레이브 노드는 소정 체크포인트(checkpoint)마다 상기 동기화 메시지에 따른 중간 결과 데이터만을 상기 분산 저장소에 저장할 수 있다.
일 실시예에 따른 상기 전산유체역학의 시뮬레이션 장치에서, 상기 슬레이브 노드는 하나의 커널 드라이버(Kernel driver)가 복수 개의 OpenCL 프로그램을 가짐으로써 적어도 둘 이상의 처리기 및 가속기를 동시에 활용할 수 있다.
나아가, 이하에서는 상기 기재된 전산유체역학의 시뮬레이션 장치의 각 구성요소를 제어하는 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명의 실시예들은, 하둡 플랫폼(Hadoop platform)를 이용하여 하나의 마스터 노드를 이용하여 전역 동기화를 수행하고, 복수 개의 슬레이브 노드들이 분산 저장소를 이용하여 분산 작업을 처리하며 지역 동기화를 수행함으로써, 저비용으로 대형 전산유체역학 시뮬레이션을 구현할 수 있으며, GPU와 같은 이기종 가속기로 경쟁력 있는 연산 속도를 제공하면서도 중단 없이 효율적인 시뮬레이션 결과를 도출할 수 있다.
도 1은 본 발명의 일 실시예에 따른 하둡 플랫폼(Hadoop platform)를 이용하여 전산유체역학(computational fluid dynamics)을 시뮬레이션하는 장치를 도시한 블록도이다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 도 1의 시뮬레이션 장치에서 슬레이브 노드의 처리 구조를 설명하기 위한 도면이다.
도 4는 본 발명의 실시예들을 활용하여 전산유체역학의 시뮬레이션을 수행하는 전체 흐름을 도시한 도면이다.
본 발명의 실시예들을 구체적으로 소개하기에 앞서, 본 발명의 실시예들이 구현되는 환경에서 활용될 수 있는 개별적인 요소 기술들과 이를 이용한 전산유체역학 시뮬레이션 기술의 문제를 간략히 소개한 후, 이를 개선할 수 있는 기술적 수단을 순차적으로 제시하도록 한다.
전통적인 고성능 컴퓨팅은 고가의 컴퓨터 카드 그리드 등으로 구성된 고성능 공유 메모리 프로세서(shared memory processor, SMP) 또는 칩-레벨 다중 프로세서(chip-level multiprocessor, CMP) 기반의 고성능 분산 및 병렬 컴퓨터에서 진행되는 것이 필수적이었다. 슈퍼컴퓨터와 같은 이러한 기기들의 필연성을 높은 성능을 내는 것에도 있지만 높은 안정성을 지니는 것에도 있다. 대부분의 고성능 컴퓨팅 연산은 중간에 작업을 실패하게 되면 오랜 시간을 들인 고가의 중간 결과물을 포기하고, 일정 시간 뒤로 돌아가야 하며, 이로 인한 오버헤드는 고비용일 수 있기 때문이다.
한편, 2004년 등장한 하둡 프레임워크는 이러한 고가용성 분산처리가 하드웨어뿐만 아니라 소프트웨어로도 구성 가능함을 제시하였다. 하둡은 저렴하고 비교적 신뢰도가 낮은 노드들로 이루어진 컴퓨터 클러스터에서도 HDFS나 하트비트(heartbeat)와 같은 고가용성과 결함 내성(fault tolerance)을 보장하는 스케쥴링 및 자원 관리 방법을 추상적 수준에서 제공한다. 하둡은 이를 통해 안정적이고 자동화된 고도 분산 및 병렬 작업 환경을 제공하는 프레임워크이다.
이러한 하둡 프레임워크를 이용한 시스템은 데이터 집약적인 작업을 위해 탄생한 하둡을 본래의 용도인 빅데이터(big data) 처리뿐만 아니라, 이를 보완하거나 다른 용도로 사용할 수 있도록 하고 있다.
또한, OpenCL(Open Computing Language)은 CPU, GPU, DSP, FPGA 와 같은 이기종의 플랫폼 상에서 최적화된 프로그램을 작성하기 위한 SIMD 프로그래밍 프레임워크이다. OpenCL은 산업 표준임과 동시에 한번 작성된 코드로 다양한 아키텍처에서 자동으로 최적화되어 컴파일되기 때문에, 개발자는 서로 다른 아키텍처간의 차이점을 다소간 무시하고 프로그램을 작성할 수 있는 확장성과 이식성을 얻을 수 있다. 이는 OpenCL 커널이라 불리는 한 번 작성된 OpenCL 프로그램을 OpenCL 드라이버를 지원하는 모든 장치에서 수행할 수 있게 하기 때문이다. CPU 그리고 GPU, FPGA와 같은 특수 용도 칩들이 이들에 포함된다. 이는 모두 이기종 환경에서 수행할 수 있도록 하는 OpenCL 규약 덕분이다.
한편, 자기유체역학(Magnetohydrodynamics, MHD)은 자기(magnetism)를 고려한 유체역학(hydrodynamics)으로서, 강력한 전기전도성을 가진 유체의 특성을 파악할 때에 쓰인다. 전기전도성을 가진 유체의 기본적인 예로 수은 또는 액체 상태의 고온 메탈을 생각해볼 수 있으나, MHD는 주로 이온화된 가스 상태인 플라즈마 물질의 역학적 해석에 쓰인다. 물론 플라즈마를 이루는 여러 개의 이온들과 전자들은 매우 작은 입자로서, 이들 간의 충돌 역시 고려 대상이다. 그러나 거시적인 해석에서는 플라즈마 물질의 특성상 이를 유체로서 고려해도 합리적인 정확도를 가지므로, 이를 이용해 연산량을 크게 줄일 수 있다. 이에 따라 자기유체역학은 유체 역학의 형태를 띠게 된다.
MHD의 주사용 대상인 플라즈마 상태의 물질을 가장 활발히 연구하는 분야로는 고에너지 밀도 물리학(high energy density physics)을 꼽을 수 있다. 이 분야는 은하의 형성 과정이나 핵융합 반응 등을 연구하는데, 이들은 실제 실험 환경을 구축하기가 불가능하거나 실험에 매우 큰 비용이 들기 때문에 연구의 상당 부분을 컴퓨터 시뮬레이션을 통해 진행한다. 이에 따라 MHD는 전산유체역할을 통해 해결될 수 있다.
MHD 시뮬레이터의 주기능은 편미분 방정식(partial differential equation, PDE)으로 표현되는 오일러 방정식(Euler equation)과 맥스웰 방정식(Maxwell equation)을 푸는 것이다. 따라서 MHD 시뮬레이터의 구성은 이러한 PDE들을 어떻게 푸는지를 결정하는 것이며, 계산의 신뢰성을 높이기 위해 문제를 여러 개의 도메인, 즉 셀(cell)로 나누는 것이 필수적이다.
이렇게 다수의 셀로 나누어 계산을 진행하면 셀의 숫자만큼 계산의 신뢰성을 높일 수 있지만, 동시에 많은 계산량을 필요로 하게 된다. 대부분의 전산유체역학처럼 MHD 시뮬레이션은 전통적으로 많은 연산량을 감당할 수 있는 슈퍼컴퓨터와 같은 고도 병렬/분산 시스템에서 시뮬레이션이 진행되었다. 따라서 적은 비용으로 동시에 많은 계산을 수행할 수 있는 시뮬레이션 환경의 구축은 MHD 시뮬레이터를 사용하는 연구 분야의 주된 관심사이다.
과학 시뮬레이션을 하둡 플랫폼으로 구현하는 데에는 맵리듀스 기법의 적용 가능성을 먼저 검토해보아야 한다. 이는 하둡 자체가 구글의 맵리듀스의 오픈소스 구현체이기 때문이다. 과학 시뮬레이션과 맵리듀스의 상충점은 이하의 표 1에 소개되어 있다.
Figure pat00001
자기유체역학 시뮬레이션과 같이 유한체적법(finite volume method)을 사용하는 시뮬레이션은 동기화 문제를 가진다. 예를 들어 MHD에서는 게산 도중 결정되는 타임 스텝(time step)을 전체 노드가 공유하여야 하고, 각 노드끼리 경계(boundary) 정보를 교환하여야 하는 등, 전역적 동기화 및 지역적 동기화 필요성을 동시에 가진다. 또한 매 반복(iteration)의 계산 비용은 비교적 작지만, 전체 작업의 계산 비용은 매우 커서, 빠른 반복 및 높은 총 계산 비용의 특징을 가지게 된다.
반면, 하둡은 맵리듀스와 같이 데이터 집약적인 작업에서 높은 성능을 나타내기 위해 제작되었다. 따라서 대용량의 비정형 데이터를 처리하는 데에 유리하도록 맵과 리듀스 단계(phase)의 조합만으로 하나의 작업(job)을 표현하도록 설계되어 있다. 또한 하둡은 반복에 대한 고려가 없으며 반복적인 작업에서의 낮은 성능은 여러 차례 지적되어 왔다. 이에 따라 수없이 많은 반복을 통해 달성되는 과학 시뮬레이션을 맵리듀스로 구현하고자 하면, 맵 및 리듀스 단계 내에서는 각 노드간 통신이 불가능함에 따라 전역적 및 지역적 동기화 기능을 대안적으로 구현하기 위한 상당한 오버헤드 역시 동반될 수 있다.
그러나, 과학 시뮬레이션이 하둡 플랫폼에 완전히 적절히 않은 것은 아니다. 하둡 플랫폼은 저렴한 하드웨어로도 오랜 시간 컴퓨팅을 할 수 있는 소프트웨어적 방법으로서 HDFS와 하트비트와 같은 기술들은 컴퓨팅 이면에서 동작하여 개발자가 의식하지 않는 추상에서 백그라운드로 가용성을 제공한다. 이는 하둡 기반의 과학 시뮬레이션 구현체가 결함 내성(fault tolerance)에 대응하기 어려운 기존의 메시지 패싱 인터페이스(message passing interface, MPI) 기반의 구현체들보다 저렴한 하드웨어에서 운용되기 유리함을 암시한다. 또한 많은 과학 시뮬레이션들은 대량의 데이터를 생성하며, 이를 분석하기 위한 작업은 데이터 집약적이다. 만약 위의 문제를 하둡 플랫폼 내에서 해결한다면 사용자는 시뮬레이션 결과를 얻고, 이를 HDFS 상에서 구동되는 다른 도구를 통해 분석할 수 있게 된다. 이러한 데이터 분석 작업에는 하둡 맵리듀스 또는 SciHadoop과 같은 에코 시스템(Eco System) 내 도구를 그대로 이용할 수 있다. 따라서, 사용자는 데이터를 다각도로 분석할 수 있는 데이터 웨어하우스를 큰 노력없이 얻을 수 있다.
이상에서 소개한 상충점 중, 동기화 문제는 하둡 플랫폼 위에서의 과학 시뮬레이션 구현에서 가장 큰 장애물이다. 본 발명의 실시예들에서는 이러한 동기화 문제를 HDFS 상의 파일 입출력을 통해 해결하였다. 이러한 단순한 접근법은 매우 높은 결함 내성을 보장하며 하둡 그대로를 사용한다는 낮은 프로그래밍 난이도의 이점이 있다. 그러나 이러한 해결법은 HPC의 가장 중요한 덕목인 연산 속도를 일정 부분 포기하여야 한다. 특히 노드간 통신의 대체 구현으로써 생기는 분산 파일 시스템 상의 입출력은 하둡의 주요 성능 저하 원인으로 꼽히는 네트워크 병목을 가중시킬 수 있다.
이를 해결하기 위한 방법 중 하나로서 하둡의 하위 계층(low level)을 적극적으로 수정하여 원하는 기능을 추가 및 삭제할 수 있다. 그러나 이러한 기능의 변경에 앞서 하둡 시스템 내 도구들의 사용 가능성을 검토하였고, Apache Spark과 Apache HAMA가 이러한 요구를 충족할 수 있음을 발견하였다. Spark과 HAMA는 하둡 클러스터에서 구동되는 도구들로 Spark는 인-메모리(In-memory) 연산을 위해, HAMA는 맵리듀스 대신 BSP(Bulk Synchronous Parallel) 모델의 지원을 위해 개발되었다. 이 중 전산유체역학 시뮬레이션이 BSP 모델에 매우 적합하다는 점과 노드 간 통신에서 Apache HAMA가 더 뛰어나다는 판단에, 이를 활용하여 본 발명의 실시예들에 적용하였다. 또한 HAMA가 지원하는 희소/조밀(Sparse/Dense) 행렬(Matrix)과 벡터(Vector) 자료형은 전산 자료형 개발에 활용하였으며, Apache HAMA가 OpenCL 커널을 지원할 수 있도록 필요한 라이브러리를 통합하였다.
대부분의 과학 시뮬레이션에서는 진행되는 모든 결과를 저장하는 것보다는, 일정한 체크포인트(checkpoint)마다 중간 결과물을 저장하는 방법이 바람직하다. 이는 데이터의 입출력에 의한 오버헤드를 최소화하고 데이터를 메모리에 유지시켜 인-메모리 연산으로 더 빠른 결과를 얻기 위함이다. 따라서 매 단계마다 분산 파일 시스템에 입출력을 발생시키는 통상의 하둡 프로그램은 컴퓨팅 시간 자체가 중요한 과학 시뮬레이션에서는 부적절한 것이다. 그러나 이를 완전히 포기하면 하둡의 강점인 결함 내성을 상당 부분 잃게 된다.
이에, 본 발명의 실시예들은 결함 내성을 낮은 비용으로 얻을 수 있도록 사용자가 설정한 단계마다 체크포인트를 생성하게 하였다. 또한 Apache HAMA는 매 통신 내용에 대한 체크포인트를 생성하여 극도로 높은 결함 내성을 얻을 수 있도록 설정될 수 있는데, 보다 높은 성능을 위해 본 발명의 실시예들은 이러한 부분을 배제하였다.
이하에서는, 도면을 참조하여 상기된 기술적 과제를 해결하기 위한 본 발명의 실시예들을 구체적으로 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 명칭 및 도면 부호로 나타내고 있음에 유의하여야 한다.
앞서 본 발명의 실시예들이 모든 결과를 HDFS(Hadoop Distributed File System)에 저장하는 대신, 체크포인트 데이터만을 저장하는 접근법을 사용한다고 기술한 바 있듯이, 이하에서는 체크포인트 도달 직전까지의 반복이 최대한 빠르게 동작할 수 있도록 전역 동기화(global synchronization)과 지역 동기화(local synchronization)을 최소화하는 노드 디자인을 제안한다. 이를 위해 본 발명의 실시예들에서는 전역 동기화를 전담하는 마스터 노드를 설정하기로 하였다. 이에 따라 제안하는 본 발명의 실시예들에 따른 시스템 디자인은 도 1과 같이 구성될 수 있다.
도 1은 본 발명의 일 실시예에 따른 하둡 플랫폼(Hadoop platform)를 이용하여 전산유체역학(computational fluid dynamics)을 시뮬레이션하는 장치를 도시한 블록도이다. 도 1에 도시된 바와 같이, 마스터 노드(10)는 전역 동기화와 매우 제한적인 경계 정보(boundary information)를 제공한다. 슬레이브 노드(20)는 실제 계산을 담당하는 다수의 장치를 의미한다.
요약하건대, 본 발명의 일 실시예에 따른 전산유체역학(computational fluid dynamics)을 시뮬레이션하는 장치 중 마스터 노드(master node)(10)는, 상기 전산유체역학의 시뮬레이션을 위한 개별 작업을 복수 개의 슬레이브 노드(slave node)에 할당하며, 상기 시뮬레이션을 수행을 위해 상기 복수 개의 슬레이브 노드와의 전역 동기화(global synchronization)를 수행한다.
한편, 전산유체역학을 시뮬레이션하는 장치 중 복수 개의 슬레이브 노드(20)는, 상기 마스터 노드(10)의 제어에 따라 분산 저장소(Hadoop Distributed FIle System, HDFS)를 이용하여 상기 전산유체역학의 시뮬레이션을 위한 개별 작업을 분산하여 수행하며, 슬레이브 노드들 간의 상호 데이터를 지역 동기화한다.
앞서 가정한 바와 같이, 하둡의 맵리듀스를 사용할 경우, 데이터 동기화를 분산저장소(HDFS)를 통해 수행하게 되는데, 다수의 반복으로 구성되는 전산유체역학 시뮬레이션의 특성상 매 반복마다 데이터 동기화가 발생하게 된다. 더불어 일반적인 컴퓨터는 광통신 기반의 네트워크가 아닌 일반 이더넷을 사용하므로 이러한 동기화의 부담을 최소화할 필요가 있다.
따라서, 동기화를 최소화하기 위해 슬레이브 노드(20)는 상기 전산유체역학의 시뮬레이션을 위한 데이터 각각에 키(key)를 부여하고, 상기 키를 정렬함으로써 데이터 동기화가 발생하는 경계(boundary)(즉, 각 컴퓨터에 할당된 영역의 경계를 의미한다.)를 감소시킬 수 있다.
뿐만 아니라, 동기화 데이터는 손실시 시뮬레이션 진행이 멈추는 위험이 존재한다. 대형 시뮬레이션은 고비용의 작업이므로 중간에 진행이 멈출 경우 시간적, 금적적 손실이 상당하다. 따라서, 마스터 노드(10)는 동기화 메시지(동기화 데이터)의 전송을 감독하고, 상기 동기화 메시지의 전송이 실패한 경우 실패한 부분만을 상기 슬레이브 노드(20)로 하여금 재계산하도록 제어하는 것이 바람직하다. 이러한 데이터는 각 컴퓨터가 P2P로 직접 통신하여 동기화하므로 마스터 노드와의 실제 자료 교환이 없으며, 효율적인 통신을 가능하게 한다.
나아가, 더 높은 가용성을 원할 경우, 이들 메시지를 모두 체크포인트처럼 분산 저장소(HDFS)에 저장할 수도 있을 것이다. 이를 위해, 상기 슬레이브 노드(20)는 소정 체크포인트(checkpoint)마다 상기 동기화 메시지에 따른 중간 결과 데이터만을 상기 분산 저장소에 저장하는 것이 바람직하다.
도 2 및 도 3은 본 발명의 일 실시예에 따른 도 1의 시뮬레이션 장치에서 슬레이브 노드의 처리 구조를 설명하기 위한 도면이다.
각각의 슬레이브 노드는 데이터 송신과 HDFS에의 접근과 같은 하둡 노드로서의 최소한의 작업이 계산을 블록(block)하지 않도록 계산부(커널 드라이버를 의미한다.)와 분리되어 있다. 이들은 옵저버 패턴(observer pattern)으로 연결되어 있어서 커플링을 최소화하고 있으며, 도 2 및 도 3에 예시되어 있다.
특히, 도 3의 각 부분에 대한 설명은 다음과 같다.
1) Hadoop HDFS: 시뮬레이션 초기 값 및 체크포인 데이터를 분산 저장한다.
2) 스레드 연산(Compute Thread): 산술 연산을 관리하는 커널 드라이버를 호출하고 관리하는 자식 스레드(child thread)이다.
3) 커널 드라이버(Kernel Driver): 커널 소스, 계산에 필요한 데이터를 가지고 실제 OpenCL 커널에 대한 호출을 담당하는 객체이다.
4) 커널 소스(Kernel Source), 컴파일된 바이너리(Compiled Binary): 커널 소스는 하나의 소스코드로 CPU 및 GPU 등을 타겟으로 실행시간에 컴파일된 바이너리로 변환되는 소스를 의미한다.
본 발명의 실시예들이 제안하는 디자인에서는 CPU와 GPU, FPGA 등을 동시에 활용할 수 있도록 하나의 커널 드라이버가 여러 개의 OpenCL 프로그램(컴파일된 바이너리를 의미한다.)을 가질 수 있다. 즉, 슬레이브 노드는 하나의 커널 드라이버(Kernel driver)가 복수 개의 OpenCL 프로그램을 가짐으로써 적어도 둘 이상의 처리기 및 가속기를 동시에 활용할 수 있다.
이러한 실시예들이 제안하는 구성에 따라 전산유체역학 시뮬레이션이 진행되는 전체적인 흐름이 도 4에 도시되어 있다.
도 4는 본 발명의 실시예들을 활용하여 전산유체역학의 시뮬레이션을 수행하는 전체 흐름을 도시한 도면으로서, 각 부분에 대한 설명은 다음과 같다.
1) 데이터 로드(Data Load): 키(key)/값(value) 쌍을 HDFS에서 독출하여 메모리에 적재하는 과정으로서, 이후의 과정은 인-메모리 연산에 해당한다.
2) 동기화 대기(sync wait): 마스터 노드가 슬레이브 노드가 제출할 전역 동기화 데이터 생성 자료를 기다리는 과정이다.
3) 동기화 데이터 발행(publish sync data): 전역 동기화 데이터를 마스터 노드가 제작할 수 있도록 필요한 최소한의 정보를 마스터 노드에 제출하는 과정이다.
4) 전역 데이터 산출(compute global data), 동기화 데이터 수신(receive sync data): 마스터 노드는 전역 동기화 데이터를 가공하고, 이를 슬레이브 노드가 송신받는다.
5) 지역 연산 종료(finalize local computation): 전역 동기화 데이터가 필요한 연산을 수행하여 하나의 단계(step)을 마감한다.
6) 체크포인트 검사(check point?), 데이터 기록(write data): 체크포인트를 생성하여야 하는 단계인지를 확인하고, 만약 맞다면(true) HDFS에 체크포인트를 기록한다.
이상과 같이 하둡은 맵퍼(mapper) 및 리듀서(reducer)의 입출력 데이터 형식으로 키-값 쌍 구조를 사용하는데, Apache HAMA는 과학 시뮬레이션 연산에 유용한 매트릭스 및 벡터 자료형을 키와 값으로 지원한다. 따라서, 도 4의 데이터 로드와 데이터 기록에 필요한 하둡 키 값 쌍은 HAMA에서 지원하는 매트릭스 및 벡터 자료형을 사용하여 구현 가능하다. 그 결과 데이터 입출력을 위한 별도의 키-값 디자인을 구현하는 과정은 요구되지 않았다.
이상과 같이, 본 발명의 실시예들이 제안하는 클러스터는 가상 환경은 아니지만, 가상의 클러스터로 동작할 수 있다. 전체 클러스터의 마스터 노드는 연결된 이에 연결된 다수의 컴퓨터 중 계산에 참여할만한 컴퓨터(예를 들어, GPU가 장착된 고성능 컴퓨터)를 선별하여 가상의 클러스터를 구상한 다음, 이 중 계산을 위한 마스터 노드를 선정하고, 필요한 라이브러리 및 프로그램을 네트워크로 전송해 준다. 예를 들어, Apache HAMA, OpenCL 라이브러리, JavaCL 등이 그것이다. 따라서 마치 가상 머신이나 슈퍼컴퓨터를 운용하는 것처럼 모든 컴퓨터가 동일한 환경에서 작동하지만, 가상 머신을 운용하는데 필요한 추가적인 프로세서 자원 소모가 없다는 장점을 갖는다.
한편, 본 발명의 실시예들에서 특히 전산유체역학의 시뮬레이션 장치의 각 구성요소를 제어하는 일련의 연산 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함한다.
컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현하는 것을 포함한다. 또한, 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산 방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술 분야의 프로그래머들에 의하여 용이하게 추론될 수 있다.
이상에서 본 발명에 대하여 그 다양한 실시예들을 중심으로 살펴보았다. 본 발명에 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
10 : 마스터 노드
20 : 슬레이브 노드

Claims (5)

  1. 하둡 플랫폼(Hadoop platform)을 이용하여 전산유체역학(computational fluid dynamics)을 시뮬레이션하는 장치에 있어서,
    상기 전산유체역학의 시뮬레이션을 위한 개별 작업을 복수 개의 슬레이브 노드(slave node)에 할당하며, 상기 시뮬레이션을 수행을 위해 상기 복수 개의 슬레이브 노드와의 전역 동기화(global synchronization)를 수행하는 하나의 마스터 노드(master node); 및
    상기 마스터 노드의 제어에 따라 분산 저장소(Hadoop Distributed FIle System, HDFS)를 이용하여 상기 전산유체역학의 시뮬레이션을 위한 개별 작업을 분산하여 수행하며, 슬레이브 노드들 간의 상호 데이터를 지역 동기화하는 복수 개의 슬레이브 노드;를 포함하는 전산유체역학의 시뮬레이션 장치.
  2. 제 1 항에 있어서,
    상기 슬레이브 노드는 상기 전산유체역학의 시뮬레이션을 위한 데이터 각각에 키(key)를 부여하고, 상기 키를 정렬함으로써 데이터 동기화가 발생하는 경계(boundary)를 감소시키는 것을 특징으로 하는 전산유체역학의 시뮬레이션 장치.
  3. 제 1 항에 있어서,
    상기 마스터 노드는 동기화 메시지의 전송을 감독함으로써, 상기 동기화 메시지의 전송이 실패한 경우 실패한 부분만을 상기 슬레이브 노드로 하여금 재계산하도록 제어하는 것을 특징으로 하는 전산유체역학의 시뮬레이션 장치.
  4. 제 1 항에 있어서,
    상기 슬레이브 노드는 소정 체크포인트(checkpoint)마다 상기 동기화 메시지에 따른 중간 결과 데이터만을 상기 분산 저장소에 저장하는 것을 특징으로 하는 전산유체역학의 시뮬레이션 장치.
  5. 제 1 항에 있어서,
    상기 슬레이브 노드는 하나의 커널 드라이버(Kernel driver)가 복수 개의 OpenCL 프로그램을 가짐으로써 적어도 둘 이상의 처리기 및 가속기를 동시에 활용하는 것을 특징으로 하는 전산유체역학의 시뮬레이션 장치.
KR1020140178119A 2014-12-11 2014-12-11 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법 KR101656693B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140178119A KR101656693B1 (ko) 2014-12-11 2014-12-11 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140178119A KR101656693B1 (ko) 2014-12-11 2014-12-11 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160070984A true KR20160070984A (ko) 2016-06-21
KR101656693B1 KR101656693B1 (ko) 2016-09-12

Family

ID=56353638

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140178119A KR101656693B1 (ko) 2014-12-11 2014-12-11 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101656693B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815286A (zh) * 2016-12-05 2017-06-09 大唐网络有限公司 文件处理方法
KR20220073576A (ko) * 2020-11-26 2022-06-03 한국전자통신연구원 디지털 트윈을 이용한 실시간 분산 시뮬레이션 장치 및 이를 이용한 방법
CN116629163A (zh) * 2023-07-20 2023-08-22 北京凌云智擎软件有限公司 一种计算流体力学的仿真平台及计算方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145229A (ja) * 1997-05-30 1999-02-16 Nec Corp 分散メモリ型マルチプロセッサシステムにおけるプロセスの停止方式
KR20070106232A (ko) * 2006-04-28 2007-11-01 한국전력공사 발전소 시뮬레이션 시스템 및 그 구동 방법
KR20140080795A (ko) * 2012-12-18 2014-07-01 서강대학교산학협력단 가상화 환경 내 하둡 맵리듀스의 부하 분산 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1145229A (ja) * 1997-05-30 1999-02-16 Nec Corp 分散メモリ型マルチプロセッサシステムにおけるプロセスの停止方式
KR20070106232A (ko) * 2006-04-28 2007-11-01 한국전력공사 발전소 시뮬레이션 시스템 및 그 구동 방법
KR20140080795A (ko) * 2012-12-18 2014-07-01 서강대학교산학협력단 가상화 환경 내 하둡 맵리듀스의 부하 분산 방법 및 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
J. Dean and S. Ghemawat, "MapReduce: Simplified Data Processing on Large Clusters,"pp. 137-149.

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815286A (zh) * 2016-12-05 2017-06-09 大唐网络有限公司 文件处理方法
KR20220073576A (ko) * 2020-11-26 2022-06-03 한국전자통신연구원 디지털 트윈을 이용한 실시간 분산 시뮬레이션 장치 및 이를 이용한 방법
CN116629163A (zh) * 2023-07-20 2023-08-22 北京凌云智擎软件有限公司 一种计算流体力学的仿真平台及计算方法
CN116629163B (zh) * 2023-07-20 2023-11-14 北京凌云智擎软件有限公司 一种计算流体力学的仿真平台及计算方法

Also Published As

Publication number Publication date
KR101656693B1 (ko) 2016-09-12

Similar Documents

Publication Publication Date Title
Peterka et al. Scalable parallel building blocks for custom data analysis
Ma et al. Garaph: Efficient {GPU-accelerated} graph processing on a single machine with balanced replication
Vishnu et al. Distributed tensorflow with MPI
CN105335215A (zh) 一种基于云计算的蒙特卡洛仿真加速方法及系统
Lai et al. Hybrid MPI and CUDA parallelization for CFD applications on multi‐GPU HPC clusters
Xue et al. An improved framework of GPU computing for CFD applications on structured grids using OpenACC
Kristensen et al. Numerical Python for scalable architectures
KR101656693B1 (ko) 하둡 플랫폼을 이용한 전산유체역학의 시뮬레이션 장치 및 방법
Xue et al. Multi‐GPU performance optimization of a computational fluid dynamics code using OpenACC
Bhatele et al. Architectural constraints to attain 1 exaflop/s for three scientific application classes
Shabanov et al. Building the software-defined data center
Theodoropoulos et al. The AXIOM platform for next-generation cyber physical systems
Huang et al. Preliminary study of a cluster-based open-source parallel GIS based on the GRASS GIS
Peng et al. Cloud computing model based on MPI and OpenMP
Giorgi et al. AXIOM: a flexible platform for the smart home
Holmes et al. A framework for parallel computational physics algorithms on multi-core: SPH in parallel
Yang et al. Performance‐based parallel loop self‐scheduling using hybrid OpenMP and MPI programming on multicore SMP clusters
Davis et al. Paradigmatic shifts for exascale supercomputing
Häuser et al. A test suite for high-performance parallel Java
Brown et al. POETS: An Event-driven Approach to Dissipative Particle Dynamics: Implementing a Massively Compute-intensive Problem on a Novel Hard/Software Architecture.
da Rosa Righi et al. Designing Cloud-Friendly HPC Applications
Goldsby et al. Multithreaded agent-based simulation
Grant et al. Networks and MPI for cluster computing
Kurt et al. Disc: a domain-interaction based programming model with support for heterogeneous execution
Kim et al. Computational fluid dynamics simulation based on Hadoop Ecosystem and heterogeneous computing

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: 20190808

Year of fee payment: 4