KR100876642B1 - The analysis method of the multibody dynamics system using parallel processing - Google Patents

The analysis method of the multibody dynamics system using parallel processing Download PDF

Info

Publication number
KR100876642B1
KR100876642B1 KR1020080078469A KR20080078469A KR100876642B1 KR 100876642 B1 KR100876642 B1 KR 100876642B1 KR 1020080078469 A KR1020080078469 A KR 1020080078469A KR 20080078469 A KR20080078469 A KR 20080078469A KR 100876642 B1 KR100876642 B1 KR 100876642B1
Authority
KR
South Korea
Prior art keywords
jacobian
processes
thread
threads
motion
Prior art date
Application number
KR1020080078469A
Other languages
Korean (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 KR1020080078469A priority Critical patent/KR100876642B1/en
Application granted granted Critical
Publication of KR100876642B1 publication Critical patent/KR100876642B1/en

Links

Images

Classifications

    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • G06F9/3895Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros
    • G06F9/3897Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator for complex operations, e.g. multidimensional or interleaved address generators, macros with adaptable data path
    • 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/44Arrangements for executing specific programs
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F2009/3883Two-engine architectures, i.e. stand-alone processor acting as a slave processor

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Image Processing (AREA)

Abstract

A method for analyzing an object dynamic mechanics system having multiple degree-of-freedom is provided to reduce analyzing time by disassembling the object mechanics system into a plurality of pieces and processing respective processes in parallel. A turnaround time of processes calculating Jacobian is computed for each entity. An intrinsic thread ID is given to each entity. A nonlinear motion equation of the object dynamic mechanics system is linearized through Jacobian computation by distributing the processes having the intrinsic thread to the threads in parallel according to the intrinsic thread ID. Jacobian of the motion equation of the system is converted into product of lower and top triangular matrixes with triangular matrix decomposition by distributing the processes of the part disassembling the motion equation of the linearized system to a plurality of threads generated in a CPU. A solution of the motion equation of the linearized system, which is converted through the triangular matrix decomposition, is output by distributing the processes of the part disassembling the linearized motion equation to the threads generated in the CPU.

Description

병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법{The analysis method of the multibody dynamics system using parallel processing}Analysis method of the multibody dynamics system using parallel processing

본 발명은 다물체 동역학(multibody dynamics) 시스템에 관한 해석방법에 관한 것으로서, 병렬 컴퓨터 프로그래밍 또는 프로세싱을 이용한 처리방법에 관한 것이다. 보다 자세하게는 강체들이 조인트, 힘, 접촉 요소들로 연결된 다물체 동역학 시스템에서 병렬처리 프로세싱 방식을 적용한 다물체 동역학 시스템의 해석방법에 관한 것이다.The present invention relates to an analysis method for a multibody dynamics system and to a processing method using parallel computer programming or processing. More specifically, the present invention relates to an analysis method of a multibody dynamics system using parallel processing in a multibody dynamics system in which rigid bodies are connected by joints, forces, and contact elements.

다물체 동역학시스템이란 강체들이 조인트, 힘, 접촉 요소들로 연결된 시스템의 동역학을 다루는 것으로서, 최근에는 시스템이 복잡하고 대형화되어 구성이 복잡해 짐으로써, 다물체 동역학 시스템의 자유도가 늘어나 시스템의 해석시간이 매우 길어지고 있는 실정이다.Multibody dynamics system deals with the dynamics of a system in which rigid bodies are connected by joints, forces, and contact elements.In recent years, the system is complicated and enlarged, which complicates the configuration. It's getting very long.

상기에서 자유도(degrees of freedom)란 다물체 시스템의 움직이는 형상을 표현하는데 필요한 최소한의 좌표수를 의미한다.The degrees of freedom in the above means the minimum number of coordinates required to represent the moving shape of the multibody system.

다물체 동역학 시스템을 해석하는데에 있어서 가장 중요한 인자는 신속도와 정확도이나, 정확도를 높이고자 시스템의 자유도를 높여, 몇만 이상의 복잡한 자유도를 갖는 다물체 시스템의 동역학을 해석하는 경우에 다수의 프로세스를 처리하는 데에 많은 시간이 요구됨에 따라 해석에 따른 신속도에 대한 문제가 야기되고 있는 실정이다.The most important factor in the analysis of multibody dynamics system is the speed and accuracy, but it increases the degree of freedom of the system in order to improve the accuracy, and thus processes many processes when analyzing the dynamics of multibody systems with more than tens of thousands of complex degrees of freedom. As a lot of time is required, the problem of the speed of interpretation is caused.

도 1은 종래기술에 따른 다물체 동역학 시스템의 해석과정을 나타내는 흐름도로서, 다물체 동역학 시스템을 이루는 요소인 강체, 조인트, 힘, 접촉 등의 엔터티(entity)들을 통해 시스템을 해석하게 된다.1 is a flowchart illustrating an analysis process of a multibody dynamics system according to the prior art, and the system is analyzed through entities such as rigid bodies, joints, forces, and contacts, which constitute the multibody dynamics system.

상기에서 언급된 엔터티들로 이루어진 다물체 동역학 시스템은 다음과 같은 비선형 운동방정식과 구속조건식으로 표현할 수 있다.The multibody dynamics system composed of the above-mentioned entities can be expressed by the following nonlinear equations of motion and constraints.

Figure 112008057349202-pat00001
Figure 112008057349202-pat00001

상기와 같이 표현된 다물체 동역학 시스템의 운동방정식 F를 해석하여, 원하 는 다물체 동역학 시스템의 솔루션를 구하기 위해서는 운동방정식 F를 선형화하는 단계가 필요하다.In order to solve the equation of motion of the multibody dynamics system expressed as described above, to obtain the solution of the desired multibody dynamics system, it is necessary to linearize the equation of motion F.

다물체 동역학 시스템의 운동방정식을 선형화하기 위하여, 뉴턴-랩손 메소드(Newton-Rapson Method)를 사용하여 아래와 같은 매트릭스 형태의 선형화한 선형방정식으로 변환하기 위해 자코비안과 레지듀어를 계산하는 단계를 포함한다.(S1단계)In order to linearize the equations of motion of the multibody dynamics system, the Jacobian and residuals are calculated using the Newton-Rapson method to convert the linearized linear equations into a matrix form as follows. (Step S1)

AxAx =b = b

A: 자코비안(jacobian) A: Jacobian

b: 레지듀어(residual) b: residual

x: 다물체 동역학 시스템의 솔루션 x: Solutions of Multibody Dynamics Systems

또한, 상기 변환된 행렬식의 자코비안을 삼각행렬분해법을 이용하여 자코비안 A=LU (L: 하부삼각행렬, U: 상부삼각행렬)형태로써 변환하는 수치분해화(numerical factorize)단계(S2단계)와, 변환된 LU행렬을 이용하여 다물체 시스템의 동역학의 솔루션을 계산하는 백추출(back-substitution)단계(S3단계) 및 구해진 솔루션을 업데이트하는 단계(S4단계)로서 이루어진다.In addition, a numerical factorizing step of converting Jacobian of the converted determinant into a Jacobian A = LU ( L: lower triangular matrix, U: upper triangular matrix) form using triangular matrix decomposition (step S2) And a back-substitution step (step S3) of calculating the dynamic solution of the multi-body system using the converted LU matrix and a step of updating the obtained solution (step S4).

앞서 언급한 LU분해법이나 백추출법은 수치해석에서 일반적으로 사용되는 방법이므로 여기서 자세한 설명은 생략한다.Since the LU decomposition method and the back extraction method mentioned above are generally used in numerical analysis, detailed descriptions are omitted here.

상기에서 특히, 자코비안과 레지듀어를 계산하는 단계(S1단계)의 경우에 운 동방정식 F를 일반좌표 및 라그랑지 승수에 대해서 편미분을 함으로써 계산이 되는데 이는 해석에 필요한 엔터티들에 대해 각각 독립적으로 이루어지게 된다.In the above, in particular, in the case of calculating Jacobian and residual (step S1), the calculation of the equation F is performed by partial derivative of the general equation and the Lagrange multiplier, which are independent of the entities necessary for interpretation. You lose.

그러나, 엔터티들이 수만개 이상이 포함된 경우에 운동방정식을 선형화하기 위하여 엔터티들에 대해 자코비안과 레지듀어를 계산하는 단계(S1)의 경우는 매우 긴 처리시간을 요구하기 때문에 실질적으로 다물체 동역학 시스템의 해석시간의 신속성에 문제가 되고 있는 실정이다.However, in the case of calculating Jacobian and residual for the entities in order to linearize the equation of motion when tens of thousands of entities are included, the step (S1) requires a very long processing time, thereby substantially reducing the multi-body dynamics system. This is a problem for the speed of analysis time.

다시 말해, 상기의 각각의 단계들을 처리함에 있어, 각 단계의 프로세스를 순차적 방식으로 컴퓨터를 통해 처리하는 경우에는, 최근처럼 매우 복잡하고 시스템이 대형화되는 다자유도의 복잡한 다물체 동역학 시스템의 해석과정은 매우 긴 해석시간을 요구되어지는 문제점을 갖고 있다.In other words, in the processing of each of the above steps, in the case of processing the process of each step through the computer in a sequential manner, the analysis process of the multi-degree of freedom complex multi-body dynamics system which is very complicated and the system is enlarged as in recent years The problem is that a very long analysis time is required.

즉, 다물체 동역학 시스템의 해석시간을 최소하하여 시스템의 상태를 파악하는 방법은 실질적으로 다물체 동역학 시스템에서 가장 핵심적인 이슈가 되고 있다고 할 수 있다.In other words, the method of grasping the state of the system by minimizing the analysis time of the multibody dynamics system is actually the most important issue in the multibody dynamics system.

상기의 문제점을 해결하기 위하여 본 발명은 다물체 동역학 시스템의 해석과정에서 시스템을 다수로 분해하고, 각각의 분해된 부분의 프로세스들을 병렬처리하도록 하여 다물체 동역학 시스템의 해석시간을 줄이는 것을 목적으로 한다.In order to solve the above problems, an object of the present invention is to reduce the analysis time of a multibody dynamics system by disassembling the system into a plurality of processes in parallel and processing the processes of the respective decomposed parts in parallel. .

또한, 본 발명은 다물체 동역학 시스템의 비선형 운동방정식의 선형화단계에서 뉴턴-랩손 메소드를 사용하여 자코비안을 계산하는 과정에서, 다물체 동역학 시스템을 이루는 각각의 엔터티(entity)들별로 프로세스를 처리함에 있어 다수의 스레드를 생성하여 병렬처리 프로세싱을 통해 다물체 동역학 시스템의 해석시간을 줄이는 것을 목적으로 한다.In addition, the present invention is to process the process for each entity of the multi-body dynamics system in the process of calculating Jacobian using the Newton-Lapson method in the linearization of the non-linear dynamics of the multi-body dynamics system. It aims to reduce the analysis time of multibody dynamics system by creating multiple threads.

또한, 본 발명은 다물체 동역학 시스템의 비선형 운동방정식의 선형화단계에서 뉴턴-랩손 메소드를 사용하여 자코비안을 계산하는 과정에서, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스들을 스레드에 배분하는 경우 다수의 스레드간의 병렬처리시간의 갭을 최소화시켜 병렬처리의 효율을 극대화하여 다물체 동역학 시스템의 해석시간을 최대로 줄이는 것을 목적으로 한다.In addition, the present invention, in the process of calculating Jacobian using the Newton-Lapson method in the linearization step of the non-linear dynamic equation of the multibody dynamics system, allocates processes for calculating Jacobian for each entity to threads. In this case, it is aimed to minimize the analysis time of the multibody dynamics system by maximizing the efficiency of parallel processing by minimizing the gap of parallel processing time between multiple threads.

삭제delete

상기의 목적을 달성하기 위하여, 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석방법에 있어서, (a) 상기 다물체 동역학 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안을 계산하는 경우, 상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하고, 상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하고, 상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하여 병렬처리함으로써 자코비안을 계산하여 다물체 동역학 시스템의 비선형 운동방정식을 선형화하는 단계; (b) 상기 (a)단계를 통해 다물체 동역학 시스템의 비선형 운동방정식을 선형화한 후에, 상기 자코비안을 삼각행렬분해법을 통해 상부삼각행렬과 하부삼각행렬의 곱으로 변환하기 위하여, 상기 선형화된 시스템의 운동방정식을 분해하여 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 시스템의 운동방정식의 자코비안을 삼각행렬분해법에 의해 상부삼각행렬과 하부삼각행렬의 곱으로 변환하는 단계; (c) 상기 (b)단계의 삼각행렬분해법을 통해 상기 변환된 선형화된 운동 방정식을 구성한 후에, 상기 변환된 선형화된 운동 방정식의 솔루션을 도출하기 위하여, 상기 삼각행렬분해법을 통해 변환된 선형화된 운동 방정식을 분해하여 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 상기 삼각행렬분해법을 통해 변환된 선형화된 시스템의 운동방정식의 솔루션을 도출하는 단계;를 포함하여 구성된 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 시스템의 동역학 해석방법을 제시한다.
상기의 목적을 달성하기 위하여, 본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템을 다수로 분해하고, 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하는 단계를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.
상기 다수의 스레드가 병렬처리하는 과정에서 스레드간에 메모리를 공유하여 서로 영향을 주는 경우에는 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계를 더 포함할 수 있다.
In order to achieve the above object, in the method of analyzing a multibody dynamics system having multiple degrees of freedom and a plurality of entities connected to each other, (a) linearizing a nonlinear equation of motion of the multibody dynamics system using the Newton-Lapson method In the case of calculating Jacobian for the purpose of computing the time required for the processes of calculating Jacobian for each entity, and assigning a unique thread ID so that the processes for calculating Jacobian for each entity are distributed to a specific thread. Linearizing the nonlinear equations of motion of the multi-body dynamics system by calculating Jacobian by distributing the processes for each entity to which a unique thread ID is assigned to the threads according to the unique thread ID to perform parallel processing; (b) linearizing the nonlinear equations of motion of the multibody dynamics system in step (a), and then converting the Jacobian to the product of the upper and lower triangles by triangular matrix decomposition. Decompose the kinematic equation of and divide the processes of each decomposed part into multiple threads created by the central processing unit, and convert the Jacobian of the kinematic equation of the system into the product of the upper triangular matrix and the lower triangular matrix by triangular matrix decomposition. Doing; (c) after constructing the transformed linearized equation of motion through the triangular matrix decomposition method of step (b), in order to derive a solution of the transformed linearized equation of motion, the linearized motion transformed through the triangular matrix decomposition method Decomposing the equations and distributing the processes of each decomposed portion to a plurality of threads generated in the central processing unit to derive a solution of the equation of motion of the linearized system transformed by the triangular matrix decomposition. This paper presents a dynamic analysis method for multi-objective systems with multiple degrees of freedom.
In order to achieve the above object, the present invention is a multi-body dynamics system analysis method having a number of degrees of freedom and is connected to a plurality of entities, the system is divided into a plurality of parts to interpret the system, each part The present invention proposes an analysis method of a multi-body dynamics system having multiple degrees of freedom including parallel processing by distributing a plurality of processes to a plurality of threads generated in a central processing unit.
When the plurality of threads are in parallel in the process of parallel processing, the memory sharing between the threads to affect each other may further comprise the step of synchronizing the thread processing for sequential processing.

또한, 상기의 목적을 달성하기 위하여, 본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안의 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유아이디를 부여하는 단계; 및 상기 고유아이디가 부여된 엔터티별 자코비안을 계산하는 프로세스들을 상기 다수의 스레드에 균등한 개수로 분배하는 단계;를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.In addition, in order to achieve the above object, the present invention in the multi-body dynamics system analysis method having multiple degrees of freedom and connected a plurality of entities, the Newton-Lapson method of the nonlinear kinematic equation of the system to interpret the system The calculation of Jacobian to linearize using the step of: generating a plurality of threads in the central processing unit to perform parallel processing; Assigning a unique ID to each of the processes for calculating Jacobian for each entity; And distributing processes for calculating Jacobian for each entity to which the unique ID has been assigned to the plurality of threads in an equal number to the plurality of threads. The multi-body dynamics system having the multiple degrees of freedom to which parallel processing is applied is included. Provide an interpretation method.

또한, 상기의 목적을 달성하기 위하여, 본 발명은 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석 방법에 있어서, 상기 시스템을 해석하기 위해 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안을 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에 서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하는 단계; 상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하는 단계;를 포함하는 것을 특징으로 하는 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 제시한다.In addition, in order to achieve the above object, the present invention in the multi-body dynamics system analysis method having multiple degrees of freedom and connected a plurality of entities, the Newton-Lapson method of the nonlinear kinematic equation of the system to interpret the system The process of calculating Jacobian to linearize using the step includes: generating a plurality of threads in the central processing unit to perform parallel processing; Calculating a time required for each process of calculating Jacobian for each entity; Assigning a unique thread ID so that processes for calculating Jacobian for each entity are distributed to specific threads; And distributing the processes for each entity to which the unique thread ID is assigned to the thread according to the unique thread ID. The present invention provides a method of interpreting a multibody dynamics system having multiple degrees of freedom including parallel processing. .

또한, 상기의 목적을 달성하기 위하여, 본 발명은다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석방법에 있어서, (a) 상기 다물체 시스템의 비선형 운동방정식을 선형화하기 위하여, 상기 시스템을 분해하여 각각의 분해된 부분의 프로세스들을 다수의 스레드에 분배하여 병렬처리하는 단계;In addition, in order to achieve the above object, the present invention is a method of analyzing a multi-body dynamics system having a multiple degree of freedom and a plurality of entities are connected, (a) to linearize the non-linear equation of motion of the multi-body system, Disassembling the system to distribute the processes of each disassembled portion to a plurality of threads for parallel processing;

(b) 상기 시스템을 분해하고, 상기 분해된 각각의 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하여 상기 시스템의 선형방정식을 삼각행렬분해법을 이용하여 변환하는 단계; (c) 상기 시스템을 분해하고, 상기 분해된 각각의 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 병렬처리하여 상기 삼각행렬분해법을 이용하여 변환된 선형방정식의 솔루션을 도출하는 단계; 및 (d) 상기 도출된 솔루션을 각각 병렬처리하여 업데이트하는 단계;를 포함하여 구성된 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 시스템의 동역학 해석방법를 제시한다.(b) disassembling the system, distributing the processes of each of the decomposed parts to a plurality of threads generated in a central processing unit and performing parallel processing to convert the linear equations of the system using triangular matrix decomposition; (c) disassembling the system, distributing the processes of each of the decomposed parts to a plurality of threads generated in a central processing unit and performing parallel processing to derive a solution of a linear equation converted using the triangular matrix decomposition; ; And (d) updating the derived solutions in parallel by updating the derived solutions. The present invention provides a dynamic analysis method for a multi-object system having multiple degrees of freedom including the parallel processing.

상기 (b)단계 및 (c)단계는, 상기 다수의 스레드가 병렬처리하는 과정에서 메모리를 공유하여 서로 영향을 주는 경우에 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계를 더 포함할 수 있다.Steps (b) and (c) may further include synchronizing thread processing for sequential processing when the plurality of threads share a memory and influence each other in parallel processing.

또한, 상기 (a)단계는, 상기 비선형 운동방정식을 선형화하기 위하여 뉴턴-랩손 메소드를 이용하며, 상기 뉴턴-랩손 메소드를 이용하는 경우 자코비안의 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유아이디를 부여하는 단계; 및 상기 고유아이디가 부여된 엔터티별 자코비안을 계산하는 프로세스들을 상기 다수의 스레드에 균등한 개수로 분배하는 단계;를 포함할 수 있다.In addition, in the step (a), the Newton-Lapson method is used to linearize the nonlinear equation of motion, and when the Newton-Lapson method is used, the Jacobian calculation is performed by a central processing unit. Creating a thread; Assigning a unique ID to each of the processes for calculating Jacobian for each entity; And distributing processes for calculating Jacobian for each entity to which the unique ID has been assigned, in equal numbers to the plurality of threads.

또한, 상기 (a)단계는, 상기 비선형 운동방정식을 선형화하기 위하여 뉴턴-랩손 메소드를 이용하며, 상기 뉴턴-랩손 메소드를 이용하는 경우 자코비안의 계산하는 과정은, 병렬처리를 하도록 중앙처리장치에서 다수의 스레드를 생성하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하는 단계; 상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하는 단계; 상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하는 단계;를 포함할 수 있다.In addition, in the step (a), the Newton-Lapson method is used to linearize the nonlinear equation of motion, and when the Newton-Lapson method is used, the Jacobian calculation is performed by a central processing unit. Creating a thread; Calculating a time required for each process of calculating Jacobian for each entity; Assigning a unique thread ID so that processes for calculating Jacobian for each entity are distributed to specific threads; And distributing the processes for each entity to which the unique thread ID is assigned to the thread according to the unique thread ID.

본 발명에 따른 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법을 통하여 다음과 같은 효과를 얻을 수 있다.Through the analysis method of the multi-body dynamics system having the multiple degree of freedom applying the parallel processing according to the present invention, the following effects can be obtained.

첫 번째로, 다물체 동역학 시스템의 해석 속도를 획기적으로 개선할 수 있 어, 종래에 사용했던 순차적 처리방식에 비해 처리속도를 크게 향상시킬 수 있어 설계시간과 개발비용을 줄일 수 있다.First, the analysis speed of the multibody dynamics system can be improved drastically, and the processing speed can be significantly improved compared to the conventional sequential processing method, thereby reducing design time and development cost.

두 번째로, 다물체 동역학 시스템의 선형화단계에서 뉴턴-랩손 매소드를 이용하여 자코비안을 구할 때, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스를 다수의 스레드에 배분하여 처리하는 병렬처리 프로세싱을 통해 다물체 동역학 시스템의 해석시간을 줄일 수 있는 효과가 있다.Secondly, when obtaining Jacobian using Newton-Lapson method in the linearization stage of multibody dynamics system, parallel processing that allocates and processes the Jacobian for each entity to multiple threads. Through this, the analysis time of multibody dynamics system can be reduced.

세 번째로, 다물체 동역학 시스템의 선형화단계에서 뉴턴-랩손 매소드를 이용하여 자코비안을 구할 때, 각각의 엔터티(entity)별로 자코비안을 계산하는 프로세스의 소요시간을 미리 연산하고, 엔터티별로 자코비안을 계산하는 프로세스들에 각각 고유의 스레드 아이디를 부여하여 특정 스레드에 배분함으로써, 다수의 스레드간의 병렬처리시간의 갭을 최소화시키므로서 병렬처리의 효율을 극대화할 수 있는 효과를 갖는다.Third, when obtaining Jacobian using Newton-Lapson method in the linearization stage of multibody dynamics system, it calculates in advance the time required to calculate Jacobian for each entity, and Jacobian for each entity. By assigning a unique thread ID to each of the processes for calculating the value and assigning it to a specific thread, it minimizes the gap of parallel processing time between a plurality of threads and has the effect of maximizing the efficiency of parallel processing.

이하 본 발명의 실시예를 첨부된 도면을 참조하여 자세하게 설명한다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 다물체 동역학 시스템을 해석과정을 간략화한 흐름도를 나타낸 것으로서, 도시된 바와 같이 본 발명은 다물체 동역학 시스템 해석을 위해서 병렬처리를 수행하도록 구성하고 있다.Figure 2 shows a simplified flow diagram of the process of analyzing the multi-body dynamics system of the present invention, as shown in the present invention is configured to perform parallel processing for multi-body dynamics system analysis.

다물체 동역학 시스템을 이루는 요소에는 강체, 조인트, 힘, 접촉요소 등의 엔터티들이 있으며, 시스템에 따라 상기 엔터티들은 수만개 이상이 포함될 수 있다.Elements that make up a multibody dynamics system include entities such as rigid bodies, joints, forces, and contact elements. Depending on the system, the entities may include tens of thousands or more.

보다 자세하게 병렬처리 방식을 설명하면, 시스템의 운동방정식을 선형화하기 위하여 자코비안(jacobian)과 레지듀어(residual)를 계산하는 단계(S1), 수치분해화(numerical factorize)하는 단계(S2), 다물체 동역학 시스템의 솔루션를 구하는 백추출(back-substituion)단계(S3) 및 구해진 시스템의 해를 업데이트(update solution)하는 단계(S4)에 있어, 각 단계마다 중앙처리장치에서 스레드를 다수 생성하고 생성된 스레드에 다물체 동역학 시스템을 분해하여 각각의 단계의 프로세스를 병렬처리작업을 수행하도록 구성하여, 시스템 해석의 모든 단계를 병렬처리하도록 할 수 있다.In more detail, in the parallel processing method, calculating Jacobian and residual in order to linearize the equation of motion of the system (S1), and numerical factorizing (S2), In the back-substituion step (S3) for obtaining a solution of the object dynamics system and the step (S4) for updating the solution of the obtained system, at each step, a plurality of threads are generated and generated in the central processing unit. By disassembling the multibody dynamics system into threads, the processes of each step can be configured to perform parallel processing so that all steps of the system analysis can be parallelized.

병렬처리방식이란 프로세스를 처리하기 위하여 중앙처리장치(CPU)에서 스레드(thread)로 불리는 처리 단위를 복수 생성하여 처리할 프로세스를 요소로 분해하여 분해된 프로세스에 중앙처리장치에서 생성된 스레드에 각각 분배하여 처리를 병행하도록 하는 방식이다. The parallel processing method creates a plurality of processing units called threads in the central processing unit (CPU) in order to process the process, decomposes the process to be processed into elements, and distributes them to the threads created in the central processing unit for the disassembled process. To perform the processing in parallel.

즉, 상기의 다물체 동역학 시스템의 각각의 단계에서 처리되는 병렬처리방식은, 스레드를 생성하게 하고, 생성된 스레드에 다물체 동역학 시스템을 다수로 분해하여 분해된 시스템 단위로 처리할 프로세스를 스레드에 배분하여 동시에 스레드에서 병렬처리를 하도록 구성한다.That is, the parallel processing method that is processed in each step of the multi-body dynamics system allows a thread to be generated, and the multi-body dynamics system is decomposed into a plurality of generated threads, and a process to be processed in a decomposed system unit is provided to the threads. Allocate and parallelize threads simultaneously.

따라서, 종래의 다물체 동역학 시스템의 해석에 대한 처리방식은 각각의 단계에 있어, 병렬처리가 아닌 순차적인 방식의 해석방법을 적용했기 때문에 해석단계에서 막대한 시간을 요하여 신속성이 떨어질 수밖에 없었으나, 본 발명은 이러한 문제점을 병렬처리방식을 도입하여 해결할 수 있게 함으로써 시스템 해석에 소요되 는 막대한 시간을 줄일 수 있는 효과가 있다.Therefore, in the conventional multi-body dynamics analysis method, the processing method for each analysis is applied to the sequential method rather than parallel processing, which requires a great amount of time in the analysis step. The present invention can solve the problem by introducing a parallel processing method has the effect of reducing the enormous time required for system analysis.

도 3은 본 발명의 제1 실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 자코비안(jacobian)과 레지듀어(residual)를 계산하는 단계(S1)에서 다수의 엔터티들 단위로 자코비안(jacobian)과 레지듀어(residual)를 계산하는 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도로서, 중앙처리장치(CPU)에서 스레드를 일정개수로 생성하도록 하고, 생성된 다수의 스레드에 다물체 동역학 시스템의 엔터티들을 나누어 배분하여 각각의 스레드로 엔터티들을 병렬처리하도록 구성한다.FIG. 3 illustrates Jacobian in units of a plurality of entities in step S1 of calculating Jacobian and residual in order to linearize a multibody dynamics system according to a first embodiment of the present invention. And a method of allocating a process for calculating a residual and a residual to a thread for parallel processing, wherein the central processing unit (CPU) generates a certain number of threads, and multiplies the generated multiple threads. Divide and distribute the entities of the dynamics system and configure them to parallelize the entities with each thread.

상기의 자코비안과 레지듀어의 계산은 시스템의 운동방정식을 일반좌표 및 라그랑지 승수에 대해서 편미분을 함으로써 계산이 되는데, 이 때 해석에 필요한 엔터티들에 대해 개별적으로 이루어지게 되며, 엔터티별로 계산하는 각각의 프로세스 상에 서로 공유하는 메모리가 없다.The calculation of Jacobian and Residue is calculated by partial derivative of the system's equation of motion with respect to general coordinates and Lagrange multipliers, which are performed separately for the entities needed for interpretation, and for each entity calculated for each entity. There is no memory sharing with each other on the process.

즉, 병렬처리방식이란 자코비안과 레지듀어를 계산하는 엔터티별 다수의 프로세서들을 신속하게 처리하기 위해 각각의 프로세스들을 다수의 스레드에 배분함으로써 동시에 병렬로 다수의 프로세스를 처리하는 프로세싱을 의미한다.In other words, parallel processing means processing that processes multiple processes in parallel by allocating each process to a plurality of threads in order to rapidly process a plurality of processors for each entity calculating a Jacobian and a residual.

도시된 실시예와 같이, 3개의 스레드(P1, P2, P3)를 생성한다면, 처리해야할 엔터티별 프로세스의 개수가 N개라고 하였을 경우에, 각각의 스레드에는 생성된 3개의 스레드별로 엔터티별 프로세스를 균등하게 일괄적으로 배분하여, 각각의 스레드에서 동시에 각각의 엔터티 단위로 프로세스를 병렬처리하도록 함으로써 신속하 게 다물체 동역학시스템의 운동방정식을 선형화할 수 있게 된다.As shown in the illustrated embodiment, if three threads (P1, P2, P3) are generated, when the number of processes per entity to be processed is N, each thread has an entity-specific process for each of the three threads created. By distributing them evenly and collectively, parallelizing the process by each entity in each thread at the same time, it is possible to quickly linearize the equations of motion of a multibody dynamics system.

이를 위해, 각각의 엔터티별 프로세스에는 고유아이디(ID)를 부여하고, 고유아이디가 부여된 엔터티별 프로세스들을 생성된 다수의 스레드에 균등한 개수로 분배하도록 하여 병렬처리를 하도록 구성한다.To this end, each entity-specific process is assigned a unique ID, and the entity-specific processes to which the unique ID is assigned are distributed to an equal number of generated threads so as to perform parallel processing.

도 4는 본 발명의 제 2실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 자코비안(jacobian)과 레지듀어(residual)를 계산하는 단계(S1)에서 다수의 엔터티들 단위로 자코비안(jacobian)과 레지듀어(residual)를 계산하는 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도로서, 엔터티별 프로세스에 자체적으로 각각 고유의 스레드 아이디(thread id)를 갖도록 구성하고 있다.FIG. 4 shows Jacobian in units of a plurality of entities in step S1 of calculating Jacobian and residual in order to linearize a multibody dynamics system according to a second embodiment of the present invention. And a method of allocating a process for calculating a process and a residual to a thread for parallel processing, and each entity has its own thread id.

앞서 언급된 도 3과 같은 방식의 병렬처리의 경우에 있어서, 엔터티별 프로세스들을 스레드에 랜덤하게 균등한 개수로 분배하여 병렬처리하기 때문에, 각각의 스레드에 배분된 엔터티별 프로세스들을 병렬처리 함에 따른 시간적인 차이가 발생할 경우에 결국 각각의 스레드에서 병렬처리완료시간의 갭(gap)이 생기게 된다.In the case of parallel processing in the same manner as in FIG. 3 mentioned above, since the parallel processing is performed by randomly equally distributing the processes by entity to the threads, the time according to the parallel processing of the processes by the entity allocated to each thread. Eventually, there will be a gap in parallelism completion time for each thread.

보다 자세히 설명하면, 다물체 동역학 시스템의 운동방정식을 선형화하기 위해 자코비안을 계산하는 과정에는 비선형 운동방정식을 일반좌표 및 라그랑지 승수에 대해서 편미분을 함으로써 계산이 되는데, 이는 해석에 필요한 엔터티들(강체, 조인트, 힘, 접촉 등)에 대해서 각각 계산하도록 구성된다.In more detail, in the process of calculating Jacobian to linearize the equation of motion of a multibody dynamics system, nonlinear equations of motion are computed by partial derivatives of the general and Lagrangian multipliers. , Joints, forces, contacts, etc.).

따라서, 조인트의 종류, 힘의 종류, 접촉의 종류 등에 따라서 그 자코비안과 레지듀어의 계산시간은 다르다.Therefore, the calculation time of the Jacobian and the residual differs depending on the type of joint, the type of force, the type of contact, and the like.

도 5는 다물체 동역학 시스템의 바디와 조인트를 벡터로 표시한 상태도로서, 도시된 바에서

Figure 112008057349202-pat00002
Figure 112008057349202-pat00003
는 바디 i와 j를 연결하는 조인트의 자세를 나타내기 위한 단위 방향벡터로서, 서로 직각을 이루고 있는 좌표이며,
Figure 112008057349202-pat00004
는 두 좌표간의 거리를 나타내는 벡터이다. 또한 r 과 A는 각각의 바디들의 위치와 자세를 나타내는 벡터와 행렬이다. 이하에서 기재하는 수학식 자체의 정확한 의미는 당해분야의 당업자 등만이 이해할 수 있을 것이며, 다만, 본 발명의 다물체 동역학 시스템을 해석하는 방법의 구성상 구현하고자하는 바를 설명하기 위한 하나의 예시로서 기재할 뿐이지 수학식 자체의 의미는 본 발명과는 크게 관련이 없을 것임은 당해분야의 당업자 입장에서 자명한 것일 것이다.5 is a state diagram in which the bodies and joints of the multibody dynamics system are shown in a vector.
Figure 112008057349202-pat00002
Wow
Figure 112008057349202-pat00003
Is a unit direction vector for indicating the posture of the joint connecting the bodies i and j, and the coordinates are perpendicular to each other.
Figure 112008057349202-pat00004
Is a vector representing the distance between two coordinates. Also, r and A are vectors and matrices representing the positions and postures of the respective bodies. The exact meaning of the equations described below will be understood only by those skilled in the art, but as an example for explaining what is intended to be implemented in the construction of a method for interpreting the multibody dynamics system of the present invention. It will be apparent to those skilled in the art that the meanings of the equations themselves are not related to the present invention.

이를 테면, 병진조인트(translational joint)의 경우는 한 방향으로만 병진운동을 하게 되고, 회전은 하지 못하는 조인트이다. 따라서 구속조건식은 아래와 같이 5개나 나오게 된다.For example, in the case of a translational joint, the translational joint is only one direction, and the joint cannot rotate. Therefore, there are five constraint expressions as follows.

Figure 112008057349202-pat00005
Figure 112008057349202-pat00005

회전조인트(spherical joint)의 경우는 회전을 구속하는 조인트로 구속조건 식은 아래와 같이 3개가 나오게 된다.In the case of a spherical joint, three joint constraints are shown below.

Figure 112008057349202-pat00006
Figure 112008057349202-pat00006

위의 조인트들에 대해서 자코비안과 레지듀어를 계산하기 위해서는

Figure 112008057349202-pat00007
를 계산하게 된다.To calculate Jacobian and Residue for the above joints,
Figure 112008057349202-pat00007
Will be calculated.

이 과정에서 각각의 조인트들의 상기와 구속조건의 차이는 자코비안과 레지듀어의 계산을 처리하는 프로세스에는 시간의 차이를 발생하게 된다.In this process, the difference between the joints and the constraints of the respective joints causes a time difference in the process of calculating the Jacobian and the residual.

그러므로, 이러한 시간적 차이가 발생하는 자코비안을 계산하는 엔터티별 프로세스들을 단순히 개수별로 균등하게 각각의 스레드에 배분시켜 병렬처리하게 되면, 구속조건이 다른 엔터티들의 프로세스를 처리하는데에 있어 시간적 차이가 발생되면서, 결국 각각의 스레드에서 병렬처리의 시간이 달라지므로 인해 병렬처리의 효율성이 떨어질 수 있다. 즉, 각각의 스레드에서 계산처리되는 소요시간이 차이가 발생하면서 계산처리가 먼저 끝나서 기다리는 스레드가 발생되는 문제가 야기될 수 있다.Therefore, if the process of entity that calculates Jacobian where such temporal difference occurs is simply distributed equally to each thread and parallelized by each thread, the time difference occurs when the constraints process the processes of other entities. As a result, the parallel processing time is different for each thread, which can reduce the efficiency of parallel processing. That is, as the time required for the calculation process in each thread is different, a problem may occur that a waiting thread is generated after the calculation process is finished first.

이를 개선하고자, 각각의 엔터티들의 구속조건의 차이를 감안하여 각각의 스레드에서 계산되는 프로세스들의 시간적인 갭을 최소화하기 위한 구성이 추가될 수 있다. To improve this, a configuration may be added to minimize the time gap of processes computed in each thread in view of the difference in constraint of each entity.

즉, 자코비안을 계산하기 위해 다물체 동역학 시스템을 이루는 모든 엔터티들에 대한 각각의 프로세스의 소요시간을 미리 연산하는 단계를 포함하도록 하며, 이러한 각기 다른 소요시간을 갖는 엔터티별 프로세스가 특정 스레드로 배분이 될지에 대한 정보를 가지도록 구성한다.In other words, in order to calculate Jacobian, it includes a step of precomputing the time required for each process for all the entities forming the multibody dynamics system, and the process for each entity having such different time is allocated to a specific thread. Configure to have information about whether

이를 위해, 특정 스레드 P1, P2, P3 에 분배되기 위하여 각각의 엔터티별 프로세스에는 마찬가지로 고유의 스레드번호(thread id), P1, P2, P3를 가지도록 구성하여, 각각의 엔터티별 프로세스가 각자 배분된 스레드로 가서 처리 되도록 구성한다.To this end, in order to be distributed to specific threads P1, P2, and P3, each entity-specific process is configured to have its own thread id, P1, P2, and P3, so that processes for each entity are individually allocated. Go to the thread and configure it to process.

즉, 엔터티별 프로세스의 연산시간을 통해 다수의 스레드의 각각의 스레드에 서 처리되는 엔터티별 프로세스들의 계산소요시간을 거의 동일하게 되도록 배분함으로써, 결국 병렬처리방식의 효율성을 극대화할 수 있어 각각의 스레드에서 계산처리되는 소요시간이 차이가 발생하면서 계산처리가 먼저 끝나서 기다리는 스레드가 발생되는 문제가 방지할 수 있어 다물체 동역학 시스템의 해석속도를 크게 단축할 수 있는 효과가 있다.That is, by allocating the computational time required by the process of each entity processed in each thread of a plurality of threads through the operation time of the process per entity, the efficiency of parallel processing can be maximized. As the time required for the calculation process is different, the problem that the waiting thread is generated after the calculation process is finished first can be prevented, which greatly reduces the analysis speed of the multi-body dynamics system.

도 6a, 6b는 본 발명의 다물체 동역학 시스템의 분해방법과 분해된 시스템 단위로 프로세스를 처리하기 위한 병렬처리방법을 간략화하여 나타낸 다이어그램이다.6A and 6B are simplified diagrams illustrating a decomposition method of a multibody dynamics system and a parallel processing method for processing a process in a decomposed system unit.

보다 자세하게 설명하면, 본 발명의 다물체 동역학 시스템의 수치분해화(numerical factorize)하는 단계(S2), 다물체 동역학 시스템의 솔루션을 구하는 백추출(back-substituion)단계(S3)에서 병렬처리할 수 있도록 시스템을 분해하고 병렬처리를 하는 방법을 나타낸 상태도로서, 도시된 바와 같이 분해된 다물체 동역 학 시스템은 3번, 2번, 1번으로 분해하여 단계별로 병렬처리할 수 있다.In more detail, in the step S2 of numerical multiplication of the multibody dynamics system of the present invention, the back-substituion step S3 of obtaining a solution of the multibody dynamics system may be performed in parallel. As shown in the figure, a multibody dynamics system can be decomposed into 3, 2, and 1 and parallelized in steps.

도 6a는 본 발명의 다물체 동역학 시스템을 분해하는 방법을 간략화한 다이어그램으로서, 도시된 바와 같이 다수의 강체와 상기 강체들을 연결하는 힘, 접촉, 조인트 등을 나타내는 연결요소, 말하자면 다수의 엔터티들로 구성된 강체 연결정보(Rigid- Body connectivity information)를 갖는 다물체 동역학 시스템을 병렬처리할 수 있도록 분해하는 방법을 나타내고 있다.FIG. 6A is a simplified diagram of a method for decomposing a multibody dynamics system of the present invention, with a plurality of rigid bodies and connecting elements representing the forces, contacts, joints, etc. connecting the rigid bodies as shown, ie a plurality of entities. A method of decomposing a multibody dynamics system with rigid-body connectivity information for parallel processing is shown.

도 6b는 분해된 시스템을 요소별로 프로세스를 병렬처리하기 위한 방법을 도시한 다이어그램으로서, 도시된 바처럼 중앙처리장치에서 스레드를 P1, P2로 두 개 생성하도록 한다면, 생성된 스레드 P1, P2로 3번, 2번, 1번의 프로세스를 병렬처리한다.FIG. 6B is a diagram illustrating a method for parallelizing a disassembled system process by element. If the CPU generates two threads P1 and P2 as shown in FIG. Parallelize processes one, two, and one.

먼저, 3번들을 소거하여서 스레드 P1, P2에 분배하여 각각을 병렬처리하게 한 후에, 2번들을 소거하여 P1, P2에 분배하여 각각을 병렬처리하고, 마지막으로 1번을 P1, P2에 분배하도록 병렬처리방법을 사용함으로써 처리속도를 크게 향상할 수 있다.First, erase three times and distribute them to threads P1 and P2 so that they are processed in parallel, and then erase the second times and distribute them to P1 and P2 to process them in parallel, and finally, distribute one time to P1 and P2. By using the parallel processing method, the processing speed can be greatly improved.

다만, 3번과 2번 및 1번의 각각의 단계의 프로세스를 처리시에 공유하는 부분이 있는 경우, 즉, 스레드간에 메모리를 공유하여 서로 영향을 주는 경우에는 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계가 필요하다.However, when there is a part that shares the processes of steps 3, 2, and 1 at the time of processing, that is, when the memory is shared between threads and affects each other, the thread processing is synchronized for sequential processing. A step is necessary.

즉, 3번들을 소거하는 과정에서 2번과 1번과 공유하는 부분, 마찬가지로 2번들을 소거하는 과정에서 1번과 공유하는 과정에서는 메모리를 공유하는 경우에, 스레드간에 동시처리를 방지하는 단계, 말하자면 스레드 접근을 제한하는 동기식 단 계를 포함하게 된다.That is, when the memory is shared in the process of sharing the number 2 and 1 in the process of erasing 3 times, in the process of sharing the number 1 in the process of erasing 2 times, preventing simultaneous processing between threads; In other words, it includes a synchronous step that restricts thread access.

이를 위해, 다른 스레드가 메모리를 공유하는 경우에는 스레드간에 처리순서를 정해야 하며, 예를 들면 3번들을 소거할 때에 1번과 2번과 공유하는 부분에 대해서는 공유되는 부분의 메모리에 먼저 접근한 스레드를 제외한 모든 스레드에 대해서 해당 메모리의 접근을 금지하도록 구성하면서 병렬처리를 수행하도록 한다.For this purpose, when other threads share memory, the processing order must be set between threads. For example, when erasing 3 times, the thread that accesses the memory of the shared part first for the part shared with 1 and 2 times. Parallel processing should be performed while configuring to prohibit access to the memory for all threads except.

보다 자세하게는, 이러한 동기화하는 방식으로 Mutex 함수 등을 이용할 수 있으며, 스레드의 생성과 소멸에 대해서는 windows 함수나 OpenMP 등을 통해 구성할 수 있다.More specifically, the mutex function can be used as such a synchronization method, and the creation and destruction of threads can be configured through the windows function or OpenMP.

마지막으로, 상기의 단계를 통해 해석된 솔루션를 업데이트하여 다물체 시스템 동역학 해석의 솔루션의 정확도를 업데이트 하게 된다.Finally, the solution solved through the above steps is updated to update the accuracy of the solution of the multibody system dynamics analysis.

이 과정은 상기의 자코비안과 레지듀어를 구할 때와 마찬가지로 엔터티별 프로세스간에 공유하는 메모리가 없기 때문에 공유하는 메모리에 대한 어떠한 작업도 필요하지 않고 엔터티별 프로세스를 스레드를 생성하여 분배하면서 병렬처리하면서 업데이트를 수행한다.This process does not require any shared memory between entity-specific processes, as in the case of obtaining Jacobian and Residue, and does not require any work on shared memory. To perform.

또한, 이상 설명한 본 발명의 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법은 컴퓨터에서 구동할 수 있는 매개장치에 기록되어 컴퓨터를 통해 다물체 동역학 시스템을 해석하는데 활용될 수 있을 것이다.In addition, the analysis method of the multi-body dynamics system having the multiple degree of freedom to which the parallel processing processing of the present invention described above is applied may be recorded in a computer-operated intermediate apparatus and used to analyze the multi-body dynamics system through a computer. .

특히, 상기 컴퓨터의 중앙처리장치(CPU)가 다중코어를 갖는 경우에는 보다 신속한 처리를 가능하게 할 것이다.In particular, if the central processing unit (CPU) of the computer has multiple cores, it will enable faster processing.

이상 본 발명의 상세한 설명에서는 구체적인 실시예에 관해서 설명하였으나, 본 발명은 이에 한정되지 않고 본 발명의 기술적 사상의 범위에서 벗어나지 않는 한도내에서 여러가지 변형이 가능함은 당해 분야에서 통상의 지식을 가진 자에게 있어서 자명하다 할 것이다. In the above detailed description of the present invention, specific embodiments have been described, but the present invention is not limited thereto, and various modifications may be made without departing from the scope of the technical idea of the present invention to those skilled in the art. Will be self explanatory.

도 1은 종래기술에 따른 다물체 동역학 시스템의 해석과정을 나타내는 흐름도이다.1 is a flow chart showing an analysis process of a multibody dynamics system according to the prior art.

도 2는 본 발명의 다물체 동역학 시스템을 해석과정을 간략화한 흐름도이다.Figure 2 is a simplified flow diagram of the analysis process of the multi-body dynamics system of the present invention.

도 3은 본 발명의 제1 실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 엔터티들 단위로 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도이다.3 is a flowchart illustrating a method of allocating a process to threads for parallel processing in units of entities in order to linearize a multibody dynamics system according to a first embodiment of the present invention.

도 4는 본 발명의 제1 실시예에 따른 다물체 동역학 시스템의 선형화하기 위하여 엔터티들 단위로 프로세스를 병렬처리를 위하여 스레드에 배분하는 방법을 도시한 흐름도이다.4 is a flowchart illustrating a method of allocating a process to threads for parallel processing in units of entities in order to linearize a multibody dynamics system according to a first embodiment of the present invention.

도 5는 본 발명의 다물체 동역학 시스템의 바디와 조인트를 벡터로 표시한 상태도이다.5 is a state diagram in which the body and the joint of the multi-body dynamics system of the present invention are represented by a vector.

도 6a, 6b는 본 발명의 다물체 동역학 시스템의 분해방법과 분해된 시스템 단위로 프로세스를 처리하기 위한 병렬처리방법을 간략화하여 나타낸 다이어그램이다.6A and 6B are simplified diagrams illustrating a decomposition method of a multibody dynamics system and a parallel processing method for processing a process in a decomposed system unit.

Claims (8)

삭제delete 삭제delete 삭제delete 삭제delete 다자유도를 가지며 다수의 엔터티들이 연결되어 있는 다물체 동역학 시스템의 해석방법에 있어서,In the analysis method of a multibody dynamics system having multiple degrees of freedom and a plurality of entities connected to each other, (a) 상기 다물체 동역학 시스템의 비선형 운동방정식을 뉴턴-랩손 메소드를 이용하여 선형화하기 위해 자코비안을 계산하는 경우, 상기 엔터티별로 자코비안을 계산하는 프로세스들의 소요시간을 각각 연산하고, 상기 엔터티별로 자코비안을 계산하는 프로세스들이 특정 스레드에 분배되도록 각각 고유 스레드 아이디를 부여하고, 상기 고유 스레드 아이디가 부여된 엔터티별 프로세스들을 상기 고유 스레드 아이디에 따라 상기 스레드에 분배하여 병렬처리함으로써 자코비안을 계산하여 다물체 동역학 시스템의 비선형 운동방정식을 선형화하는 단계;(a) In the case of calculating Jacobian to linearize the nonlinear equation of motion of the multibody dynamics system using the Newton-Lapson method, the time required for the processes of calculating Jacobian for each entity is calculated, and for each entity. By assigning a unique thread ID so that processes calculating Jacobian are distributed to a specific thread, and calculating the Jacobian by distributing the processes for each entity to which the unique thread ID is assigned to the thread according to the unique thread ID and performing parallel processing Linearizing the nonlinear equations of motion of the multibody dynamics system; (b) 상기 (a)단계를 통해 다물체 동역학 시스템의 비선형 운동방정식을 선형화한 후에, 상기 자코비안을 삼각행렬분해법을 통해 상부삼각행렬과 하부삼각행렬의 곱으로 변환하기 위하여, 상기 선형화된 시스템의 운동방정식을 분해하여 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 시스템의 운동방정식의 자코비안을 삼각행렬분해법에 의해 상부삼각행렬과 하부삼각행렬의 곱으로 변환하는 단계;(b) linearizing the nonlinear equations of motion of the multibody dynamics system in step (a), and then converting the Jacobian to the product of the upper and lower triangles by triangular matrix decomposition. Decompose the kinematic equation of and divide the processes of each decomposed part into multiple threads created by the central processing unit, and convert the Jacobian of the kinematic equation of the system into the product of the upper triangular matrix and the lower triangular matrix by triangular matrix decomposition. Doing; (c) 상기 (b)단계의 삼각행렬분해법을 통해 상기 변환된 선형화된 운동 방정식을 구성한 후에, 상기 변환된 선형화된 운동 방정식의 솔루션을 도출하기 위하여, 상기 삼각행렬분해법을 통해 변환된 선형화된 운동 방정식을 분해하여 각각의 분해된 부분의 프로세스들을 중앙처리장치에서 생성된 다수의 스레드에 분배하여 상기 삼각행렬분해법을 통해 변환된 선형화된 시스템의 운동방정식의 솔루션을 도출하는 단계;를 포함하여 구성된 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 시스템의 동역학 해석방법.(c) after constructing the transformed linearized equation of motion through the triangular matrix decomposition method of step (b), in order to derive a solution of the transformed linearized equation of motion, the linearized motion transformed through the triangular matrix decomposition method Decomposing the equations and distributing the processes of each decomposed portion to a plurality of threads generated in the central processing unit to derive a solution of the equation of motion of the linearized system transformed by the triangular matrix decomposition. Dynamic Analysis Method of Multibody Systems with Multiple Degrees of Freedom. 제 1항에 있어서, 상기 (b)단계 및 (c)단계는,According to claim 1, wherein step (b) and (c), 상기 다수의 스레드가 병렬처리하는 과정에서 메모리를 공유하여 서로 영향을 주는 경우에 순차적인 처리를 위하여 스레드 처리를 동기화하는 단계를 더 포함하는 것을 특징으로 병렬처리 프로세싱을 적용한 다자유도를 갖는 다물체 동역학 시스템의 해석방법.Synchronizing thread processing for sequential processing when the plurality of threads share a memory in the process of parallel processing and influence each other. The multi-body dynamics having the multiple degree of freedom to which parallel processing is applied is further included. How to interpret the system. 삭제delete 삭제delete
KR1020080078469A 2008-08-11 2008-08-11 The analysis method of the multibody dynamics system using parallel processing KR100876642B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080078469A KR100876642B1 (en) 2008-08-11 2008-08-11 The analysis method of the multibody dynamics system using parallel processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080078469A KR100876642B1 (en) 2008-08-11 2008-08-11 The analysis method of the multibody dynamics system using parallel processing

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020080099780A Division KR100901520B1 (en) 2008-10-10 2008-10-10 The method of parallel processing for reducing running time gap between multi-thread occurred for difference of required time of jacobian calculating process per entity of multibody dynamics system

Publications (1)

Publication Number Publication Date
KR100876642B1 true KR100876642B1 (en) 2009-01-07

Family

ID=40482086

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080078469A KR100876642B1 (en) 2008-08-11 2008-08-11 The analysis method of the multibody dynamics system using parallel processing

Country Status (1)

Country Link
KR (1) KR100876642B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101291597B1 (en) 2011-10-20 2013-08-01 버추얼모션(주) The analysis method of the multibody dynamics system with contact entity

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003345441A (en) * 2002-05-29 2003-12-05 Murata Mach Ltd Control system of parallel mechanism
KR20040016863A (en) * 2001-05-14 2004-02-25 가부시끼가이샤 얼라이드 엔지니어링 Parallel infinite element method calculation system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040016863A (en) * 2001-05-14 2004-02-25 가부시끼가이샤 얼라이드 엔지니어링 Parallel infinite element method calculation system
JP2003345441A (en) * 2002-05-29 2003-12-05 Murata Mach Ltd Control system of parallel mechanism

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
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 (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101291597B1 (en) 2011-10-20 2013-08-01 버추얼모션(주) The analysis method of the multibody dynamics system with contact entity

Similar Documents

Publication Publication Date Title
Kazakis et al. Topology optimization aided structural design: Interpretation, computational aspects and 3D printing
Coelho et al. Parallel computing techniques applied to the simultaneous design of structure and material
Wang et al. “Seen Is Solution” a CAD/CAE integrated parallel reanalysis design system
Ruiz-Gironés et al. Simultaneous untangling and smoothing of quadrilateral and hexahedral meshes using an object-oriented framework
Clay et al. GPU acceleration of a petascale application for turbulent mixing at high Schmidt number using OpenMP 4.5
Hinojosa et al. Domain decomposition methods with nonlinear localization for the buckling and post-buckling analyses of large structures
Rakić et al. MPI–CUDA parallelization of a finite-strip program for geometric nonlinear analysis: A hybrid approach
Fazanaro et al. Numerical characterization of nonlinear dynamical systems using parallel computing: The role of GPUs approach
D’Amato et al. A CPU–GPU framework for optimizing the quality of large meshes
García et al. Development of the automatic void generation module in GEOUNED conversion tool
He et al. A multiple-GPU based parallel independent coefficient reanalysis method and applications for vehicle design
Sokolinsky BSF-skeleton: A template for parallelization of iterative numerical algorithms on cluster computing systems
Sanfui et al. A three‐stage graphics processing unit‐based finite element analyses matrix generation strategy for unstructured meshes
KR100901520B1 (en) The method of parallel processing for reducing running time gap between multi-thread occurred for difference of required time of jacobian calculating process per entity of multibody dynamics system
Cardoso et al. Generating SU (Nc) pure gauge lattice QCD configurations on GPUs with CUDA
Glendenning et al. Parameter space visualization for large-scale datasets using parallel coordinate plots
KR100876642B1 (en) The analysis method of the multibody dynamics system using parallel processing
Gouvêa de Barros et al. Simulations of Complex and Microscopic Models of Cardiac Electrophysiology Powered by Multi‐GPU Platforms
Jasienski et al. A computational implementation of Vector-based 3D Graphic Statics (VGS) for interactive and real-time structural design
Gaustad et al. A scientific data processing framework for time series NetCDF data
Anacleto et al. An object-oriented tridimensional self-regular boundary element method implementation
Weatherill et al. Aerospace simulations on parallel computers using unstructured grids
Sarje et al. Accelerating pairwise computations on cell processors
Kusiak Interface structure matrix for analysis of products and processes
Kaveh et al. Efficient finite element analysis by graph-theoretical force method; triangular and rectangular plate bending elements

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
A107 Divisional application of patent
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