KR100901520B1 - 다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법 - Google Patents
다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법 Download PDFInfo
- Publication number
- KR100901520B1 KR100901520B1 KR1020080099780A KR20080099780A KR100901520B1 KR 100901520 B1 KR100901520 B1 KR 100901520B1 KR 1020080099780 A KR1020080099780 A KR 1020080099780A KR 20080099780 A KR20080099780 A KR 20080099780A KR 100901520 B1 KR100901520 B1 KR 100901520B1
- Authority
- KR
- South Korea
- Prior art keywords
- thread
- jacobian
- entity
- parallel processing
- threads
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 126
- 238000012545 processing Methods 0.000 title claims abstract description 75
- 238000004458 analytical method Methods 0.000 claims abstract description 33
- 238000003672 processing method Methods 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 8
- 238000000354 decomposition reaction Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 5
- 239000013598 vector Substances 0.000 description 5
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 238000005312 nonlinear dynamic Methods 0.000 description 2
- 230000036544 posture Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/314—Parallel programming languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/28—Enhancement of operational speed, e.g. by using several microcontrol devices operating in parallel
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Image Processing (AREA)
Abstract
본 발명은 다물체 동역학(multibody dynamics) 시스템에 관한 해석방법에 관한 것으로서 강체들이 조인트, 힘, 접촉 요소들로 연결된 다물체 동역학 시스템에서 병렬처리 프로세싱 방식을 적용한 다물체 동역학 시스템의 해석방법에 관한 것이다.
본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템을 다수로 분해하고, 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하는 단계를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.
본 발명을 통하여, 다물체 동역학 시스템의 해석 속도를 획기적으로 개선할 수 있어, 종래에 사용했던 순차적 처리방식에 비해 처리속도를 크게 향상시킬 수 있어 설계시간과 개발비용을 줄일 수 있으며, 특히 다물체 동역학 시스템의 선형화단계에서 뉴턴-랩손 매소드를 이용하여 자코비안을 구할 때, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스의 소요시간을 미리 연산하고, 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유의 스레드 아이디를 부여하여 특정 스레드에 배분함으로써, 다수의 스레드간의 병렬처리시간의 갭을 최소화시키므로서 병렬처리의 효율을 극대화할 수 있는 효과를 갖는다.
다물체, 엔터티, 스레드, 병렬처리, 고유 스레드 아이디
Description
본 발명은 다물체 동역학(multibody dynamics) 시스템에 관한 해석방법에 관한 것으로서, 병렬 컴퓨터 프로그래밍 또는 프로세싱을 이용한 처리방법에 관한 것이다. 보다 자세하게는 강체들이 조인트, 힘, 접촉 요소들로 연결된 다물체 동역학 시스템에서 병렬처리 프로세싱 방식을 적용한 다물체 동역학 시스템의 해석방법에 관한 것이다.
다물체 동역학시스템이란 강체들이 조인트, 힘, 접촉 요소들로 연결된 시스템의 동역학을 다루는 것으로서, 최근에는 시스템이 복잡하고 대형화되어 구성이 복잡해 짐으로써, 다물체 동역학 시스템의 자유도가 늘어나 시스템의 해석시간이 매우 길어지고 있는 실정이다.
상기에서 자유도(degrees of freedom)란 다물체 시스템의 움직이는 형상을 표현하는데 필요한 최소한의 좌표수를 의미한다.
다물체 동역학 시스템을 해석하는데에 있어서 가장 중요한 인자는 신속도와 정확도이나, 정확도를 높이고자 시스템의 자유도를 높여, 몇만 이상의 복잡한 자유도를 갖는 다물체 시스템의 동역학을 해석하는 경우에 다수의 프로세스를 처리하는 데에 많은 시간이 요구됨에 따라 해석에 따른 신속도에 대한 문제가 야기되고 있는 실정이다.
도 1은 종래기술에 따른 다물체 동역학 시스템의 해석과정을 나타내는 흐름도로서, 다물체 동역학 시스템을 이루는 요소인 강체, 조인트, 힘, 접촉 등의 엔터티(entity)들을 통해 시스템을 해석하게 된다.
상기에서 언급된 엔터티들로 이루어진 다물체 동역학 시스템은 다음과 같은 비선형 운동방정식과 구속조건식으로 표현할 수 있다.
상기와 같이 표현된 다물체 동역학 시스템의 운동방정식 F를 해석하여, 원하 는 다물체 동역학 시스템의 솔루션를 구하기 위해서는 운동방정식 F를 선형화하는 단계가 필요하다.
다물체 동역학 시스템의 운동방정식을 선형화하기 위하여, 뉴턴-랩손 메소드(Newton-Rapson Method)를 사용하여 아래와 같은 매트릭스 형태의 선형화한 선형방정식으로 변환하기 위해 자코비안과 레지듀어를 계산하는 단계를 포함한다.(S1단계)
Ax
=b
A: 자코비안(jacobian)
b: 레지듀어(residual)
x: 다물체 동역학 시스템의 솔루션
또한, 상기 변환된 행렬식의 자코비안을 삼각행렬분해법을 이용하여 자코비안 A=LU 형태로써 변환하는 수치분해화(numerical factorize)단계(S2단계)와, 변환된 LU행렬을 이용하여 다물체 시스템의 동역학의 솔루션을 계산하는 백추출(back-substitution)단계(S3단계) 및 구해진 솔루션을 업데이트하는 단계(S4단계)로서 이루어진다.
앞서 언급한 LU분해법이나 백추출법은 수치해석에서 일반적으로 사용되는 방법이므로 여기서 자세한 설명은 생략한다.
상기에서 특히, 자코비안과 레지듀어를 계산하는 단계(S1단계)의 경우에 운 동방정식 F를 일반좌표 및 라그랑지 승수에 대해서 편미분을 함으로써 계산이 되는데 이는 해석에 필요한 엔터티들에 대해 각각 독립적으로 이루어지게 된다.
그러나, 엔터티들이 수만개 이상이 포함된 경우에 운동방정식을 선형화하기 위하여 엔터티들에 대해 자코비안과 레지듀어를 계산하는 단계(S1)의 경우는 매우 긴 처리시간을 요구하기 때문에 실질적으로 다물체 동역학 시스템의 해석시간의 신속성에 문제가 되고 있는 실정이다.
다시 말해, 상기의 각각의 단계들을 처리함에 있어, 각 단계의 프로세스를 순차적 방식으로 컴퓨터를 통해 처리하는 경우에는, 최근처럼 매우 복잡하고 시스템이 대형화되는 다자유도의 복잡한 다물체 동역학 시스템의 해석과정은 매우 긴 해석시간을 요구되어지는 문제점을 갖고 있다.
즉, 다물체 동역학 시스템의 해석시간을 최소하하여 시스템의 상태를 파악하는 방법은 실질적으로 다물체 동역학 시스템에서 가장 핵심적인 이슈가 되고 있다고 할 수 있다.
상기의 문제점을 해결하기 위하여 본 발명은 다물체 동역학 시스템의 해석과정에서 시스템을 다수로 분해하고, 각각의 분해된 부분의 프로세스들을 병렬처리하도록 하여 다물체 동역학 시스템의 해석시간을 줄이는 것을 목적으로 한다.
또한, 본 발명은 다물체 동역학 시스템의 비선형 운동방정식의 선형화단계에서 뉴턴-랩손 메소드를 사용하여 자코비안을 계산하는 과정에서, 다물체 동역학 시스템을 이루는 각각의 엔터티(entity)들별로 프로세스를 처리함에 있어 다수의 스레드를 생성하여 병렬처리 프로세싱을 통해 다물체 동역학 시스템의 해석시간을 줄이는 것을 목적으로 한다.
또한, 본 발명은 다물체 동역학 시스템의 비선형 운동방정식의 선형화단계에서 뉴턴-랩손 메소드를 사용하여 자코비안을 계산하는 과정에서, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스들을 스레드에 배분하는 경우 다수의 스레드간의 병렬처리시간의 갭을 최소화시켜 병렬처리의 효율을 극대화하여 다물체 동역학 시스템의 해석시간을 최대로 줄이는 것을 목적으로 한다.
상기의 목적을 달성하기 위하여, 본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템을 다수로 분해하고, 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하는 단계를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.
상기 다수의 스레드가 병렬처리하는 과정에서 스레드간에 메모리를 공유하여 서로 영향을 주는 경우에는 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계를 더 포함할 수 있다.
또한, 상기의 목적을 달성하기 위하여, 본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안의 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유아이디를 부여하는 단계; 및 상기 고유아이디가 부여된 엔터티별 자코비안을 계산하는 프로세스들을 상기 다수의 스레드에 균등한 개수로 분배하는 단계;를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안을 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에 서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하는 단계; 상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하는 단계;를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.
또한, 상기의 목적을 달성하기 위하여, 본 발명은다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석방법에 있어서, (a) 상기 다물체 시스템의 비선형 운동방정식을 선형화하기 위하여, 상기 시스템을 분해하여 각각의 분해된 부분의 프로세스들을 다수의 스레드에 분배하여 병렬처리하는 단계;
(b) 상기 시스템을 분해하고, 상기 분해된 각각의 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하여 상기 시스템의 선형방정식을 삼각행렬분해법을 이용하여 변환하는 단계; (c) 상기 시스템을 분해하고, 상기 분해된 각각의 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하여 상기 삼각행렬분해법을 이용하여 변환된 선형방정식의 솔루션을 도출하는 단계; 및 (d) 상기 도출된 솔루션을 각각 병렬처리하여 업데이트하는 단계;를 포함하여 구성된 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 시스템의 동역학 해석방법를 제시한다.
상기 (b)단계 및 (c)단계는, 상기 다수의 스레드가 병렬처리하는 과정에서 메모리를 공유하여 서로 영향을 주는 경우에 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계를 더 포함할 수 있다.
또한, 상기 (a)단계는, 상기 비선형 운동방정식을 선형화하기 위하여 뉴턴-랩손 메소드를 이용하며, 상기 뉴턴-랩손 메소드를 이용하는 경우 자코비안의 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유아이디를 부여하는 단계; 및 상기 고유아이디가 부여된 엔터티별 자코비안을 계산하는 프로세스들을 상기 다수의 스레드에 균등한 개수로 분배하는 단계;를 포함할 수 있다.
또한, 상기 (a)단계는, 상기 비선형 운동방정식을 선형화하기 위하여 뉴턴-랩손 메소드를 이용하며, 상기 뉴턴-랩손 메소드를 이용하는 경우 자코비안의 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하는 단계; 상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하는 단계;를 포함할 수 있다.
본 발명에 따른 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 통하여 다음과 같은 효과를 얻을 수 있다.
첫 번째로, 다물체 동역학 시스템의 해석 속도를 획기적으로 개선할 수 있 어, 종래에 사용했던 순차적 처리방식에 비해 처리속도를 크게 향상시킬 수 있어 설계시간과 개발비용을 줄일 수 있다.
두 번째로, 다물체 동역학 시스템의 선형화단계에서 뉴턴-랩손 매소드를 이용하여 자코비안을 구할 때, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스를 다수의 스레드에 배분하여 처리하는 병렬처리 프로세싱을 통해 다물체 동역학 시스템의 해석시간을 줄일 수 있는 효과가 있다.
세 번째로, 다물체 동역학 시스템의 선형화단계에서 뉴턴-랩손 매소드를 이용하여 자코비안을 구할 때, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스의 소요시간을 미리 연산하고, 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유의 스레드 아이디를 부여하여 특정 스레드에 배분함으로써, 다수의 스레드간의 병렬처리시간의 갭을 최소화시키므로서 병렬처리의 효율을 극대화할 수 있는 효과를 갖는다.
이하 본 발명의 실시예를 첨부된 도면을 참조하여 자세하게 설명한다.
도 2는 본 발명의 다물체 동역학 시스템을 해석과정을 간략화한 흐름도를 나타낸 것으로서, 도시된 바와 같이 본 발명은 다물체 동역학 시스템 해석을 위해서 병렬처리를 수행하도록 구성하고 있다.
다물체 동역학 시스템을 이루는 요소에는 강체, 조인트, 힘, 접촉요소 등의 엔터티들이 있으며, 시스템에 따라 상기 엔터티들은 수만개 이상이 포함될 수 있다.
보다 자세하게 병렬처리 방식을 설명하면, 시스템의 운동방정식을 선형화하기 위하여 자코비안(jacobian)과 레지듀어(residual)를 계산하는 단계(S1), 수치분해화(numerical factorize)하는 단계(S2), 다물체 동역학 시스템의 솔루션를 구하는 백추출(back-substituion)단계(S3) 및 구해진 시스템의 해를 업데이트(update solution)하는 단계(S4)에 있어, 각 단계마다 중앙처리장치에서 스레드를 다수 생성하고 생성된 스레드에 다물체 동역학 시스템을 분해하여 각각의 단계의 프로세스를 병렬처리작업을 수행하도록 구성하여, 시스템 해석의 모든 단계를 병렬처리하도록 할 수 있다.
병렬처리방식이란 프로세스를 처리하기 위하여 중앙처리장치(CPU)에서 스레드(thread)로 불리는 처리 단위를 복수 생성하여 처리할 프로세스를 요소로 분해하여 분해된 프로세스에 중앙처리장치에서 생성된 스레드에 각각 분배하여 처리를 병행하도록 하는 방식이다.
즉, 상기의 다물체 동역학 시스템의 각각의 단계에서 처리되는 병렬처리방식은, 스레드를 생성하게 하고, 생성된 스레드에 다물체 동역학 시스템을 다수로 분해하여 분해된 시스템 단위로 처리할 프로세스를 스레드에 배분하여 동시에 스레드에서 병렬처리를 하도록 구성한다.
따라서, 종래의 다물체 동역학 시스템의 해석에 대한 처리방식은 각각의 단계에 있어, 병렬처리가 아닌 순차적인 방식의 해석방법을 적용했기 때문에 해석단계에서 막대한 시간을 요하여 신속성이 떨어질 수밖에 없었으나, 본 발명은 이러한 문제점을 병렬처리방식을 도입하여 해결할 수 있게 함으로써 시스템 해석에 소요되 는 막대한 시간을 줄일 수 있는 효과가 있다.
도 3은 본 발명의 제1 실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 자코비안(jacobian)과 레지듀어(residual)를 계산하는 단계(S1)에서 다수의 엔터티들 단위로 자코비안(jacobian)과 레지듀어(residual)를 계산하는 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도로서, 중앙처리장치(CPU)에서 스레드를 일정개수로 생성하도록 하고, 생성된 다수의 스레드에 다물체 동역학 시스템의 엔터티들을 나누어 배분하여 각각의 스레드로 엔터티들을 병렬처리하도록 구성한다.
상기의 자코비안과 레지듀어의 계산은 시스템의 운동방정식을 일반좌표 및 라그랑지 승수에 대해서 편미분을 함으로써 계산이 되는데, 이 때 해석에 필요한 엔터티들에 대해 개별적으로 이루어지게 되며, 엔터티별로 계산하는 각각의 프로세스 상에 서로 공유하는 메모리가 없다.
즉, 병렬처리방식이란 자코비안과 레지듀어를 계산하는 엔터티별 다수의 프로세서들을 신속하게 처리하기 위해 각각의 프로세스들을 다수의 스레드에 배분함으로써 동시에 병렬로 다수의 프로세스를 처리하는 프로세싱을 의미한다.
도시된 실시예와 같이, 3개의 스레드(P1, P2, P3)를 생성한다면, 처리해야할 엔터티별 프로세스의 개수가 N개라고 하였을 경우에, 각각의 스레드에는 생성된 3개의 스레드별로 엔터티별 프로세스를 균등하게 일괄적으로 배분하여, 각각의 스레드에서 동시에 각각의 엔터티 단위로 프로세스를 병렬처리하도록 함으로써 신속하 게 다물체 동역학시스템의 운동방정식을 선형화할 수 있게 된다.
이를 위해, 각각의 엔터티별 프로세스에는 고유아이디(ID)를 부여하고, 고유아이디가 부여된 엔터티별 프로세스들을 생성된 다수의 스레드에 균등한 개수로 분배하도록 하여 병렬처리를 하도록 구성한다.
도 4는 본 발명의 제 2실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 자코비안(jacobian)과 레지듀어(residual)를 계산하는 단계(S1)에서 다수의 엔터티들 단위로 자코비안(jacobian)과 레지듀어(residual)를 계산하는 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도로서, 엔터티별 프로세스에 자체적으로 각각 고유의 스레드 아이디(thread id)를 갖도록 구성하고 있다.
앞서 언급된 도 3과 같은 방식의 병렬처리의 경우에 있어서, 엔터티별 프로세스들을 스레드에 랜덤하게 균등한 개수로 분배하여 병렬처리하기 때문에, 각각의 스레드에 배분된 엔터티별 프로세스들을 병렬처리 함에 따른 시간적인 차이가 발생할 경우에 결국 각각의 스레드에서 병렬처리완료시간의 갭(gap)이 생기게 된다.
보다 자세히 설명하면, 다물체 동역학 시스템의 운동방정식을 선형화하기 위해 자코비안을 계산하는 과정에는 비선형 운동방정식을 일반좌표 및 라그랑지 승수에 대해서 편미분을 함으로써 계산이 되는데, 이는 해석에 필요한 엔터티들(강체, 조인트, 힘, 접촉 등)에 대해서 각각 계산하도록 구성된다.
따라서, 조인트의 종류, 힘의 종류, 접촉의 종류 등에 따라서 그 자코비안과 레지듀어의 계산시간은 다르다.
도 5는 다물체 동역학 시스템의 바디와 조인트를 벡터로 표시한 상태도로서, 도시된 바에서 와 는 바디 i와 j를 연결하는 조인트의 자세를 나타내기 위한 단위 방향벡터로서, 서로 직각을 이루고 있는 좌표이며, 는 두 좌표간의 거리를 나타내는 벡터이다. 또한 r 과 A는 각각의 바디들의 위치와 자세를 나타내는 벡터와 행렬이다. 이하에서 기재하는 수학식 자체의 정확한 의미는 당해분야의 당업자 등만이 이해할 수 있을 것이며, 다만, 본 발명의 다물체 동역학 시스템을 해석하는 방법의 구성상 구현하고자하는 바를 설명하기 위한 하나의 예시로서 기재할 뿐이지 수학식 자체의 의미는 본 발명과는 크게 관련이 없을 것임은 당해분야의 당업자 입장에서 자명한 것일 것이다.
이를 테면, 병진조인트(translational joint)의 경우는 한 방향으로만 병진운동을 하게 되고, 회전은 하지 못하는 조인트이다. 따라서 구속조건식은 아래와 같이 5개나 나오게 된다.
회전조인트(spherical joint)의 경우는 회전을 구속하는 조인트로 구속조건 식은 아래와 같이 3개가 나오게 된다.
이 과정에서 각각의 조인트들의 상기와 구속조건의 차이는 자코비안과 레지듀어의 계산을 처리하는 프로세스에는 시간의 차이를 발생하게 된다.
그러므로, 이러한 시간적 차이가 발생하는 자코비안을 계산하는 엔터티별 프로세스들을 단순히 개수별로 균등하게 각각의 스레드에 배분시켜 병렬처리하게 되면, 구속조건이 다른 엔터티들의 프로세스를 처리하는데에 있어 시간적 차이가 발생되면서, 결국 각각의 스레드에서 병렬처리의 시간이 달라지므로 인해 병렬처리의 효율성이 떨어질 수 있다. 즉, 각각의 스레드에서 계산처리되는 소요시간이 차이가 발생하면서 계산처리가 먼저 끝나서 기다리는 스레드가 발생되는 문제가 야기될 수 있다.
이를 개선하고자, 각각의 엔터티들의 구속조건의 차이를 감안하여 각각의 스레드에서 계산되는 프로세스들의 시간적인 갭을 최소화하기 위한 구성이 추가될 수 있다.
즉, 자코비안을 계산하기 위해 다물체 동역학 시스템을 이루는 모든 엔터티들에 대한 각각의 프로세스의 소요시간을 미리 연산하는 단계를 포함하도록 하며, 이러한 각기 다른 소요시간을 갖는 엔터티별 프로세스가 특정 스레드로 배분이 될지에 대한 정보를 가지도록 구성한다.
이를 위해, 특정 스레드 P1, P2, P3 에 분배되기 위하여 각각의 엔터티별 프로세스에는 마찬가지로 고유의 스레드번호(thread id), P1, P2, P3를 가지도록 구성하여, 각각의 엔터티별 프로세스가 각자 배분된 스레드로 가서 처리 되도록 구성한다.
즉, 엔터티별 프로세스의 연산시간을 통해 다수의 스레드의 각각의 스레드에 서 처리되는 엔터티별 프로세스들의 계산소요시간을 거의 동일하게 되도록 배분함으로써, 결국 병렬처리방식의 효율성을 극대화할 수 있어 각각의 스레드에서 계산처리되는 소요시간이 차이가 발생하면서 계산처리가 먼저 끝나서 기다리는 스레드가 발생되는 문제가 방지할 수 있어 다물체 동역학 시스템의 해석속도를 크게 단축할 수 있는 효과가 있다.
도 6a, 6b는 본 발명의 다물체 동역학 시스템의 분해방법과 분해된 시스템 단위로 프로세스를 처리하기 위한 병렬처리방법을 간략화하여 나타낸 다이어그램이다.
보다 자세하게 설명하면, 본 발명의 다물체 동역학 시스템의 수치분해화(numerical factorize)하는 단계(S2), 다물체 동역학 시스템의 솔루션을 구하는 백추출(back-substituion)단계(S3)에서 병렬처리할 수 있도록 시스템을 분해하고 병렬처리를 하는 방법을 나타낸 상태도로서, 도시된 바와 같이 분해된 다물체 동역 학 시스템은 3번, 2번, 1번으로 분해하여 단계별로 병렬처리할 수 있다.
도 6a는 본 발명의 다물체 동역학 시스템을 분해하는 방법을 간략화한 다이어그램으로서, 도시된 바와 같이 다수의 강체와 상기 강체들을 연결하는 힘, 접촉, 조인트 등을 나타내는 연결요소, 말하자면 다수의 엔터티들로 구성된 강체 연결정보(Rigid- Body connectivity information)를 갖는 다물체 동역학 시스템을 병렬처리할 수 있도록 분해하는 방법을 나타내고 있다.
도 6b는 분해된 시스템을 요소별로 프로세스를 병렬처리하기 위한 방법을 도시한 다이어그램으로서, 도시된 바처럼 중앙처리장치에서 스레드를 P1, P2로 두 개 생성하도록 한다면, 생성된 스레드 P1, P2로 3번, 2번, 1번의 프로세스를 병렬처리한다.
먼저, 3번들을 소거하여서 스레드 P1, P2에 분배하여 각각을 병렬처리하게 한 후에, 2번들을 소거하여 P1, P2에 분배하여 각각을 병렬처리하고, 마지막으로 1번을 P1, P2에 분배하도록 병렬처리방법을 사용함으로써 처리속도를 크게 향상할 수 있다.
다만, 3번과 2번 및 1번의 각각의 단계의 프로세스를 처리시에 공유하는 부분이 있는 경우, 즉, 스레드간에 메모리를 공유하여 서로 영향을 주는 경우에는 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계가 필요하다.
즉, 3번들을 소거하는 과정에서 2번과 1번과 공유하는 부분, 마찬가지로 2번들을 소거하는 과정에서 1번과 공유하는 과정에서는 메모리를 공유하는 경우에, 스레드간에 동시처리를 방지하는 단계, 말하자면 스레드 접근을 제한하는 동기식 단 계를 포함하게 된다.
이를 위해, 다른 스레드가 메모리를 공유하는 경우에는 스레드간에 처리순서를 정해야 하며, 예를 들면 3번들을 소거할 때에 1번과 2번과 공유하는 부분에 대해서는 공유되는 부분의 메모리에 먼저 접근한 스레드를 제외한 모든 스레드에 대해서 해당 메모리의 접근을 금지하도록 구성하면서 병렬처리를 수행하도록 한다.
보다 자세하게는, 이러한 동기화하는 방식으로 Mutex 함수 등을 이용할 수 있으며, 스레드의 생성과 소멸에 대해서는 windows 함수나 OpenMP 등을 통해 구성할 수 있다.
마지막으로, 상기의 단계를 통해 해석된 솔루션를 업데이트하여 다물체 시스템 동역학 해석의 솔루션의 정확도를 업데이트 하게 된다.
이 과정은 상기의 자코비안과 레지듀어를 구할 때와 마찬가지로 엔터티별 프로세스간에 공유하는 메모리가 없기 때문에 공유하는 메모리에 대한 어떠한 작업도 필요하지 않고 엔터티별 프로세스를 스레드를 생성하여 분배하면서 병렬처리하면서 업데이트를 수행한다.
또한, 이상 설명한 본 발명의 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법은 컴퓨터에서 구동할 수 있는 매개장치에 기록되어 컴퓨터를 통해 다물체 동역학 시스템을 해석하는데 활용될 수 있을 것이다.
특히, 상기 컴퓨터의 중앙처리장치(CPU)가 다중코어를 갖는 경우에는 보다 신속한 처리를 가능하게 할 것이다.
이상 본 발명의 상세한 설명에서는 구체적인 실시예에 관해서 설명하였으나, 본 발명은 이에 한정되지 않고 본 발명의 기술적 사상의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 당해 분야에서 통상의 지식을 가진 자에게 있어서 자명하다 할 것이다.
도 1은 종래기술에 따른 다물체 동역학 시스템의 해석과정을 나타내는 흐름도이다.
도 2는 본 발명의 다물체 동역학 시스템을 해석과정을 간략화한 흐름도이다.
도 3은 본 발명의 제1 실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 엔터티들 단위로 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도이다.
도 4는 본 발명의 제1 실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 엔터티들 단위로 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도이다.
도 5는 본 발명의 다물체 동역학 시스템의 바디와 조인트를 벡터로 표시한 상태도이다.
도 6a, 6b는 본 발명의 다물체 동역학 시스템의 분해방법과 분해된 시스템 단위로 프로세스를 처리하기 위한 병렬처리방법을 간략화하여 나타낸 다이어그램이다.
Claims (1)
- 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서,상기 시스템을 해석하기 위해 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안을 계산하는 과정은,병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계;상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하는 단계;상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하는 단계;상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하는 단계;를 포함하는 것을 특징으로 하는 다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080099780A KR100901520B1 (ko) | 2008-10-10 | 2008-10-10 | 다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020080099780A KR100901520B1 (ko) | 2008-10-10 | 2008-10-10 | 다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080078469A Division KR100876642B1 (ko) | 2008-08-11 | 2008-08-11 | 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100901520B1 true KR100901520B1 (ko) | 2009-06-08 |
Family
ID=40982420
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080099780A KR100901520B1 (ko) | 2008-10-10 | 2008-10-10 | 다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100901520B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101291597B1 (ko) * | 2011-10-20 | 2013-08-01 | 버추얼모션(주) | 접촉 요소를 갖는 다물체 동역학 시스템의 효율적인 해석방법 |
CN111044289A (zh) * | 2019-12-26 | 2020-04-21 | 哈尔滨工业大学 | 基于闭环动态测量的大型高速回转装备对准误差测量方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990026226A (ko) * | 1997-09-23 | 1999-04-15 | 정선종 | 고속병렬컴퓨터에서 병렬 구문에 의한 쓰레드 생성 방법 |
KR20040016863A (ko) * | 2001-05-14 | 2004-02-25 | 가부시끼가이샤 얼라이드 엔지니어링 | 병렬 유한 요소법 계산 시스템 |
-
2008
- 2008-10-10 KR KR1020080099780A patent/KR100901520B1/ko not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR19990026226A (ko) * | 1997-09-23 | 1999-04-15 | 정선종 | 고속병렬컴퓨터에서 병렬 구문에 의한 쓰레드 생성 방법 |
KR20040016863A (ko) * | 2001-05-14 | 2004-02-25 | 가부시끼가이샤 얼라이드 엔지니어링 | 병렬 유한 요소법 계산 시스템 |
Non-Patent Citations (2)
Title |
---|
GOLDENBERG, A, "A Complete Generalized Solution to the Inverse Kinematics of Robots", IEEE Journal of Robotics and Automation, Vol.RA-1, No-1, 1985. |
YANG, D.C. et. al. "A simple method to calculate mobility with Jacobian", Mechanism and Machine Theory 43(2008) pp.1175-1185. Available online 21 September 2007. |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101291597B1 (ko) * | 2011-10-20 | 2013-08-01 | 버추얼모션(주) | 접촉 요소를 갖는 다물체 동역학 시스템의 효율적인 해석방법 |
CN111044289A (zh) * | 2019-12-26 | 2020-04-21 | 哈尔滨工业大学 | 基于闭环动态测量的大型高速回转装备对准误差测量方法 |
CN111044289B (zh) * | 2019-12-26 | 2021-09-03 | 哈尔滨工业大学 | 基于闭环动态测量的大型高速回转装备对准误差测量方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Coelho et al. | Parallel computing techniques applied to the simultaneous design of structure and material | |
González et al. | Biomedical Image Processing with Containers and Deep Learning: An Automated Analysis Pipeline: Data architecture, artificial intelligence, automated processing, containerization, and clusters orchestration ease the transition from data acquisition to insights in medium‐to‐large datasets | |
Clay et al. | GPU acceleration of a petascale application for turbulent mixing at high Schmidt number using OpenMP 4.5 | |
Horton et al. | A class of hybrid lapack algorithms for multicore and gpu architectures | |
Fazanaro et al. | Numerical characterization of nonlinear dynamical systems using parallel computing: The role of GPUs approach | |
De La Banda et al. | The future of optimization technology | |
KR100901520B1 (ko) | 다물체 동역학 시스템의 엔터티별 자코비안계산 프로세스의 소요시간의 차이로 발생하는 멀티스레드간의 동작시간의 갭을 줄이기 위한 병렬처리 프로세싱 방법 | |
D’Amato et al. | A CPU–GPU framework for optimizing the quality of large meshes | |
Oh et al. | Parallelization of a finite element Fortran code using OpenMP library | |
He et al. | A multiple-GPU based parallel independent coefficient reanalysis method and applications for vehicle design | |
Glendenning et al. | Parameter space visualization for large-scale datasets using parallel coordinate plots | |
KR100876642B1 (ko) | 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법 | |
Gouvêa de Barros et al. | Simulations of Complex and Microscopic Models of Cardiac Electrophysiology Powered by Multi‐GPU Platforms | |
Kardos et al. | Mixed-initiative assembly planning combining geometric reasoning and constrained optimization | |
Sarje et al. | Accelerating pairwise computations on cell processors | |
KR101291597B1 (ko) | 접촉 요소를 갖는 다물체 동역학 시스템의 효율적인 해석방법 | |
Šutić et al. | Apache spark as distributed middleware for power system analysis | |
Lederman et al. | Time-parallel solutions to differential equations via functional optimization | |
Ezhova | Verification of BSF Parallel Computational Model | |
US20230186131A1 (en) | Simulator for quantum computing systems | |
Castro et al. | Volunteer computing approach for the collaborative simulation of electrophysiological models | |
Gajos-Balińska et al. | Hybrid implementation of the fastICA algorithm for high-density EEG using the capabilities of the Intel architecture and CUDA programming | |
Imamura et al. | Eigen-G: GPU-based eigenvalue solver for real-symmetric dense matrices | |
Mutijarsa et al. | Smart engineering platform: An overview of new engineering taxonomy | |
Kemmer | Space-efficient and exact system representations for the nonlocal protein electrostatics problem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |