22
1 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토 Rajiv Venkatasubramanian Application Specialist Altair Engineering Irvine, USA Junji Saiki VP – OptiStruct Program Altair Engineering Irvine, USA Hongwei Zhou Director of software Development Altair Engineering Irvine, USA Altair OptiStruct는 기본적이거나 복잡한 엔지니어링 및 산업용 어플리케이션을 위한 강력한 시뮬 레이션 솔루션을 제공합니다. 최근에는 해석 모델의 복잡성이 증가되어 고도의 연산 집약적인 계 산 과정을 요하고 있어 강력한 컴퓨팅 리소스를 필요로 합니다. OptiStruct는 고성능 컴퓨팅(HPC) 아키텍처 기반의 기계 및 클러스터를 효율적으로 활용하여 해석 및 최적화를 위한 고급의 정교한 시뮬레이션을 수행할 수 있는 강력한 기능을 사용자에게 제공합니다. 이 논문에서는 SPMD(SMP, DMP, GPU)와 같은 강력한 방법을 사용하여 다중 CPU 및 NVIDIA GPU와 함께 사용이 가능한 프 로세싱, 메모리 및 디스크 리소스의 효율성을 최대화하고 성능을 향상시키기 위한 OptiStruct 해 석 방법에 대해 기술되었습니다. 키워드 – HPC, SPMD, SMP, MPI, DDM, MMO, FSO, Scalability

다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

  • Upload
    others

  • View
    4

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

1

다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토

Rajiv Venkatasubramanian

Application Specialist

Altair Engineering

Irvine, USA

Junji Saiki

VP – OptiStruct Program

Altair Engineering

Irvine, USA

Hongwei Zhou

Director of software Development

Altair Engineering

Irvine, USA

Altair OptiStruct는 기본적이거나 복잡한 엔지니어링 및 산업용 어플리케이션을 위한 강력한 시뮬

레이션 솔루션을 제공합니다. 최근에는 해석 모델의 복잡성이 증가되어 고도의 연산 집약적인 계

산 과정을 요하고 있어 강력한 컴퓨팅 리소스를 필요로 합니다. OptiStruct는 고성능 컴퓨팅(HPC)

아키텍처 기반의 기계 및 클러스터를 효율적으로 활용하여 해석 및 최적화를 위한 고급의 정교한

시뮬레이션을 수행할 수 있는 강력한 기능을 사용자에게 제공합니다. 이 논문에서는 SPMD(SMP,

DMP, GPU)와 같은 강력한 방법을 사용하여 다중 CPU 및 NVIDIA GPU와 함께 사용이 가능한 프

로세싱, 메모리 및 디스크 리소스의 효율성을 최대화하고 성능을 향상시키기 위한 OptiStruct 해

석 방법에 대해 기술되었습니다.

키워드 – HPC, SPMD, SMP, MPI, DDM, MMO, FSO, Scalability

Page 2: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

2

- 목차 -

0

1 소개 �������������������������������������������������������������������������������������������������������������������

2 OptiStruct 병렬연산의 종류 ���������������������������������������������������������������������������������

3 SMP (shared Memory Parallelization) ���������������������������������������������������������������������

3.1 OptiStruct SMP 실행 ����������������������������������������������������������������������������������

3.2 OptiStruct SMP를 지원하는 해석 종류 ���������������������������������������������������������

4 DMP (Distributed Memory Parallelization) ��������������������������������������������������������������

4.1 OptiStruct DMP 실행 ���������������������������������������������������������������������������������

4.2 OptiStruct DMP를 지원하는 해석 종류 ��������������������������������������������������������

5 GPU(Graphics Processing Unit) ������������������������������������������������������������������������������

5.1 OptiStruct GPU 실행 ����������������������������������������������������������������������������������

5.2 OptiStruct GPU를 지원하는 해석 종류 ���������������������������������������������������������

6 하이브리드 병렬 처리 �����������������������������������������������������������������������������������������

6.1 SMP + DMP �����������������������������������������������������������������������������������������������

6.2 SMP + GPU ������������������������������������������������������������������������������������������������

7 OptiStruct 확장성 극대화를 위한 베스트 솔루션 ���������������������������������������������������

7.1 프로세스/스레드 개수 제안 �������������������������������������������������������������������������

7.2 메모리 사용 제안 ���������������������������������������������������������������������������������������

7.3 해석 타입에 따른 적용 방법 제안 ���������������������������������������������������������������

7.4 하드웨어 리소스 사용 방법 제안 ����������������������������������������������������������������

8 OptiStruct 확장성 사례 ���������������������������������������������������������������������������������������

8.1 모달 주파수 응답 해석 사례 �����������������������������������������������������������������������

8.2 비선형 정적 해석 사례 �������������������������������������������������������������������������������

8.3 선형 좌굴 해석 사례 ����������������������������������������������������������������������������������

8.4 선형 정적 해석 / 최적화 사례 ��������������������������������������������������������������������

9 결론 �������������������������������������������������������������������������������������������������������������������

3

3

3

4

4

5

5

7

9

9

10

10

10

11

11

12

12

13

14

14

14

16

17

18

22

Page 3: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

3

1 소개

Altair OptiStruct는 정적 및 동적 하중을 받는 상황에서 선형 및 비선형 구조문제에 대한 산

업계에서 그 효율성이 입증된 최신의 구조해석을 위한 솔루션입니다. OptiStruct는 구조 설계

및 최적화를 위한 CAE 분야를 선도하고 있는 솔루션으로 설계자나 해석 엔지니어가 혁식적

이면서 더욱 더 가볍고 구조적으로 효율적인 설계를 신속하게 개발할 수 있도록 지원하고 있

습니다. 또한 OptiStruct는 파워트레인 및 항공 우주 분야를 위한 진동 및 소음 등의 분석을

위한 기능을 제공합니다.

Altair OptiStruc는 다양한 영역에서 여러 해석 및 최적화 해석을 위한 진보된 기능을 제공합

니다. 이 논문은 사용 가능한 하드웨어의 구성을 활용하여 선형 정적, 비선형 정적, 고유치,

좌굴 및 동적 분석을 비롯한 다양한 솔루션에 대해 효율적인 확장성을 가질 수 있는 방법을

사용자에게 소개하고자 합니다. 모델에 적용할 수 있는 기능에 대한 정보와 함께 CPU 및

GPU를 사용하는 OptiStruct의 다양한 확장성 및 기술에 대한 소개가 제공됩니다. 예제 모델

을 통한 해석의 확장성과 일부 하드웨어의 사양에 대한 정보도 제공됩니다.

2 OptiStruct 병렬연산의 종류

OptiStruct는 병렬연산을 위한 2가지 종류의 옵션이 제공됩니다. DDM(Domain Decom

position), MMO(Multi Model Optimization) 방법을 통한 단일 노드에서의 메모리 공유 기술인

SMP(Shared Memory Parallelization)와 다중 노드에서의 메모리 분할 기술인 DMP(Distributed

Multiprocessing) 옵션을 제공합니다. GPU(Graphics Processing Units)는 이제 큰 모델의 선형

정적해석과 최적화 및 고유치 해석에 활용될 수 있습니다. 다음 섹션은 OptiStruct의 확장성

을 위한 다양한 병렬 처리 기술에 대한 간략한 소개입니다.

3 SMP (shared Memory Parallelization)

SMP는 단일 노드에 여러 스레드를 사용하여 프로그램을 실행하는 병렬 처리 기술입니다.

SMP는 일반적으로 단일 메모리 공간을 공유하는 프로그램을 포함하며 프로세서를 통해 다

른 경로에서 실행됩니다. 스레드로 알려진 경량 프로세스는 보다 빠른 실행을 위해 프로그램

구성요소를 병렬화 하는데 사용됩니다.

Page 4: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

4

OptiStruct의 SMP 기술은 기본 설치를 통해서 사용할 수 있으며, 3.1 섹션에서 언급한 방법으

로 사용할 수 있습니다.

3.1 OptiStruct SMP 실행

Altair OptiStruct 스크립트는 해석 실행에 필요한 파일을 선택하고 필요한 모든 호나경

변수를 동시에 설정합니다. SMP 실행은 Altair HyperWorks Run Manager GUI 또는

OptiStruct 스크립트를 통한 명령행에서 “-nt” 옵션을 사용하여 활성화할 수 있습니다.

OptiStruct SMP는 일반적으로 1개 또는 여러 개의 프로세스가 있는 단일 노드 워크스

테이션에서 여러 코어를 사용하여 해석을 수행할 때 효과적입니다.

n Linux 시스템에서 OptiStruct SMP 실행 :

$ALTAIR_HOME / scripts / optistruct file.fem -nt 4

n Windows 시스템에서 OptiStruct SMP 실행 :

$ALTAIR_HOME / hwsolvers / scripts / optistrct.bat file.fem -nt 4

“-nt” 옵션은 스레드의 개수를 정의합니다. 위의 예에서 각 모델은 4개의 스레드에서

실행됩니다.

3.2 OptiStruct SMP를 지원하는 해석 종류

OptiStruct SMP는 일반적으로 모든 해석 및 최적화 타입을 지원합니다.

Page 5: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

5

4 DMP (Distributed Memory Parallelization)

DMP는 병렬화를 위해 MPI 라고 불리는 프로세스를 사용합니다. 각 MPI 프로세스는 자체 메

모리 공간을 가지고 있으며, MPI(Message Passing Interfaces)를 통해 다른 프로세스와 통신합

니다. 모든 MPI 프로세스에 분산된 메모리 공간이 계산을 처리하기에 충분한 경우에 효율적

인 DMP 실행이 가능합니다. 그렇지 않으면 SMP 기반 병렬 처리를 하는 것이 더 효율적일

수 있습니다.

OptiStruct DMP는 SMP와 동일하게 기본 설치 이후에 사용할 수 있습니다.

4.1 OptiStruct DMP 실행

Altair OptiStruct 스크립트는 해석 실행에 필요한 실행 파일을 선택하고 필요한 모든

환경 변수를 동시에 설정합니다. DMP 실행은 Altair HyperWorks Run Manager GUI 또

는 OptiStruct 스크립트를 통한 명령행에서 “-np” 옵션을 사용하여 활성화할 수 있습니

다.

OptiStruct DMP는 다중 노드 워크 스테이션 또는 다중 프로세서가 있는 단일 노드 워

크 스테이션에서 모델을 실행할 때 분산된 메모리 요구를 만족하는 충분한 메모리가

설치되어 있는 경우에 일반적으로 효과적입니다. OptiStruct에는 3가지 방법의 DMP 방

법이 있습니다.

n DDM(Domain Decomposition Method)은 OptiStruct의 기본적인 DMP 방법입니다.

다중 병렬 처리가 수행되며, 일반적인 여러 범위의 해석과 최적화 유형에서 지원

됩니다. MPI는 여러 로드/서브케이스 간(레벨1,LDM) 또는 여러 기하학 도메인 사이

(레벨2, DDM) 모두가 사용됩니다.

Page 6: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

6

n MMO(Multi-Model Optimization)는 단일 최적화 실행에서 여러 모델을 동시에 최

적화해야 하는 상황에서 사용할 수 있습니다. MPI 기반 통신은 최적화와 관련된

모델 간에 정보를 전송하기 위해 구현됩니다.

n FSO(Failsafe Topology Optimization)는 위상최적화 시에 구조의 단절된 상태에서

타당한 결과를 얻을 수 있도록 합니다. FOS는 구조를 손상 영역으로 나누고 손상

영역 수와 동일한 여러 모델을 생성합니다. 각 모델은 원래 모델에서 하나의 파손

영역을 제외하면 동일합니다. MPI 통신은 이러한 모델을 동시에 해석을 수행하고

두 모델 간에 서로 정보를 공유합니다.

Page 7: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

7

DDM이 디폴트이며, 예제는 일반적인 DDM 해석이 어떻게 수행되는지를 보여줍니

다. MMO와 FSO는 비슷하게 구현되며, 여기서 “-mmo” 또는 “-fso” 옵션을 각각 사

용해야 합니다. 추가 세부 사항은 OptiStruct 사용자 가이드를 참고하십시오.

n Linux 시스템에서 OptiStruct DMP 실행 :

$ALTAIR_HOME / scripts / optistruct file.fem -np 4 -ddm

n Windows 시스템에서 OptiStruct DMP 실행 :

$ALTAIR_HOME / hwsolvers / scripts / optistrct.bat file.fem -np 4 ddm

“-np” 옵션에는 솔루션에서 사용되는 MPI 프로세스의 개수를 정의해야 합니다. 위의

예에서 각 모델은 4개의 MPI 프로세스를 생성하며 각 프로세스는 메모리를 분할하여

사용합니다.

4.2 OptiStruct DMP를 지원하는 해석 종류

OptiStruct DMP의 지원은 특정 모델(DDM, MMO, FSO)에 대해 수행되는 DMP 방법에

따라 차이가 있습니다. 다음 장에서는 각 해석 타입에 따른 지원과 관련된 정보를 제

공합니다. 자세한 내용은 OptiStruct 사용자 가이드를 참고하십시오.

n DDM은 대부분의 해석과 최적화 타입을 지원합니다. 서브케이스 기반(레벨1) 및

기하 파티셔닝(레벨2)에 따라 다릅니다. OptiStrcut는 솔루션을 위한병렬 처리 수준

을 자동으로 결정하고 그에 따른 적절한 정보가 .out 파일에 출력됩니다. PARAM,

DDMNGRPS 또는 -ddmngrps 해석 옵션을 사용하여 수동으로 제어할 수 있습니다.

모델에 대해 DDM 레벨1이 지원되지 않으면 OptiStruct가 .out 파일에 메시지를

추가하고, 자동으로 DDM 레벨2로 전환합니다. 그러나 DDM 실행이 요청되었지만,

Page 8: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

8

2가지 타입의 DDM이 지원하지 않는 경우에는 에러 메세지를 출력합니다.

표1. DDM 레벨1 지원 범위

DDM 레벨1 서브케이스 기반 병렬처리 DDM (레벨1)

가능 불가능

선형 정적 해석 2개 이상의 정적 구속조건이 존

재하는 경우a

반복 솔버는 병렬연산이 불

가능, 직접 솔버만 지원.

좌굴 해석 2개 이상의 서브케이스가 존재하

는 경우a -

직접/모달

주파수 응답

모달 주파수 응답의 구속조건이

2개 이상인 경우, 고유치 계산

직접/모달 주파수 응답의 가진

주파수b

-

글로벌 서치

(DGLOBAL) 시작 포인트를 병렬처리 -

MMO 마스터 파일에 나열된 모델은 지

정된 “-np” 개수만큼 병렬처리 레벨1 DDM 불가능

a 최적화 해석의 민감도 병렬처리 지원함

b 최적화 해석의 병렬처리 지원하지 않음

표2. DDM 레벨2 지원 범위

기하 파티션 기반 병렬 처리 DDM (레벨2)

선형 정적 해석,

최적화 비선형 정적 해석 직접 주파수 응답 해석

노말 모드(Lanczos)c 선형 좌굴 해석, 최적화 모달 주파수 응답(Lanczos)d

프리 로딩

+모달 주파수 응답

(AMSES/AMLS)

직접 주파수응답(음장모델) 직접 주파수 응답(MFLUID)

비선형 과도 해석 직접 선형 과도응답 해석 모달 선형 과도 응답 해석

구조-유체 연성해석 피로 해석 (선형정적,

모달 과도 기반) Periodic 구속 조건(PERBC)

c 고유치 해석을 위한 DDM 레벨2는 Lanczos만 지원

d 모달 주파수 응답은 DDM 레벨2를 지원하지 않음

표3. DDM 레벨2를 지원하지 않는 경우

Page 9: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

9

기하 파티션 기반 병렬 처리 DDM (레벨2)를 지원하지 않는 경우

열 전달 해석 CMS 수퍼 엘레멘트 생성 AMLS/AMSES 고유치 해석

반복 솔버(PCG) CDS 수퍼 엘리멘트 생성 모달 복소 고유치 해석

FSO 레벨셋 최적화 기법 B2B (EXPDYN)

n MMO는 일반적으로 모든 최적화 유형에 지원됩니다. ESL-B2B 및 RADOPT 최적화

를 통한 RADIOSS 최적화도 지원합니다. 복합재 제작 제한조건도 지원합니다.

MotionSolve(OS-MBD)가 포함된 다물체 동역학 솔루션은 지원되지 않습니다.

n FSO는 위상최적화 중에 쉘 및 솔리드 요소를 지원합니다. DDM과 함께 지원하지

는 않습니다. 또한 MotionSolve(OS-MBD) 및 RADIOSS(EXPDYN)을 통한 동적 분석

이 포함된 문제에서는 지원되지 않습니다.

5 GPU(Graphics Processing Unit)

CPU는 계산 집약적인 엔지니어링 응용 프로그램의 성능을 향상시키는데 사용할 수 있습니다.

OptiStruct는 계산 집약적인 직접(direct) 솔버와 반복(iterative) 솔버의 대부분에 GPU를 사용

할 수 있으며, CPU 코어와 GPU 간에 통신을 통하여 동시에 솔루션에 적용됩니다.

OptiStruct GPU는 기본 설치 이후에 사용할 수 있으며, 다음 5.1 섹션을 참고하십시오.

5.1 OptiStruct GPU 실행

Altair OptiStruct 스크립트는 해석 실행을 위해 필요한 GPU 실행 파일을 선택하고 필

Page 10: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

10

요한 모든 환경 변수를 동시에 설정합니다. GPU 실행은 Altair HyperWorks Run

Manager GUI나 OptiStrcut 스 크립트를 통해 명령행에서 “-gpu” 옵션을 사용하여 활성

화 할 수 있습니다.

OptiStruct GPU는 단일 CPU 워크 스테이션에서 단일 또는 다중 GPU를 사용하여 해석

을 실행할 때 일반적으로 효과적입니다.

n Linux 시스템에서 OptiStruct GPU 실행 :

$ALTAIR_HOME / scripts / optistruct file.fem -gpu -ngpu 2

n Windows 시스템에서 OptiStruct GPU 실행 :

$ALTAIR_HOME / hwsolvers / scripts / optistrct.bat file.fem -gpu -ngpu 2

“-ngpu” 해석 옵션은 선택 사항입니다. 설정 값으로 GPU 개수를 정의합니다. 단일

GPU 실행이 기본이며, -gpu 실행 옵션은 필수로 사용됩니다. 위 예에서 각 모델은 2개

의 GPU 카드를 사용하여 해석이 수행됩니다.

5.2 OptiStruct GPU를 지원하는 해석 종류

OptiStruct GPU는 선형 정적 해석 및 최적화, AMSES 및 Lanczos 고유치 계산을 지원합

니다. 직접(BC)/반복(PCG) 솔버가 모두 지원됩니다. GPU는 DMP와 함께 지원되지 않습

니다. 단일 및 다중 GPU는 PCG 솔버에 한해, OptiStruct 2019.0 버전부터 제공됩니다.

6 하이브리드 병렬 처리

실제 문제의 해결을 위해 OptiStruct에서 사용할 수 있는 강력한 확장성 구현인 SMP, DMP

및 GPU를 기반으로 아래와 같이 하이브리드 병렬 기술을 사용할 수 있습니다.

6.1 SMP + DMP

SMP와 DMP를 결합하여 사용하는 것은 해석 시간을 줄일 수 있는 매우 효율적인 방

법 중 하나입니다. 모든 MPI 프로세스를 위해 충분한 메모리를 사용할 수 있다면 병렬

로 “-np”, “-nt”를 지정하여 하이브리드 병렬 처리를 실행할 수 있습니다. -nt * -np의 결

과는 시스템/클러스터의 총 코어수를 초과할 수 없습니다.

Page 11: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

11

n Linux 시스템에서 OptiStruct SMP+DMP 실행 :

$ALTAIR_HOME / scripts / optistruct file.fem -np 8 -nt 4

n Windows 시스템에서 OptiStruct SMP+DMP 실행 :

$ALTAIR_HOME / hwsolvers / scripts / optistrct.bat file.fem -np 8 -nt 4

위 예에서 각 모델은 8개의 MPI 프로세스와 프로세스 당 8개의 스레드를 사용하여 총

32개의 코어를 사용하여 해석이 진행됩니다.

6.2 SMP + GPU

해석에 사용할 GPU 카드를 노드에서 사용할 수 있는 경우 SMP와 GPU를 함께 사용하

면 솔루션을 가속화 할 수 있습니다. CPU SMP에서 충분한 메모리를 사용할 수 있고

전용 GPU를 사용할 수 있는 경우에 “-gpu” 옵션을 “-nt”와 함께 사용하여 해석을 실행

할 수 있습니다.

n Linux 시스템에서 OptiStruct SMP+GPU 실행 :

$ALTAIR_HOME / scripts / optistruct file.fem -nt 16 -gpu

n Windows 시스템에서 OptiStruct SMP+GPU 실행 :

$ALTAIR_HOME / hwsolvers / scripts / optistrct.bat file.fem -nt 16 -gpu

위 예에서 각 모델은 16개의 스레드(SMP)와 GPU를 사용하여 해석을 실행하였습

니다.

7 OptiStruct 확장성 극대화를 위한 베스트 솔루션

솔루션 타입에 따라 해석 시간에 기여하는 4가지 주요 계산 분야는 아래와 같습니다.

- 솔버의 행렬 분해

Page 12: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

12

- 고유치 추출

- 주파수 응답 계산

- 해석결과의 복구 및 출력

다음 사례는 확장성이 뛰어난 해석 타입에 OptiStruct를 사용할 때 효율적인 성능을 얻기 위

한 몇 가지 지침을 제공합니다.

7.1 프로세스/스레드 개수 제안

n 솔루션 타입이 SMP 및 DMP를 모두 지원하는 경우 SMP 또는 하이브리드

SMP+DMP를 결정하는 중요한 요인 중 하나가 가용한 메모리의 크기입니다. 병렬

MPI 프로세스를 실행하려면 메모리 분할이 필수적으로 수행됩니다. 충분한 메모리

를 사용할 수 없는 경우, “-nt” 옵션을 사용하여 DMP 대신 SMP를 사용하는 것이

일반적으로 더 효율적입니다.

n OptiStruct 2018부터 “-cores” 옵션을 사용할 수 있습니다. 이 옵션은 클러스터에서

사용 가능한 총 코어의 개수만 입력하면 됩니다. 예를 들어, “-cores 32”를 입력하면

OptiStruct 실행을 위한 32개의 사용가능한 코어가 있다는 것을 알리고 OptiStruct

는 MPI 프로세스의 개수(-np 8)와 MPI 프로세스 당 스레드 수(-nt 4)를 자동으로

설정합니다.

n DMP 실행의 경우 일반적으로 주의해야 할 것은 MPI 프로세스 당 스레드 수(-nt)

를 소켓 당 코어의 개수와 동일하게 지정하거나 노드 당 MPI 프로세스의 수를 소

켓 수와 같게 설정하는 것입니다.

7.2 메모리 사용 제안

n 메모리 할당은 솔루션의 확장성을 결정하는 중요한 요소입니다. 하드웨어 고려사

항은 사용 가능한 메모리 및 디스크의 양을 제한할 수 있으므로 사용 가능한 리소

스가 효율적으로 사용되도록 조정해야 합니다. 만약 사용 가능한 메모리가 충분하

면(-check 옵션 사용) 옵션에서 core를 사용하여 “core in” 옵션을 적용하는 것이

효율적일 수 있습니다. 이렇게 하면 대부분의 솔버 계산이 메모리에서 실행되어

보다 효율적인 해석으로 이어질 수 있습니다.

n 만약 사용 가능한 메모리가 충분하지 않고 DMP로 해석을 시도하는 경우 “core in”

을 유지하면서 MPI 프로세스 수(-np)를 줄일 수 있습니다. 그렇지 않은 경우 “-

core in”을 사용하고 SMP 모드로 전환할 수도 있습니다. DMP를 실행하는 경우 여

Page 13: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

13

러 프로세스/소켓이 있는 공유 메모리 시스템에서 “-core in”을 사용하는 것이 좋습

니다. 그렇지 않으면 여러 프로세서가 시스템 I/O 리소스와 경쟁하게 되고 전체 해

석의 속도가 느려집니다. OptiStruct는 해석 메모리 요구사항이 시스템/노드가 사용

가능한 메모리 내에 있다면 사용자 입력을 요구하지 않고 대부분 자동으로 효율적

인 방법으로 메모리를 할당하여 처리할 수 있습니다. 또한 다양한 메모리 옵션 (예:

-len, -minlen, -maxlen, -uselen, -core, 등)을 사용할 수 있습니다.

7.3 해석 타입에 따른 적용 방법 제안

n SMP 실행은 일반적으로 모달 주파수 응답 분석 해석에 권장됩니다. 또한 SMP로

모달 FRF를 실행할 때 최적의 속도 향상을 위해 FASTFR 주파수 응답 해석기가 있

는 AMSES 솔버를 사용하는 것이 좋습니다. 일반적인 권장 사항은 최대 “-nt 16”까

지 사용하는 것입니다. 특정 경우에는 “-nt 32”가 속도 향상을 보이는 경우도 있습

니다.

n 직접 및 모달 주파수 응답, 선형 및 비선형 정적 및 직접 과도 응답 분석에 하이

브리드 병렬 처리(SMP+DDM)가 권장됩니다. 모달 주파수 응답 해석의 경우 일반

적으로 여러 모달 공간이 있거나 FRSTFR이 주파수 응답 해석에 사용되지 않는 경

우 DDM이 권장됩니다.

n 하이브리드 병렬 처리(SMP+GPU)는 선형 정적 해석 및 최적화에 사용할 수 있으

며 직접(BCS) 또는 반복(PCG) 솔버를 사용하여 대형 블록 구조의 계산 속도를 향

상시킵니다. OptiStruct 2019 버전 이후로 단일 GPU로 실행하기에는 너무 큰 PCG

해석에는 다중 GPU를 사용하여 해석을 수행할 수 있습니다.

n 하이브리드 병렬 처리(SMP+GPU)는 AMSES / Lanczos가 사용되고 많은 수의 모드

(일반적으로 10,000 이상)가 요구되는 블록 구조의 고유치 해석에 권장됩니다. 이

는 노말 모드 분석과 모달 주파수 응답 해석에 모두 적용할 수 있습니다.

n 고유치 분석을 위한 DDM 레벨2는 Lanczos에 대해서만 기하 파티셔닝을 기반으로

합니다. 현재 AMLS, AMSES 고유치 추출을 위해 DDM을 사용하는 것은 권장하지

않습니다(고유치 분석을 위한 다중 경계 조건이 있는 경우 DDM 레벨1은 AMLS,

AMSES 고유치 추출에 대한 몇 가지 속도 향상을 제공할 수 있음).

n 단일 경계 조건에 대해 AMLS, AMSES 고유치 추출을 사용하여 DDM을 사용할 때

솔루션의 빠른 속도 향상을 기대할 수 없습니다. 모달 주파수 응답 해석의 주파수

응답 속도 향상은 로딩 주파수가 병렬화됨에 따라 DDM 레벨 1에서 가능합니다.

n 서로 다른 경계 조건을 사용하는 좌굴 해석 및 최적화의 경우 일반적으로 다중 레

Page 14: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

14

벨 DDM+ SMP가 권장되며 DMP 또는 하이브리드 DMP+SMP가 OptiStruct에 의해

자동으로 활성화가 됩니다.

7.4 하드웨어 리소스 사용 방법 제안

n FEA 해석을 위한 하드웨어 고려사항 중 하나는 디스크에 대한 읽기/쓰기(I/O) 속도

입니다. 따라서 스크래치 파일에는 항상 비 네트워크 드라이브를 사용하는 것이

좋습니다. 네트워크 드라이브에서 해석이 시작되면 TMPDIR I/O 옵션 또는 OS-

TMP_DIR 환경 변수를 사용하여 스크래치 파일의 I/O를 로컬 드라이브로 재배치

할 수 있습니다.

n GPU 런 또는 하이브리드 SMP+GPU 런의 경우 NVIDIA Kepler, Maxwell, Pascal 및

볼타 아키텍처 기반의 Tesla나 Quadro 그래픽 카드를 지원합니다. 권장 카드는

Tesla P100, Tesla V100, Quadro GP100 및 Quadro GV100 입니다.

n SMP, DMP 또는 하이브리드 SMP+DMP 런의 경우 시스템/클러스터에서 실행될 것

으로 예상되는 해석의 유형에 따라 하드웨어 리소스를 확장하는 것이 중요합니다.

일반적으로 큰 FEA 모델은 많은 메모리와 디스크 공간을 필요로 합니다. 일반적인

권장 사항은 클러스터의 각 노드에 속도가 빠른 디스크(예:SSD)를 설치하고 충분한

메모리를 사용하여 행렬 연산의 전부는 아니더라도 대부분을 코어(core in)에서 실

행될 수 있도록 하는 것입니다.

8 OptiStruct 확장성 사례

다음 예제는 다양한 해석 및 최적화 문제에서 OptiStruct를 사용한 계산 속도 향상을 보여줍

니다. 각 병렬화 기술에 대한 HyperWorks Unit (HWUs) 사용과의 비교는 사용된 HWUs와 비

교하여 효율성이 어떻게 향상되는지에 대한 이해를 제공합니다. 이 논문에 나오는 HWU 사

용법은 HyperWorks 2019 버전을 기준으로 합니다.

8.1 모달 주파수 응답 해석 사례

여기서 사용된 모델은 34.5 백만개의 자유도를 가지는 실제 OEM에서 사용하는 모달

주파수 응답해석을 수행하며 고유치 추출에 AMSES를 사용하고 주파수 응답 솔루션에

는 FASTFR을 사용합니다. 7.3 섹션에서 언급했듯이 순수 SMP로 좋은 확장성을 제공할

수 있습니다. 그림8의 그래프는 “-nt 1”에서의 해석 시간인 13시간 20분을 기준으로 노

Page 15: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

15

멀라이즈 하였습니다.

HWU 사용량을 보면 같은 수의 HWUs(30)를 사용하면서 약 2.4배의 속도 향상이 되었

음을 알 수 있습니다. 또한 단 20개의 HWU을 추가하면 총 4.4배의 속도 향상이 가능

합니다.

동일한 모델을 사용한 모달 주파수 응답 해석은 AMSES를 고유치 추출에 사용하고

OptiStruct 2019.1 베타 버전에서 주파수 응답 해석을 위해 FASTFR 솔버를 사용합니다.

또한 추출된 모드의 수는 29,000 개보다 더 많습니다. 앞 7.3 섹션에서 언급했듯이 해

석은 하이브리드 SMP+GPU를 사용하여 훌륭한 확장성을 보이고 있음을 확인할 수 있

었습니다. 그림9의 그래프는 해석 시간이 “-nt 16”에서의 해석 시간인 7시간 05분을 기

준으로 노멀라이즈가 되었습니다.

Page 16: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

16

HWU 사용량을 보면 10 HWUs가 추가될 때 약 1.52배의 속도가 향상된 것을 확인할

수 있습니다. 단일 GPU의 사용 가능한 메모리 리소스를 초과하는 큰 모델의 경우 다

중 GPU를 사용할 수 있습니다. “-ngpu 2” 옵션은 2개의 GPU를 사용해서 해석을 수행

할 수 있습니다.

8.2 비선형 정적 해석 사례

460만개의 자유도를 가지는 알테어 파워트레인 모델은 3개의 비선형 정적 서브케이스

로 구성이 되어 있습니다. 비선형 정적 해석은 MUMPS 솔버를 사용합니다. 앞 7.3 섹

션에서 언급했듯이 하이브리드 SMP+DDM으로 우수한 확장성이 제공됨을 확인할 수

있습니다. 그림 10의 그래프는 “-nt 16”에서의 해석 시간인 1시간 47분을 기준으로 노

멀라이즈 되었습니다.

Page 17: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

17

HWU 사용량을 보면 같은 수의 HWUs(40)을 사용하면서 약 1.8배의 속도 향상이 있음

을 알 수 있습니다. 또한 단 20개의 HWU를 추가하면 최대 4.0배의 속도 향상이 가능

합니다.

750만개의 자유도를 가지는 OEM의 가스켓 요소를 포함한 파워트레인 모델을 이용하

여 비선형 정적 케이스를 구성하였습니다. 그림 11의 그래프는 “-nt 16”에서의 해석 시

간인 4시간 14분을 기준으로 노멀라이즈 하였습니다.

HWU 사용량을 보면 같은 수의 HWUs(40)을 사용하면서 약 2배의 속도 향상이 있음을

알 수 있습니다. 또한 추가로 20개의 HWU를 사용하면 최대 4.8배의 속도 향상이 가능

합니다.

8.3 선형 좌굴 해석 사례

자유도 190만개를 가지는 OEM 모델을 사용한 선형 좌굴 해석 모델은 150개의 선형

정적 및 96개의 좌굴 사례로 구성됩니다. 경계 조건이 다른 좌굴 서브케이스는 총 9가

지 유형이 있습니다. 앞 7.3에서 언급했듯이 이 해석은 다중 레벨 DDM을 활용하여 하

이브리드 SMP+DDM 구성으로 우수한 확장성이 제공됨을 알 수 있습니다. 이 경우 모

든 MPI 프로세스는 크기 1의 로컬 그룹으로 나뉩니다. 이것은 순전히 서브케이스 기반

병렬처리(DDM 레벨1)입니다. 그림 12의 그래프는 “-nt 16”에서의 해석 시간인 11시간

38분을 기준으로 노멀라이즈 되었습니다.

Page 18: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

18

HWU 사용량을 보면 같은 수의 HWUs(40)을 사용하면서 6.5배의 속도 향상이 있음을

알 수 있습니다. 또한 단 10개의 HWU을 추가하면 최대 11배의 속도 향상이 가능합니

다.

8.4 선형 정적 해석 / 최적화 사례

840만개의 자유도를 가지는 OEM 모델인 선형 정적 해석의 서브케이스로 구성된 변형

률 에너지를 기반으로 하는 위상 최적화의 경우입니다. 앞 7.3 섹션에서 언급했듯이 해

석은 하이브리드 SMP+GPU 구성에서 우수한 확장성을 제공하고 있습니다. 이 모델은

블록 형상의 선형 정적 모델이므로 GPU는 SMP 외에도 훌륭한 확장성을 제공합니다.

직접(BCS) 및 반복(PCG) 솔버가 모두 사용되며 반복 솔버가 계산 효율성이 더 좋습니

다. 그림 13의 그래프는 “-nt 16”의 해석 시간인 2시간을 기준으로 노멀라이즈 되었습

니다.

Page 19: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

19

HWU 사용량을 보면 DDM+SMP를 실행할 때 동일한 수의 HWUs(60)에서 약 1.4배의

속도 향상이 있었음을 알 수 있습니다. GPU를 추가하면 순수 SMP에 비해 속도가 최대

1.9배 빨라집니다. 반복 솔버(PCG)일 때 SMP+GPU 런이 SMP PCG에 비해 2.6배의 속

도 향상이 이루어지며 10 HWU이 증가합니다.

8.5백만개의 자유도가 있는 동일한 OEM 선형 정적 모델을 사용하여 최적화 없이 해석

만 수행합니다. 그림 14의 그래프는 “-nt 16”에서의 해석 시간이 2시간 2분을 기준으로

노멀라이즈 되었습니다.

HWU 사용량을 보면 BCS 솔버의 경우 SMP 외에 GPU를 사용하여 추가 HWU 없이

1.7배 빨라진다는 것을 알 수 있습니다. 마찬가지로 PCG 솔버는 1개 또는 2개의 GPU

를 사용하면 속도가 향상됩니다. OptiStruct 2019.1 베타 버전을 사용하면 2개의 GPU로

해석의 추가 속도 향상이 있었습니다. PCG 솔버 내에서 실제 해석 시간 차이를 명확하

Page 20: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

20

게 하기 위해 그림 15에서의 그래프로 비교를 하였으며 SMP 16 PCG의 해석 시간인

21.1분을 기준으로 노멀라이즈 하였습니다. “-ngpu 2” 옵션을 통해 추가의 GPU를 사용

하면 단일 GPU를 사용했을때에 비해 8%의 속도 향상이 이루어 집니다. 다중 GPU 지

원은 현재 PCG 솔버에서만 사용할 수 있으며, 이 문서의 여러 예제들은 OptiStruct

2019.1 베타 버전을 기반으로 합니다.

1,450만개의 자유도를 가지는 다른 OEM 선형 정적 모델(PCG)의 경우 단일 GPU 및 다

중 GPU의 속도 향상을 비교하기 위한 좋은 예제입니다. 그림 16의 그래프는 “-nt 16”

에서의 해석 시간인 31분을 기준으로 노멀라이즈 되었습니다.

Page 21: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

21

동일한 HWU(50)을 사용하여 단일 GPU와 2개의 GPU로 해석을 했을 때 2배의 속도 향

상이 되는 것을 확인할 수 있었습니다. 다중 GPU는 현재 PCG 솔버에서만 사용할 수

있으며, 이 논문의 다중 GPU 예제는 OptiStruct 2019.1 베타 버전을 기반으로 합니다.

그림 17과 18의 OEM 선형 정적 모델은 450만개의 자유도로 16 코어를 사용하여

SMP로 해석을 수행하며 “-core in”의 경우 7배, “-core out”의 경우 12배의 속도 향상이

되었음을 보여줍니다.

OptiStruct 2019.1 베타 버전에서 행렬-벡터의 곱셈 성능을 향상시키고, 다중 GPU 간의

통신 속도를 줄이기 위해 행렬 대역폭 최소화 알고리즘이 도입되었습니다. 이러한 요

인은 IN CORE 에서 실행될 때 7배, OUT CORE에서 12배의 속도 향상에 기여합니다.

Page 22: 다중 CPU 및 NVIDIA GPU를 사용한 OptiStruct 확장성 검토blog.altair.co.kr/wp-content/uploads/2019/04/OptiStruct... · 2019-05-17 · 위 예에서 각 모델은 8개의

22

9 결론

이 논문의 목적은 SMP, DMP 및 GPU를 포함하여 Altair OptiStruct에서 사용할 수 있는 강력

한 확장성에 대한 개요 및 소개를 제공하는데 있었습니다. 또한 다양한 해석 및 최적화 솔루

션에 대한 확장성 기능의 효율적인 활용을 확인하는데 도움이 되는 지침으로 제공되었습니다.

이 문서를 작성하면서 테스트 된 선형 정적, 비선형 정적, 고유치 해석, 좌굴 및 동적 분석을

포함한 다양한 해석 타입에서 SMP 런의 경우 최대 4.4배 이상의 현저한 속도 향상이 있었고,

하이브리드 SMP+DDM 런에서 11배 이상, 하이브리드 SMP+GPU 런에서 최대 10배의 속도

향상이 있었다.

또한 이 논문에서는 HWU이 해석 시간 확정성과 함께 어떻게 확장되는지를 보여줍니다. 대

부분의 경우 동일한 수의 HWU에 대해 강력한 OptiStruct 병렬화 기능을 사용하여 추가 코어

를 사용하면 상당한 확장성이 있을 것을 확인했습니다. HWUs가 기본 SMP 런에 사용된 단위

이상으로 확장되었을 때 해석 시간에 대한 확장성도 확인하였습니다.

표 4. OptiStruct 확장성 요약

OptiStruct 병렬 처리 확장성 vs HWU 사용량

속도 향상 HWU 사용량

SMP 4.4배 이상(32코어)e ~ 2.5배 : 추가 HWU 없음

~ 4.4배 : 1.6배 증가

하이브리드 SMP+DDM 11배 이상(32코어)e ~ 6.5배 : 추가 HWU 없음

~ 11배 : 1.25배 증가

하이브리드 SMP+GPU 12배 이상(16코어+2 GPU)e ~ 9배 : 1.25배 증가

~ 12배 : 1.25배 증가 e 속도 향상은 OptiStruct 2019.0 및 2019.1 베타 버전을 사용하여 실제 OEM 모델을 기

반으로 작성되었습니다. 실제 속도 향상은 사용된 하드웨어의 구성, 해석 종류, OptiStruct

버전에 따라 높거나 낮을 수 있습니다.

OptiStruct 및 HyperWorks Units Licensing의 확장성 기술에 대한 추가 정보는

HyperWorks 문서를 확인하십시오.