Hardware Selection for FLOW-3D Products – FLOW-3D
부분 업데이트 / ㈜에스티아이씨앤디 솔루션사업부
In this blog, Flow Science’s IT Manager Matthew Taylor breaks down the different hardware components and suggests some ideal configurations for getting the most out of your FLOW-3D products.
개요
본 자료는 Flow Science의 IT 매니저 Matthew Taylor가 작성한 자료를 기반으로 STI C&D에서 일부 자료를 보완한 자료입니다. 본 자료를 통해 FLOW-3D 사용자는 최상의 해석용 컴퓨터를 선택할 때 도움을 받을 수 있을 것으로 기대합니다.
수치해석을 하는 엔지니어들은 사용하는 컴퓨터의 성능에 무척 민감합니다. 그 이유는 수치해석을 하기 위해 여러 준비단계와 분석 시간들이 필요하지만 당연히 압도적으로 시간을 소모하는 것이 계산 시간이기 때문일 것입니다.
따라서 수치해석용 컴퓨터의 선정을 위해서 단위 시간당 시스템이 처리하는 작업의 수나 처리량, 응답시간, 평균 대기 시간 등의 요소를 복합적으로 검토하여 결정하게 됩니다.
또한 수치해석에 적합한 성능을 가진 컴퓨터를 선별하는 방법으로 CPU 계산 처리속도인 Flops/sec 성능도 중요하지만 수치해석을 수행할 때 방대한 계산 결과를 디스크에 저장하고, 해석결과를 분석할 때는 그래픽 성능도 크게 좌우하기 때문에 SSD 디스크와 그래픽카드에도 관심을 가져야 합니다.
FLOW SCIENCE, INC. 에서는 일반적인 FLOW-3D를 지원하는 최소 컴퓨터 사양과 O/S 플랫폼 가이드를 제시하지만, 도입 담당자의 경우, 최상의 조건에서 해석 업무를 수행해야 하기 때문에 가능하면 최고의 성능을 제공하는 해석용 장비 도입이 필요합니다. 이 자료는 2022년 현재 FLOW-3D 제품을 효과적으로 사용하기 위한 하드웨어 선택에 대해 사전에 검토되어야 할 내용들에 대해 자세히 설명합니다. 그리고 실행 중인 시뮬레이션 유형에 따라 다양한 구성에 대한 몇 가지 아이디어를 제공합니다.
CPU 최신 뉴스
2024년 04월 01일 기준
CPU의 선택
CPU는 전반적인 성능에 큰 영향을 미치며, 대부분의 경우 컴퓨터의 가장 중요한 구성 요소입니다. 그러나 데스크탑 프로세서를 구입할 때가 되면 Intel 과 AMD의 모델 번호와 사양을 이해하는 것이 어려워 보일 것입니다.
그리고, CPU 성능을 평가하는 방법에 의해 가장 좋은 CPU를 고른다고 해도 보드와, 메모리, 주변 Chip 등 여러가지 조건에 의해 성능이 달라질 수 있기 때문에 성능평가 결과를 기준으로 시스템을 구입할 경우, 단일 CPU나 부품으로 순위가 정해진 자료보다는 시스템 전체를 대상으로 평가한 순위표를 보고 선정하는 지혜가 필요합니다.
<출처>https://www.cpubenchmark.net/high_end_cpus.html
수치해석을 수행하는 CPU의 경우 예산에 따라 Core가 많지 않은 CPU를 구매해야 하는 경우도 있을 수 있습니다. 보통 Core가 많다고 해석 속도가 선형으로 증가하지는 않으며, 해석 케이스에 따라 적정 Core수가 있습니다. 이 경우 예산에 맞는 성능 대비 최상의 코어 수가 있을 수 있기 때문에 Single thread Performance 도 매우 중요합니다. 아래 성능 도표를 참조하여 예산에 맞는 최적 CPU를 찾는데 도움을 받을 수 있습니다.
CPU 성능 분석 방법
부동소수점 계산을 하는 수치해석과 밀접한 Computer의 연산 성능 벤치마크 방법은 대표적으로 널리 사용되는 아래와 같은 방법이 있습니다.
- SPECfp 벤치 마크
https://en.wikipedia.org/wiki/SPECfp참고로 “SPEC CPU2017” 성능평가 기준(현재까지 개발된 가장 최신 평가기준임)으로 평가된 2018년 2분기 성능평가 목록은 아래 사이트에서 확인할 수 있습니다.
https://www.spec.org/cpu2017/results/res2018q2/ - LINPACK 벤치 마크
https://en.wikipedia.org/wiki/LINPACK_benchmarks
FLOW-3D의 CFD 솔버 성능은 CPU의 부동 소수점 성능에 전적으로 좌우되기 때문에 계산 집약적인 프로그램입니다. 현재 출시된 사용 가능한 모든 CPU를 벤치마킹할 수는 없지만 상대적인 성능을 합리적으로 비교할 수는 있습니다.
특히, 수치해석 분야에서 주어진 CPU에 대해 FLOW-3D 성능을 추정하거나 여러 CPU 옵션 간의 성능을 비교하기 위한 최상의 옵션은 Standard Performance Evaluation Corporation의 SPEC CPU2017 벤치마크(현재까지 개발된 가장 최신 평가기준임)이며, 특히 SPECspeed 2017 Floating Point 결과가 CFD Solver 성능을 매우 잘 예측합니다.
이는 유료 벤치마크이므로 제공된 결과는 모든 CPU 테스트 결과를 제공하지 않습니다. 보통 제조사가 ASUS, Dell, Lenovo, HP, Huawei 정도의 제품에 대해 RAM이 많은 멀티 소켓 Intel Xeon 기계와 같은 값비싼 구성으로 된 장비 결과들을 제공합니다.
CPU 비교를 위한 또 다른 옵션은 Passmark Software의 CPU 벤치마크입니다. PerformanceTest 제품군은 유료 소프트웨어이지만 무료 평가판을 사용할 수 있습니다. 대부분의 CPU는 저렴한 옵션을 포함하여 나열됩니다. 부동 소수점 성능은 전체 벤치마크의 한 측면에 불과하지만 다양한 워크로드에서 전반적인 성능을 제대로 테스트합니다.
예산을 결정하고 해당 예산에 해당하는 CPU를 선택한 후에는 벤치마크를 사용하여 가격에 가장 적합한 성능을 결정할 수 있습니다.
<참고>
SPEC의 벤치 마크 ( https://www.spec.org/benchmarks.html#cpu )
SPEC CPU 2017 (현재까지 가장 최근에 개발된 CPU 성능측정 기준)
다른 컴퓨터 시스템에서 컴퓨팅 계산에 대한 집약적인 워크로드를 비교하는데 사용할 수 있는 성능 측정을 제공하도록 설계된 SPEC CPU 2017에는 SPECspeed 2017 정수, SPECspeed 2017 부동 소수점, SPECrate 2017 정수 및 SPECrate 2017 부동 소수점의 4 가지 제품군으로 구성된 43 개의 벤치 마크가 포함되어 있습니다. SPEC CPU 2017에는 에너지 소비 측정을 위한 선택적 메트릭도 포함되어 있습니다.
<SPEC CPU 벤치마크 보고서>
벤치마크 결과보고서는 제조사별, 모델별로 테스트한 결과를 아래 사이트에 가면 볼 수 있습니다.
https://www.spec.org/cgi-bin/osgresults
<보고서 샘플>
- SPEC CPU 2017
Designed to provide performance measurements that can be used to compare compute-intensive workloads on different computer systems, SPEC CPU 2017 contains 43 benchmarks organized into four suites: SPECspeed 2017 Integer, SPECspeed 2017 Floating Point, SPECrate 2017 Integer, and SPECrate 2017 Floating Point. SPEC CPU 2017 also includes an optional metric for measuring energy consumption.
클럭 대 코어
일반적으로 클럭 속도가 높은 칩은 CPU 코어를 더 적게 포함합니다. FLOW-3D는 병렬화가 잘되어 있지만, 디스크 쓰기와 같이 일부 작업은 기본적으로 단일 스레드 방식으로 수행됩니다. 따라서 데이터 출력이 빈번하거나 큰 시뮬레이션은 종종 더 많은 코어가 아닌, 더 높은 클럭 속도를 활용합니다. 마찬가지로 코어 및 소켓의 다중 스레딩은 오버헤드를 발생시키므로 작은 문제의 해석일 경우 사용되는 코어 수를 제한하면 성능이 향상될 수 있습니다.
CPU 아키텍처
CPU 아키텍처는 중요합니다. 최신 CPU는 일반적으로 사이클당 더 많은 기능을 제공합니다. 즉, 현재 세대의 CPU는 일반적으로 동일한 클럭 속도에서 이전 CPU보다 성능이 우수합니다. 또한 전력 효율이 높아져 와트당 성능이 향상될 수 있습니다. Flow Science에는 구형 멀티 소켓 12, 16, 24 코어 Xeon보다 성능이 뛰어난 최근 세대 10~12 Core i9 CPU 시스템을 보유하고 있습니다.
오버클럭
해석용 장비에서는 CPU를 오버클럭 하지 않는 것이 좋습니다. 하드웨어를 다년간의 투자라고 생각한다면, 오버클럭화는 발열을 증가시켜 수명을 단축시킵니다. CPU에 따라 안정성도 저하될 수 있습니다. CPU를 오버클럭 할 때는 세심한 열 관리가 권장됩니다.
하이퍼스레딩
<이미지출처:https://gameabout.com/krum3/4586040>
하이퍼스레딩은 물리적으로 1개의 CPU를 가상으로 2개의 CPU처럼 작동하게 하는 기술로 파이프라인의 단계수가 많고 각 단계의 길이가 짧을때 유리합니다. 다만 수치해석 처럼 모든 코어의 CPU를 100% 사용중인 장시간 수행 시뮬레이션은 일반적으로 Hyper Threading이 비활성화 된 상태에서 더 잘 수행됩니다. FLOW-3D는 100% CPU 사용률이 일반적이므로 새 하드웨어를 구성할 때 Hyper Threading을 비활성화하는 것이 좋습니다. 설정은 시스템의 BIOS 설정에서 수행합니다.
몇 가지 워크로드의 경우에는 Hyper Threading을 사용하여 약간 더 나은 성능을 보이는 경우가 있습니다. 따라서, 최상의 런타임을 위해서는 두 가지 구성중에서 어느 구성이 더 적합한지 시뮬레이션 유형을 테스트하는 것이 좋습니다.
스케일링
여러 코어를 사용할 때 성능은 선형적이지 않습니다. 예를 들어 12 코어 CPU에서 24 코어 CPU로 업그레이드해도 시뮬레이션 런타임이 절반으로 줄어들지 않습니다. 시뮬레이션 유형에 따라 16~32개 이상의 CPU 코어를 선택할 때는 FLOW-3D 및 FLOW-3D CAST의 HPC 버전을 사용하거나 FLOW-3D CLOUD로 이동하는 것을 고려하여야 합니다.
AMD Ryzen 또는 Epyc CPU
AMD는 일부 CPU로 벤치마크 차트를 석권하고 있으며 그 가격은 매우 경쟁력이 있습니다. FLOW SCIENCE, INC. 에서는 소수의 AMD CPU로 FLOW-3D를 테스트했습니다. 현재 Epyc CPU는 이상적이지 않고 Ryzen은 성능이 상당히 우수합니다. 발열은 여전히 신중하게 다뤄져야 할 문제입니다.
<관련 기사>
Graphics 고려 사항
FLOW-3D는 OpenGL 드라이버가 만족스럽게 수행되는 최신 그래픽 카드가 필요합니다. 최소한 OpenGL 3.0을 지원하는 것이 좋습니다. 권장 옵션은 엔비디아의 쿼드로 K 시리즈와 AMD의 파이어 프로 W 시리즈입니다.
특히 엔비디아 쿼드로(NVIDIA Quadro)는 엔비디아가 개발한 전문가 용도(워크스테이션)의 그래픽 카드입니다. 일반적으로 지포스 그래픽 카드가 게이밍에 초점이 맞춰져 있지만, 쿼드로는 다양한 산업 분야의 전문가가 필요로 하는 영역에 광범위한 용도로 사용되고 있습니다. 주로 산업계의 그래픽 디자인 분야, 영상 콘텐츠 제작 분야, 엔지니어링 설계 분야, 과학 분야, 의료 분석 분야 등의 전문가 작업용으로 사용되고 있습니다. 따라서 일반적인 소비자를 대상으로 하는 지포스 그래픽 카드와는 다르계 산업계에 포커스 되어 있으며 가격이 매우 비싸서 도입시 예산을 고려해야 합니다.
유의할 점은 엔비디아의 GTX 게이밍 하드웨어는 볼륨 렌더링의 속도가 느리거나 오동작 등 몇 가지 제한 사항이 있습니다. 일반적으로 노트북에 내장된 통합 그래픽 카드보다는 개별 그래픽 카드를 강력하게 추천합니다. 최소한 그래픽 메모리는 512MB 이상을 권장합니다.
출처 : https://www.videocardbenchmark.net/high_end_gpus.html
원격데스크탑 사용시 고려 사항
Flow Science는 nVidia 드라이버 버전이 341.05 이상인 nVidia Quadro K, M 또는 P 시리즈 그래픽 하드웨어를 권장합니다. 이 카드와 드라이버 조합을 사용하면 원격 데스크톱 연결이 완전한 3D 가속 기능을 갖춘 기본 하드웨어에서 자동으로 실행됩니다.
원격 데스크톱 세션에 연결할 때 nVidia Quadro 그래픽 카드가 설치되어 있지 않으면 Windows는 소프트웨어 렌더링을 사용합니다. FLOW-3D 가 소프트웨어 렌더링을 사용하고 있는지 확인하려면 FLOW-3D 도움말 메뉴에서 정보를 선택하십시오. GDI Generic을 소프트웨어 렌더링으로 사용하는 경우 GL_RENDERER 항목에 표시됩니다.
하드웨어 렌더링을 활성화하는 몇 가지 옵션이 있습니다. 쉬운 방법 중 하나는 실제 콘솔에서 FLOW-3D를 시작한 다음 원격 데스크톱 세션을 연결하는 것입니다. Nice Software DCV 와 같은 일부 VNC 소프트웨어는 기본적으로 하드웨어 렌더링을 사용합니다.
RAM 고려 사항
프로세서 코어당 최소 4GB의 RAM은 FLOW-3D의 좋은 출발입니다. POST Processor를 사용하여 후처리 작업을 할 경우 충분한 양의 RAM을 사용하는 것이 좋습니다.
현재 주력제품인 DDR4보다 2배 빠른 DDR5가 곧 출시된다는 소식도 있습니다.
일반적으로 FLOW-3D를 이용하여 해석을 할 경우 격자(Mesh)수에 따라 소요되는 적정 메모리 크기는 아래와 같습니다.페이지 보기
- 초대형 (2억개 이상의 셀) : 최소 128GB
- 대형 (60 ~ 1억 5천만 셀) : 64 ~ 128GB
- 중간 (30-60백만 셀) : 32-64GB
- 작음 (3 천만 셀 이하) : 최소 32GB
HDD 고려 사항
수치해석은 해석결과 파일의 데이터 양이 매우 크기 때문에 읽고 쓰는데, 속도면에서 매우 빠른 SSD를 적용하면 성능면에서 큰 도움이 됩니다. 다만 SSD 가격이 비싸서 가성비 측면을 고려하여 적정수준에서 결정이 필요합니다.
CPU와 저장장치 간 데이터가 오고 가는 통로가 그림과 같이 3가지 방식이 있습니다. 이를 인터페이스라 부르며 SSD는 흔히 PCI-Express 와 SATA 통로를 이용합니다.
흔히 말하는 NVMe는 PCI-Express3.0 지원 SSD의 경우 SSD에 최적화된 NVMe (NonVolatile Memory Express) 전송 프로토콜을 사용합니다. 주의할 점은 MVMe중에서 SATA3 방식도 있기 때문에 잘 구별하여 구입하시기 바랍니다.
그리고 SSD를 선택할 경우에도 SSD 종류 중에서 PCI Express 타입은 매우 빠르고 가격이 고가였지만 최근에는 많이 저렴해졌습니다. 따라서 예산 범위내에서 NVMe SSD등 가장 효과적인 선택을 하는 것이 좋습니다.
( 참고 : 해석용 컴퓨터 SSD 고르기 참조 )
기존의 물리적인 하드 디스크의 경우, 디스크에 기록된 데이터를 읽기 위해서는 데이터를 읽어내는 헤드(바늘)가 물리적으로 데이터가 기록된 위치까지 이동해야 하므로 이동에 일정한 시간이 소요됩니다. (이러한 시간을 지연시간, 혹은 레이턴시 등으로 부름) 따라서 하드 디스크의 경우 데이터를 읽기 위한 요청이 주어진 뒤에 데이터를 실제로 읽기까지 일정한 시간이 소요되는데, 이 시간을 일정한 한계(약 10ms)이하로 줄이는 것이 불가능에 가까우며, 데이터가 플래터에 실제 기록된 위치에 따라서 이러한 데이터에의 접근시간 역시 차이가 나게 됩니다.
하지만 HDD의 최대 강점은 가격대비 용량입니다. 현재 상용화되어 판매하는 대용량 HDD는 12TB ~ 15TB가 공급되고 있으며, 이는 데이터 저장이나 백업용으로 가장 좋은 선택이 됩니다.
결론적으로 데이터를 직접 읽고 쓰는 드라이브는 SSD를 사용하고 보관하는 용도의 드라이브는 기존의 HDD를 사용하는 방법이 효과적인 선택이 될 수 있습니다.
PassMark – Disk Rating High End Drives
출처 : https://www.harddrivebenchmark.net/high_end_drives.html
상기 벤치마크 테스트는 테스트 조건에 따라 그 성능 곡선이 달라질 수 있기 때문에 조건을 확인할 필요가 있습니다. 예를 들어 Windows7, windows8, windows10 , windows11 모두에서 테스트한 결과를 평균한 점수와 자신이 사용할 컴퓨터 O/S에서 테스트한 결과는 다를 수 있습니다. 상기 결과에 대한 테스트 환경에 대한 내용은 아래 사이트를 참고하시기 바랍니다.
참고 : 테스트 환경