Table of Contents
고성능 컴퓨팅 (HPC)은 배열과 명부와 같은 데이터 구조의 효율적인 설계에 크게 의존합니다. Proper 디자인은 크게 처리 속도와 리소스 활용을 개선할 수 있습니다. 이 문서는 HPC 환경에서 이러한 데이터 구조를 설계하기위한 주요 원칙과 예제를 탐구합니다.
Array Design의 원칙
배열은 빠른 접근 및 능률적인 캐시 이용을 허용하는 그들의 연속 기억 배치 때문에 HPC에 근본적입니다. 배열을 디자인할 때, 뒤에 오는 원리를 고려하십시오:
- Memory 정렬:) 접근 지연을 줄이기 위해 캐시 라인 경계에 대한 데이터가 정렬됩니다.
- Contiguous storage: 캐시 성능을 최적화하기 위해 연속 메모리 블록을 사용합니다.
- Dimensionality: 문제의 구조와 패딩을 최소화하기 위해 적절한 크기를 선택한다.
- Data type selection: 메모리 풋프린트를 줄이기 위해 정밀하게 유지되는 가장 작은 데이터 유형 사용.
HPC 설계 목록
링크 된 목록 및 기타 목록 구조는 HPC에서 덜 일반적이지 않은 메모리 레이아웃 때문에, 이는 캐시 효율성을 hampers. 그러나, 그들은 동적 데이터 관리와 같은 특정 시나리오에서 유용합니다. 목록을 최적화하려면:
- A-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-
- 포인트를 최소화: 메모리 사용량을 감소시키고 캐시 동작을 개선하기 위해 포인터 수를 감소시킵니다.
- Preallocate Memory: 빈번한 재조정을 피하기 위해 충분한 공간의 위치를 알아냅니다.
Data Structure 최적화의 예
하나의 일반적인 예는 연속 저장 및 캐시 친화적 인 액세스 패턴에서 혜택을 모릭스 작업을위한 다차원 배열의 사용입니다. 또 다른 예는 캐시 재사용 및 병렬 처리를 최적화하기 위해 데이터가 작은 펑크로 분할하는 블록 또는 타일 알고리즘의 사용입니다.