KR101642823B1 - 이웃 탐색 연산 시스템 - Google Patents

이웃 탐색 연산 시스템 Download PDF

Info

Publication number
KR101642823B1
KR101642823B1 KR1020150018391A KR20150018391A KR101642823B1 KR 101642823 B1 KR101642823 B1 KR 101642823B1 KR 1020150018391 A KR1020150018391 A KR 1020150018391A KR 20150018391 A KR20150018391 A KR 20150018391A KR 101642823 B1 KR101642823 B1 KR 101642823B1
Authority
KR
South Korea
Prior art keywords
data
lattice structure
scheduler
arithmetic
square lattice
Prior art date
Application number
KR1020150018391A
Other languages
English (en)
Other versions
KR20150133121A (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 한국과학기술원
Publication of KR20150133121A publication Critical patent/KR20150133121A/ko
Application granted granted Critical
Publication of KR101642823B1 publication Critical patent/KR101642823B1/ko

Links

Images

Classifications

    • G06F19/00
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 발명은 입자 기반 유체 시뮬레이션(Particle-based fluid simulation)을 복합 구조 병렬 시스템을 이용해서 빠르게 수행하는 방법에 관한 것이다. 본 발명의 실시예에 따른 이웃 탐색 연산 시스템은 이웃 탐색 연산을 수행하는 복수의 연산장치; 및 상기 복수의 연산장치에 일을 할당하는 스케줄러;를 포함하며, 상기 스케줄러는 정방형 격자 구조의 데이터를, 상기 복수의 연산장치 중 일을 할당할 연산장치의 주기억장치의 용량에 따라 분할하여 분배할 수 있다.

Description

이웃 탐색 연산 시스템 {NEIGHBOR DISCOVERY COMPUTATION SYSTEM}
본 발명은 이웃 탐색 연산 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 입자 기반 유체 시뮬레이션(Particle-based fluid simulation)을 복합 구조 병렬 시스템을 이용해서 빠르게 수행할 수 있는 이웃 탐색 연산 시스템에 관한 것이다.
입자기반 유체 시뮬레이션(Particle-based fluid simulation)은 기체, 물과 같은 유체를 입자(particle)들로 표현하고, 그 물리적 움직임을 재현하는 시뮬레이션 기법이다. 대표적인 입자 기반 유체 시뮬레이션 기법으로는 입자완화 유체 동역학(SPH: Smoothed Particle Hydrodynamics)이 있으며, SPH를 확장한 다양한 입자 기반 유체 시뮬레이션 기법이 존재한다(참조: [IOBST14] IHMSEN M., ORTHMANN J., B. SOLENTHALER A. K., TESCHNER M.: Sph fluids in computer graphics. State-of-the-Art Report, Eurographics (2014). 2)
SPH계열 유체 시뮬레이션 기법은 각 입자들에 대해 이웃 입자를 도출해 내고, 이웃 입자들과의 거리에 기반하여 해당 입자에 가해지는 힘을 계산하여 입자의 움직임을 계산한다. 이를 위해 시뮬레이션 공간 안의 모든 입자 각각에 대해 ε-이웃 탐색을 수행해야 한다.
도1에 도시된 바와 같이, SPH기반 입자기반 유체 시뮬레이션은 이웃 탐색 단계, 힘 계산 단계, 입자 정보 갱신 단계를 통해서 수행될 수 있다. 그 중에서도 모든 입자 각각에 대해 ε-이웃 탐색을 수행해야 하는 이웃 탐색 단계가 전체 연산 중 가장 많은 연산 시간을 요구하는 것이 일반적이다(참조: [IABT11] IHMSEN M., AKINCI N., BECKER M., TESCHNER M.: A parallel sph implementation on multi-core cpus. Computer Graphics Forum 30, 1 (2011), 99-112.).
종래에는, 다중코어 중앙처리 장치(Multi-core CPU) 또는 그래픽스 가속장치(Graphics Processing Unit, GPU)에 특화되어 ε-이웃 탐색 연산을 가속화 기법이 개발되어 왔다(참조: [IABT11] IHMSEN M., AKINCI N., BECKER M., TESCHNER M.: A parallel sph implementation on multi-core cpus. Computer Graphics Forum 30, 1 (2011), 99-112. [GSSP10] GOSWAMI P., SCHLEGEL P., SOLENTHALER B., PAJAROLA R.: Interactive sph simulation and rendering on the gpu. In Proc. of ACM SIGGRAPH/EG Symposium on Computer Animation (2010), pp. 55-64.).
입자기반 유체 시뮬레이션 및/또는 ε-이웃 탐색 연산을 가속화할 수 있는 프레임워크 및 기법에 대한 필요성이 증대되고 있다.
본 발명은 종래의 필요성을 충족시키기 위해서 고안된 것으로써, 입자기반 유체 시뮬레이션 및/또는 이웃 탐색 연산을 가속화할 수 있는 프레임워크 및 기법을 제공하기 위한 것이다.
본 발명이 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 본 발명의 기재로부터 당해 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 실시예에 따른 이웃 탐색 연산 시스템은 이웃 탐색 연산을 수행하는 복수의 연산장치; 및 상기 복수의 연산장치에 일을 할당하는 스케줄러를 포함하며, 상기 스케줄러는 정방형 격자 구조의 데이터를, 상기 복수의 연산장치 중 일을 할당할 연산장치의 주기억장치의 용량에 따라 분할하여 분배할 수 있다.
본 발명에 따르면 입자기반 유체 시뮬레이션 및/또는 이웃 탐색 연산을 가속화할 수 있는 프레임워크 및 기법을 제공할 수 있다.
또한, 본 발명에 따르면 복합 구조 병렬 시스템을 효율적으로 활용하여 ε-이웃 탐색 연산을 가속하는 기술을 제공할 수 있다.
또한, 본 발명에 따르면 연산장치의 주 기억 장치의 용량을 초과하는 규모의 유체 시뮬레이션을 처리하기 위한 아웃오브코어(out of core) 연산 기술을 제공할 수 있다.
또한, 본 발명의 따르면 복합 구조 병렬 시스템 내의 사용 가능한 모든 연산장치의 사용이 가능한 이웃 탐색 연산 시스템을 제공할 수 있다.
또한, 본 발명에 따르면 이웃 탐색 연산 시스템을 위한 다양한 복합 구조 병렬 시스템에 범용적으로 적용 가능한 프레임워크를 제공할 수 있다.
또한, 본 발명에 따르면 ε-이웃 탐색 연산을 수행하기 위해 필요한 저장 공간을 계산할 수 있는 기법을 제공할 수 있다.
또한, 본 발명에 따르면 필요한 저장 공간의 계산 정확도를 높이기 위해 실제 ε-이웃 탐색 연산 전에 이웃의 수를 예측하는 예측 모델을 제공할 수 있다.
또한, 본 발명에 따르면 필요한 주 기억 장치의 저장 공간 예측 모델에 기반하여, 연산장치의 주 기억 장치의 용량에 맞추어 일을 분할하고 계층적으로 분배하는 기법을 제공할 수 있다.
또한, 본 발명에 따르면 예측 모델의 오류에 대응할 수 있도록 오류 처리를 위한 저장 공간의 용량을 계산하는 방법을 제공할 수 있다.
또한, 본 발명에 따르면 필요한 저장 공간에 기반하여 연산장치의 주 기억 장치의 영역을 분할하고 이웃 탐색 연산을 수행하는 기법을 제공할 수 있다.
도1은 입자 기반 유체 시뮬레이션 과정을 예시한다.
도2는 본 발명의 실시예에 따른 이웃 탐색 연산 시스템의 구성도를 나타낸다.
도3a는 본 발명의 실시예에서 정방형 격자 구조를 갖는 데이터의 분할방법을 예시한다.
도3b는 도3a에서 분할된 데이터의 분배방법을 예시한다.
도4a 및 도4b는 본 발명의 실시예에 따른 이웃 수 예측 모델의 정확도를 서로 다른 환경에서 보여주는 그래프이다.
도5는 본 발명의 실시예에 따른 연산장치에 포함된 주기억장치의 구분을 예시한다.
이하, 본 발명의 바람직한 실시예의 상세한 설명이 첨부된 도면들을 참조하여 설명된다. 그러나, 본 발명의 실시형태는 여러 가지의 다른 형태로 변형될 수 있으며, 본 발명의 범위가 이하 설명하는 실시형태로만 한정되는 것은 아니다. 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있으며, 도면들 중 인용부호들 및 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 인용부호들로 표시됨을 유의해야 한다. 참고로 본 발명을 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
이하, 본원 발명의 이해를 위해 주요 용어를 설명하면 아래와 같다.
이웃 탐색 연산은 ε-이웃 탐색 연산을 지칭할 수 있다. 이는 주어진 점(또는 입자)에서 입실론(ε) 거리 내에 있는 점(또는 입자)들을 모두 도출해내는 연산이다.
복합 구조 병렬 시스템(Heterogeneous multi-core architecture)는 서로 다른 특징을 갖는 연산장치들이 하나로 통합되어 이루어지는 시스템으로서, 예컨대 멀티 코어 CPU(Central Processing Unit:중앙 처리 유닛)와 GPU(Graphics Processing Unit: 그래픽스 가속장치)를 구비하는 컴퓨터가 될 수 있다.
아웃 오브 코어(Out-of-Core) 연산은 연산장치의 주기억장치의 용량을 초과하는 데이터를 보조 기억 장치를 활용하여 처리하는 연산이다.
본 발명의 실시예에 따른 이웃 탐색 연산 시스템은 복합 구조 병렬 시스템 내의 연산 장치들을 활용하기 위한 범용적 기반 프레임워크를 이용한다.
도2는 본 발명의 실시예에 따른 이웃 탐색 연산 시스템의 구성도를 나타낸다. 본 발명의 실시예에 따른 이웃 탐색 연산 시스템(1000)은 복수의 연산장치(100), 보조 기억장치(200), 스케줄러(300) 및 결과수집장치(400)를 포함하여 구성될 수 있다.
연산장치(100)는 실제로 일의 처리를 담당하는 장치이다. 연산장치(100)는 스케줄러(300)로부터 할당 받은 일을 순차적으로 처리하게 된다. 도2에는 복수의 연산장치(100)가 n개의 연산장치(110 내지 1n0)를 구비하는 것으로 도시되며, 이들 복수의 연산 장치(100)는 복합구조 병렬 시스템에 포함된 연산 장치일 수 있다. n개의 연산장치(110 내지 1n0)를 총칭하여 연산장치(100)로 지칭할 수 있다. 연산장치(100)에 대해서 추후에 상세하게 설명한다.
본 발명의 실시예에 따른 이웃 탐색 연산 시스템(1000)은 보조 기억 장치(200)를 포함할 수 있다. 보조 기억 장치(200)는 이웃 탐색 연산을 수행하기 위한 모든 데이터를 포함하고 있다. 예컨대, 보조 기억 장치(200)는 유체 시뮬레이션을 수행하기 위한 모든 데이터를 포함하고 있으며, 정방형 격자 기반 연산 가속 기술을 사용할 수 있도록 정방형 격자 구조로 데이터를 가지고 있을 수 있다.
일반적으로 ε-이웃 탐색 연산은 정방형 격자(Uniform grid) 자료 구조를 이용함으로써 가속될 수 있다. 정방형 격자는 시뮬레이션 공간을 격자로 분할되는 영역들인 셀(Cell)로 나누며, 유체를 표현하는 입자들은 위치에 따라 하나의 셀에 포함되게 된다. 실제 ε-이웃 탐색 연산시에는 주어진 입자가 속한 셀과의 최소 거리가 ε보다 작은 셀들 안에 속한 입자들만 이웃 검사를 수행하여, 탐색의 범위를 줄이고 연산의 효율을 증대 시킬 수 있다(참조: [IABT11] IHMSEN M., AKINCI N., BECKER M., TESCHNER M.: A parallel sph implementation on multi-core cpus. Computer Graphics Forum 30, 1 (2011), 99-112.). 정방형 격자 구조의 데이터는 도3a를 참조하여 더욱 상세하게 살펴본다.
이웃 탐색 연산이 시작되면 모든 입자의 정보와 격자 구조 데이터가 보조 기억 장치(200)에서 스케줄러(300)에 전달될 수 있다. 또한, 추후 설명될 결과수집장치(400)에 의해 수집된 탐색 결과가 보조 기억 장치(200)에 저장될 수 있다. 이때, 보조 기억 장치(200)는 유체 시뮬레이션을 위한 모든 데이터와 이웃 탐색 연산을 위한 데이터를 모두 저장할 수 있을 만큼 용량이 충분할 수 있다.
스케줄러(300)는 연산장치(100)에 일을 분배하는 일을 담당한다. 본 발명의 실시예에 따른 스케줄러(300)는 보조 기억 장치(200)로부터 입력된 일을 연산장치(100)에 분배하는 업무를 담당한다. 본 발명의 실시예에서 이웃 탐색 연산에서 처리해야 할 이웃 탐색 작업들을 연산장치(100) 각각이 처리할 수 있는 단위로 분할하여 분배하는 일을 담당한다. 이때, 스케줄러(300)는 복수의 연산장치(100) 중 활용 가능한 연산장치(110 내지 1n0)가 있을 때, 해당 연산장치(110 내지 1n0)의 활용 가능한 주기억 장치의 용량에 맞추어 계층적인 방법에 따라 일을 분할한 후 분배한다.
도3a는 본 발명의 실시예에서 정방형 격자 구조를 갖는 데이터의 분할방법을 예시한다. 본 발명의 실시예에서 스케줄러(200)는 이웃 탐색 작업을 위해 필요한 일을 보조 기억 장치(200)로부터 정방형 격자 구조를 갖는 데이터로 전달받을 수 있다. 도3a에 전체 일을 나타내는 정방형 격자 구조를 갖는 데이터가 W로 표시되어 있다. 도3a에서 정방형 격자 구조 데이터(W)가 2차원 평면으로 표시되어 있지만 정방형 격자 구조 데이터(W)는 가로, 세로 및 폭의 길이가 모두 동일한 3차원 구조를 갖는다. 도3a에서 정방형 격자 구조 데이터(W)를 구성하는 셀(c)은 정육각형의 큐브(cube) 형태를 가질 수 있다.
이때, 스케줄러(300)는 복수의 연산장치(100) 중 일을 분배할 연산장치(110 내지 1n0)의 활용 가능한 주기억 장치(111 내지 1n1)의 용량에 따라 정방형 격자 구조 데이터를 정방형 서브 격자(sub-grid) 형태의 블록(block)으로 분할할 수 있다. 도3a에서 블록 A 및 B는 전체 데이터(W)를 8등분한 서브 격자들을 나타내고, 블록 C 및 D는 상기 8등분한 서브 격자들 중 하나를 다시 8등분한 서브 격자들을 각각 나타낸다. 이때, 서브 격자 각각은 전체 정방형 격자 구조 데이터(W)와 마찬가지로 가로, 세로 및 폭의 길이가 모두 동일한 3차원 구조를 가질 수 있다.
스케줄러(300)는 일을 할당하려고 하는 연산장치(110 내지 1n0)의 주기억 장치(111 내지 1n1)의 용량으로 처리할 수 있는 크기를 갖는 블록(일)을 해당 연산장치(110 내지 1n0)에 분배할 수 있다. 이때, 스케줄러(300)는 일을 블록 단위로 연산장치(110 내지 1n0)에 할당하기 위해서, 해당 블록을 위해 필요한 저장 공간을 계산할 필요가 있다. 이렇게 계산된 블록(B)을 처리하기 위해 필요한 저장 공간이 연산장치(110 내지 1n0)에 포함된 주기억 장치(111 내지 1n1)의 용량 이하인 경우에 해당 연산장치(110 내지 1n0)에 해당 블록(B)을 할당할 수 있다.
정방형 격자 구조 데이터 블록(B)을 처리하기 위해 필요한 저장 공간은 블록(B) 내에 있는 입자들에 대해 이웃 탐색을 수행하기 위해 필요한 저장 공간의 양을 의미한다. 블록(B)의 필요한 저장 공간은 입력 데이터를 저장하는 공간과 이웃 탐색 결과를 저장하기 위한 저장 공간을 포함할 수 있다. 블록(B) 내에 포함된 입자의 수가 n B , 입자 하나의 정보를 저장하는데 필요한 공간이 S P , 입자 p i 에 이웃하는 입자 수가 n pi , 그리고 하나의 이웃 입자에 대한 정보를 저장하기 위한 공간이 S n 이라고 가정할 때, 주어진 블록(B)를 처리 하기 위해 필요한 저장 공간S(B)는 수학식(1)과 같이 표현될 수 있다.
Figure 112015012808403-pat00001
수학식(1)
하지만, 이웃 탐색 연산을 수행하기 전에는 이웃 입자 수(n pi )를 알 수 없으므로, 필요한 저장 공간을 정확하게 계산하는 것은 불가능하다. 따라서, 본 발명의 실시예에서는 이러한 문제를 해소하기 위해서 입자 p i 에 이웃하는 예측 이웃 입자 수 (n′ pi )를 사용하여 블록(B)을 처리하는데 필요한 예측 저장 공간을 수학식(2)와 같이 계산할 수 있다.
Figure 112015012808403-pat00002
수학식(2)
여기서, S Aux 는 예측된 이웃 수보다 초과로 발생 하는 이웃 입자의 정보를 저장하기 위한 예비 저장 공간의 크기를 나타낸다. 이 크기는 예측 값의 오류 분석을 통해 설정될 수 있다.
스케줄러(300)는 블록(B)당 필요한 예측 저장 공간을 계산한 후 일을 연산장치(100)에 할당할 수 있다. 본 발명의 실시예에 따른 스케줄러(300)는 계층적 분배 알고리즘을 사용하여 일을 복수의 연산장치(100)에 할당할 수 있다. 본 발명의 실시예에 따른 스케줄러(300)는 일 분배를 일 분배 트리(tree)에 기반하여 수행할 수 있다.
도3b는 도3a에서 분할된 데이터의 분배방법을 예시한다. 도3b에 예시된 바와 같이 일 분배 트리(T)는 정방형 격자 구조 상에 만들어진 옥트리(octree) 자료 구조일 수 있다. 일 분배 트리(T)의 최 상단, 즉 제1계층(l1) 노드는 도3a에 예시된 바와 같이 정방형 격자 구조 전체 데이터(W)를 나타낼 수 있다. 제1계층(l1) 노드의 자식 노드들로서 제2계층(l2) 노드들 각각은 정방형 격자 구조 전체 데이터(W)를 8등분한 정방형 격자 구조 데이터(예컨대, A, B...)를 포함할 수 있다. 또한, 제2계층(l2) 노드의 자식 노드들로서 제3계층(l3) 노드들 각각은 제2계층(l2) 노드에 포함된 정방형 격자 구조 데이터를 8등분한 정방형 격자 구조 데이터(예컨대, C, D...)를 포함할 수 있다. 이러한 계층적 옥트리 구조에서 최하단 노드가 포함한 블록(B)은 하나의 셀을 포함하도록 구성될 수 있다.
스케줄러(300)는 노드를 담는 큐(Queue)를 가지고 있으며, 최초에는 일 분배 트리의 제1계층(l1) 노드가 큐에 담겨 있을 수 있다. 복수의 연산장치(100) 중 하나의 연산장치(110 내지 1n0)가 다음 일을 처리할 준비가 되면, 스케줄러(300)는 큐에서 노드 하나를 선택한다(a). 이때, 선택된 노드가 포함하는 블록(B)을 처리하기 위해 필요한 예측 저장 공간이 준비된 연산장치(110 내지 1n0)의 주기억 장치(111 내지 1n1)의 용량 이하이면 선택된 노드에 포함된 블록(B)을 준비된 연산장치(110 내지 1n0)에 할당한다(a-1). 만약, 선택된 노드가 포함하는 블록(B)을 처리하기 위해 필요한 예측 저장 공간이 준비된 연산장치(110 내지 1n0)의 주기억 장치(111 내지 1n1)의 용량보다 크면 선택된 노드에 포함된 블록(B)을 준비된 연산장치(110 내지 1n0)에 할당하지 않는다(a-2). 이때, 스케줄러(300)는 해당 노드(예컨대, 제1계층 노드)의 자식 노드들(예컨대, 제2계층 노드들)을 큐에 삽입한 후 이들 자식 노드들 중 하나의 노드를 선택하는 단계(a)로 되돌아간다. 그 다음 (a-1) 및 (a-2) 단계가 반복될 수 있다. 즉, 선택된 자식 노드(예컨대, 제2계층 노드)가 포함하는 블록(B)의 예측 저장 공간이 준비된 연산장치의 주기억 장치의 용량 이하인 경우에는 해당 연산장치에 해당 블록(B)이 할당되고, 그 반대인 경우 블록(B) 할당이 이루어지지 않는다. 이때, 해당 자식 노드(예컨대, 제2계층 노드)의 자식 노드들(예컨대, 제3계층 노드들)이 큐에 삽입되고 다시 노드 선택하는 단계(a)로 되돌아간다. 스케줄러(300)는 이러한 과정을 반복하여, 처리될 필요가 있는 일을 연산장치(110 내지 1n0)가 처리 할 수 있는 단위로 분할 및 분배하여 일을 처리할 수 있다.
수학식(2)와 관련해서 예측 저장 공간을 계산하기 위해 예측 이웃 입자 수 (n′ pi )를 이용하였다. 이하에서는 예측 이웃 입자 수를 구하는 모델에 대해서 살펴본다.
이웃 입자 수 예측 모델은 입자기반 유체 시뮬레이션에서 입자들이 국지적으로는 일정하게 자리 잡는 경향이 있다는 관찰에 기반한다. 이러한 국지적 균등 분포 성질은 입자기반 유체 시뮬레이션이 유체의 압축을 피하도록 한다는 특징을 통해서도 뒷받침 될 수 있다(참조: IHMSEN M., ORTHMANN J., B. SOLENTHALER A. K., TESCHNER M.: Sph fluids in computer graphics. State-of-the-Art Report, Eurographics (2014). 2).
입자의 국지적 균등 분포 성질에 기반하여 하나의 셀 안에는 입자들이 균등하게 분포한다고 가정할 수 있다. 이러한 가정을 통해, 시뮬레이션 공간 좌표 계의 (x,y,z)의 위치에 있는 한 입자(p)의 예측 이웃 입자 수 E(p x,y,z )는 수학식(3)과 같이 표현될 수 있다.
Figure 112015012808403-pat00003
수학식(3)
여기서, S(p x,y,z ,ε)는 중심이 p x,y, z이고 반지름이 ε인 구, C i S(p x,y,z ,ε)와 겹치는 부분이 있는 모든 셀, Overlap(S(p x,y,z ,ε), C i )S(p x,y,z ,ε)C i 가 겹치는 공간의 부피, n(C i )C i 내에 포함된 입자의 개수, V(·)는 해당 공간의 부피를 각각 나타낸다.
이때, 입자 각각에 대해 수학식(3)을 수행하여 모든 입자에 대해서 예측 이웃 입자 수를 구할 수 있다. 하지만 모든 입자 각각에 대해 예측 이웃 입자 수를 계산한다면, 그 연산을 위한 부하가 매우 커지므로 이웃 수 예측 모델을 사용하는 효율을 저하시킬 수 있다. 이러한 문제점을 해소하기 위해서, 본 발명에서는 입자 각각에 대해서 예측 이웃 입자 수를 계산하는 대신 하나의 셀안에 포함된 입자들의 예측 이웃 입자 수의 평균값을 구하여 이용할 수 있다. 그리고, 이러한 평균값을 해당 셀 내의 모든 입자의 예측 이웃 입자 수로 활용할 수 있다. 하나의 셀(C q )에 포함된 입자들의 예측 이웃 입자 수의 평균값 E(C q )은 수학식(4)와 같이 계산될 수 있다.
Figure 112015012808403-pat00004
수학식(4)
여기서,
Figure 112015012808403-pat00005
은 셀 한 변의 길이, (u,w,w)C q 의 내부 좌표 계를 나타내고,
Figure 112015012808403-pat00006
로 표현될 수 있다.
상기 수학식(4)에서 D(C q , C i )는 주어진
Figure 112015012808403-pat00007
과 ε값에 따라, 예측 이웃 입자 수의 평균값 E(C q )의 연산을 수행하기 전에, 전처리 단계에서 연산하는 것도 가능하다.
도4a 및 도4b는 본 발명의 실시예에 따른 이웃 수 예측 모델의 정확도를 서로 다른 환경에서 보여주는 그래프이다. 도4a 및 도4b에서 세로축은 예측 이웃 입자 수를 나타내고 가로축은 실제 관찰된 이웃하는 입자 수를 나타낸다. 여기서, 백 만개의 샘플 입자를 생성하여 몬테 칼로(Monte Carlo) 방법을 사용해서 D값이 계산되었다. 도4a 및 도4b는 가장 널리 사용되는 두 가지 환경에서의 예측 이웃 입자 수 모델의 정확도를 보여주는 그래프이다. 도4a에서는
Figure 112015012808403-pat00008
환경에서의 정확도를 나타내고 도4b는
Figure 112015012808403-pat00009
인 환경에서의 정확도를 나타낸다. 도4a 및 도4b에서 각각 예측 이웃 입자 수와 실제 관찰된 이웃하는 입자 수 사이에 0.97과 0.96의 상호 관계를 갖는 것을 확인할 수 있었다.
이상에서 계산된 이웃하는 예측 이웃 입자 수 값에 오류가 있을 수 있다. 따라서, 본 발명의 실시예에서는 이러한 오류에 대처하기 위해서 표준 오차 값(RMSE: Rooted Mean Square Error)을 이용할 수 있다. 예컨대, 샘플들로부터 측정한 RMSE 값이 α라면, 최악의 경우 최대 α개 만큼 예측 이웃 입자 수 값보다 많거나 적은 이웃하는 입자 수를 갖는 것을 의미한다. 이와 같은 오류에 대처하기 위해 수학식(2)에서와 같이 예비 저장 공간 (S Aux )을 설정할 수 있다. 샘플들을 통한 RMSE 분석에 기반하여 S Aux α*(n B S n )으로 설정될 수 있다.
본 발명의 실시예에 따른 이웃 탐색 연산 시스템(100)에 포함된 복수의 연산장치(100) 각각은 스케줄러(300)로부터 처리할 일, 즉 블록(B)을 할당받아 ε-이웃 탐색 연산을 수행 한 후, 그 결과를 결과수집장치(400)로 보내고 다음 일을 할당 받는 작업을 반복 수행할 수 있다.
연산장치(110 내지 1n0)는 주 기억 장치(111 내지 1n1)를 가지고 있다. 주기억 장치(111 내지 1n1) 각각은 도5에 도시된 바와 같이 입력영역(I), 결과저장영역(R) 및 예비저장영역(A)으로 나뉘어 구분될 수 있다. 각 영역의 크기는 수학식(2)의 각 항인 n B S n ,
Figure 112015012808403-pat00010
S Aux 값에 의해 정해질 수 있다. 연산장치(110 내지 1n0)가 블록(B)을 할당 받으면 블록(B)에 포함된 입자들에 대한 ε-이웃 탐색 연산을 위해 필요한 데이터를 입력영역(I)으로 복사한 후, 연산을 수행하게 된다. 연산의 결과는 결과저장영역(R)에 저장되며, 예측 이웃 입자 수를 초과하는 경우의 이웃 정보는 예비저장영역(A)에 저장될 수 있다. 연산장치(110 내지 1n0)는 할당 받은 블록(B)의 처리가 완료되면, 결과저장영역(R)과 예비저장영역(A)에 저장된 이웃 탐색 결과를 결과수집장치(400)에 전달한다.
본 발명의 실시예에 따른, 결과수집장치(400)는 연산장치(110 내지 1n0)의 연산결과를 수집하여 보조기억장치(100)에 전달 및 저장하는 역할을 수행한다.
이상에서 살펴본 바와 같이, 본 발명의 실시예에 따른 이웃 탐색 연산 시스템(1000)은 시스템 내 활용 가능한 모든 연산장치를 효율적으로 활용하여 이웃 탐색 연산을 가속화하는 것이 특징이며, 각 연산장치의 주 기억 장치의 용량을 넘는 규모의 시뮬레이션을 효율적으로 처리 할 수 있다는 장점을 가진다.
본 발명은 위와 같은 기능을 하기 위해, 복합 구조 병렬처리 시스템을 효율적으로 이용 할 수 있는 범용적인 ε-이웃 탐색 프레임워크를 제안한다. 이웃 탐색의 일을 연산장치들이 처리 할 수 있는 단위로 분할하고 분배하기 위해 주어진 이웃 탐색 작업을 처리 하기 위해 필요한 기억 장치의 용량을 계산하는 공식을 사용한다. 또한 필요한 기억장치 용량 계산의 정확한 계산을 위해 예측 이웃 입자 수 예측 모델을 제안한다. 본 발명의 실시예에서는 이들 기술을 기반으로 일을 계층적으로 분할하여 분배하는 일 분배 방법을 제안한다.
또한, 본 발명의 실시예에서는 정방형 격자 자료 구조 기반의 ε-이웃 탐색 연산 가속화 기법을 사용한다. 또한 정방형 격자를 기반으로 일을 연산 장치의 주 기억 장치의 용량에 맞도록 분할하고 분배하는 방법을 제안/사용한다.
또한, 본 발명의 실시예에서 제안하는 이웃 탐색 연산 시스템 및 이웃 입자 수 예측 모델은 유체 시뮬레이션뿐 아니라 ε-이웃 탐색 연산을 사용하는 다양한 분야에 응용될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해되어야 하고, 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1000: 이웃 탐색 연산 시스템
100: 연산장치 200: 보조기억장치
300: 스케줄러 400: 결과수집장치

Claims (8)

  1. 이웃 탐색 연산을 수행하는 복수의 연산장치; 및
    상기 복수의 연산장치에 일을 할당하는 스케줄러;를 포함하며,
    상기 스케줄러는 정방형 격자 구조의 데이터를, 상기 복수의 연산장치 중 일을 할당할 연산장치의 주기억장치의 용량에 따라 분할하여 분배하고,
    상기 스케줄러는 옥트리(octree) 구조를 이용하여 상기 정방형 격자 구조의 데이터를 계층적으로 분할하여 상기 연산장치에 분배하는,
    이웃 탐색 연산 시스템.
  2. 제1항에 있어서,
    상기 정방형 격자 구조의 데이터를 저장하고 있는 보조 기억장치를 더 포함하는, 이웃 탐색 연산 시스템.
  3. 삭제
  4. 제1항에 있어서,
    상기 계층적 분할 및 분배는:
    상기 옥트리 구조에서 상기 정방형 격자 구조 데이터를 나타내는 제1계층 노드를 큐로부터 선택하는 단계; 및
    상기 정방형 격자 구조 데이터를 처리하는데 필요한 저장 공간이 상기 일을 할당할 연산장치의 주기억 장치의 용량 이하이면 상기 정방형 격자 구조 데이터를 해당 연산장치에 할당하고, 상기 정방형 격자 구조 데이터를 처리하는데 필요한 저장 공간이 상기 일을 할당할 연산장치의 주기억 장치의 용량 초과이면 상기 정방형 격자 구조 데이터를 해당 연산장치에 할당하지 않는 단계;를 포함하는,
    이웃 탐색 연산 시스템.
  5. 제4항에 있어서,
    상기 계층적 분할 및 분배는:
    상기 정방형 격자 구조 데이터를 해당 연산장치에 할당하지 않는 경우,
    상기 상기 옥트리 구조에서 상기 정방형 격자 구조 데이터를 분할한 서브 정방형 격자 구조 데이터들을 각각 나타내는 제2계층 노드들을 상기 큐에 삽입하는 단계;
    상기 큐로부터 상기 제2계층 노드들 중 하나를 선택하는 단계; 및
    상기 선택된 제2계층 노드가 나타내는 상기 서브 정방형 격자 구조 데이터를 처리하는데 필요한 저장 공간이 상기 일을 할당할 연산장치의 주기억 장치의 용량 이하이면 상기 서브 정방형 격자 구조 구조 데이터를 해당 연산장치에 할당하는 단계;를 더 포함하는,
    이웃 탐색 연산 시스템.
  6. 제1항에 있어서,
    상기 스케줄러는 예측 이웃 입자 수를 이용하여 상기 정방형 격자 구조 데이터를 처리하는데 필요한 저장 공간을 예측하여 일을 할당하는, 이웃 탐색 연산 시스템.
  7. 제6항에 있어서,
    상기 스케줄러는 상기 예측 이웃 입자 수로서 하나의 셀에 포함된 모든 입자들에 대한 예측 이웃 입자 수의 평균값을 이용하는, 이웃 탐색 연산 시스템.
  8. 제6항에 있어서,
    상기 스케줄러는 상기 예측 이웃 입자 수의 오류를 고려하여 상기 필요한 저장 공간을 예측하는, 이웃 탐색 연산 시스템.
KR1020150018391A 2014-05-19 2015-02-06 이웃 탐색 연산 시스템 KR101642823B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140059461 2014-05-19
KR20140059461 2014-05-19

Publications (2)

Publication Number Publication Date
KR20150133121A KR20150133121A (ko) 2015-11-27
KR101642823B1 true KR101642823B1 (ko) 2016-07-26

Family

ID=54847679

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150018391A KR101642823B1 (ko) 2014-05-19 2015-02-06 이웃 탐색 연산 시스템

Country Status (1)

Country Link
KR (1) KR101642823B1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102200444B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
KR102181985B1 (ko) * 2019-12-13 2020-11-23 이에이트 주식회사 Sph 기반의 유체 해석 시뮬레이션을 하는 장치, 방법 및 컴퓨터 프로그램
CN117056088B (zh) * 2023-10-11 2024-01-19 武汉大学 一种基于MapReduce的多模态测图数据分布式并行计算方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271989A (ja) 2002-03-18 2003-09-26 Toshiba Corp シミュレーション装置、シミュレーション方法、及びシミュレーションプログラム
JP2009140346A (ja) * 2007-12-07 2009-06-25 Mitsubishi Electric Corp 統合シミュレーションシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003271989A (ja) 2002-03-18 2003-09-26 Toshiba Corp シミュレーション装置、シミュレーション方法、及びシミュレーションプログラム
JP2009140346A (ja) * 2007-12-07 2009-06-25 Mitsubishi Electric Corp 統合シミュレーションシステム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
논문1
논문2

Also Published As

Publication number Publication date
KR20150133121A (ko) 2015-11-27

Similar Documents

Publication Publication Date Title
CN108292241B (zh) 处理计算图
US10007742B2 (en) Particle flow simulation system and method
Brown et al. Implementing molecular dynamics on hybrid high performance computers–Particle–particle particle-mesh
Valero-Lara et al. Accelerating fluid–solid simulations (Lattice-Boltzmann & Immersed-Boundary) on heterogeneous architectures
Goddeke et al. GPU acceleration of an unmodified parallel finite element Navier-Stokes solver
Fietz et al. Optimized hybrid parallel lattice Boltzmann fluid flow simulations on complex geometries
US9916283B2 (en) Method and system for solving a problem involving a hypergraph partitioning
CN110516316B (zh) 一种间断伽辽金法求解欧拉方程的gpu加速方法
JP7334125B2 (ja) 任意座標系のメッシュにおける物理的流体のコンピュータシミュレーション
KR101642823B1 (ko) 이웃 탐색 연산 시스템
Valero-Lara et al. Accelerating solid-fluid interaction using lattice-boltzmann and immersed boundary coupled simulations on heterogeneous platforms
Brix et al. Parallelisation of multiscale-based grid adaptation using space-filling curves
Eibl et al. A systematic comparison of runtime load balancing algorithms for massively parallel rigid particle dynamics
Chen et al. Graph-based seed scheduling for out-of-core FTLE and pathline computation
Tomczak et al. Sparse geometries handling in lattice Boltzmann method implementation for graphic processors
US20210064687A1 (en) Local search with global view for large scale combinatorial optimization
Banicescu et al. Addressing the stochastic nature of scientific computations via dynamic loop scheduling
Calore et al. Optimizing communications in multi-GPU Lattice Boltzmann simulations
Williams et al. An accelerated iterative linear solver with GPUs for CFD calculations of unstructured grids
CN110866343A (zh) 颗粒运动模拟方法、装置、设备和介质
Akkurt et al. An efficient edge based data structure for the compressible Reynolds‐averaged Navier–Stokes equations on hybrid unstructured meshes
Fortmeier et al. A parallel strategy for a level set simulation of droplets moving in a liquid medium
Leinweber et al. GPU-based cloud computing for comparing the structure of protein binding sites
Zagaris et al. A toolkit for parallel overset grid assembly targeting large-scale moving body aerodynamic simulations
JP2011145943A (ja) 粒子シミュレーション装置及び粒子シミュレーション方法

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

Year of fee payment: 4