슈퍼 컴퓨팅에서 통신 오버 헤드


10

나는 슈퍼 컴퓨터가 조정과 실제 작업 관련 작업을 수행하는 데 소비하는 자원의 양을 나타내는 신뢰할만한 참고 자료를 찾고 있습니다. 리소스는 사용 가능한 처리 능력이 될 수 있지만 와트조차도 유효한 장치처럼 보입니다.

교수님이나 교과서 중 한 사람이 대규모 병렬 시스템에서 가용 처리 능력의 최대 절반이 작업과 메시지 전달을 조정하는 데 소비된다고 말했습니다. 불행히도, 나는이 비율에 대한이 참조 또는 다른 자료를 찾을 수없는 것 같습니다.

나는 이것이 슈퍼 컴퓨터 아키텍처에 따라 크게 다를 것이라는 점을 알고 있으며 현대적인 구현은 아마도 이와 관련하여 더 효율적일 것이므로 여러 아키텍처 또는 진화 (전용 메시지 전달 하드웨어 전후)에 대한이 메트릭의 개요가 훨씬 나을 것입니다.


2
적절한 컴퓨터, 알고리즘 및 구현을 선택하여 원하는 수를 쉽게 얻을 수 있습니다.
David Ketcheson

답변:


10

고성능 컴퓨팅에서 오랫동안 선호되는 벤치 마크는 HPLinpack 벤치 마크로, 초 당 부동 소수점 연산에서 컴퓨터 시스템의 속도를 측정하는 동시에 매우 크고 밀도가 높은 선형 방정식 시스템을 해결합니다. 해결책은2/3n3+2n2 부동 소수점 연산과 테스터는 다를 수 있습니다 n 최대 성능을 달성합니다.

벤치 마크 측정에는 RPEAK (시스템의 초당 최대 부동 소수점 연산 수) 및 RMAX (HPLinpack 벤치 마크에서 초당 최대 최대 연산 수)가 포함됩니다.

RPEAK가 RMAX의 상당 부분 인 것이 일반적이며,이 벤치 마크 작업에서 현재 슈퍼 컴퓨터가 이론적 인 최고 성능의 상당 부분을 달성 할 수 있음을 나타냅니다. 예를 들어 2015 년 11 월 TOP500 슈퍼 컴퓨터 순위에서 가장 빠른 컴퓨터 인 Tianhe-2는 RPEAK = 54.902 페타 플롭 및 RMAX = 33.863 페타 플롭을 갖습니다.

그러나 HPLinpack 벤치 마크는 현재 워크로드를 대표하지 않는 것으로 널리 알려져 있습니다. HPlinpack 결과는 일반적으로 실제 응용 프로그램에서 슈퍼 컴퓨터의 성능을 크게 강조합니다.

HPCG라는 새로운 벤치 마크가 개발 중입니다. 이 벤치 마크는 이산화 PDE에서 발생하는 큰 희소 방정식 시스템의 솔루션에 대해 반복적 인 방법으로 일반적으로 수행되는 연산을 포함합니다. 이 워크로드는 고성능 컴퓨터의 경우 훨씬 더 어려워집니다. 또한 실제로 슈퍼 컴퓨터가 사용되는 것을 훨씬 더 대표합니다.

HPCG의 일부 초기 결과는 RPEAK의 5 % 미만입니다. 예를 들어 Tianhe-2의 RPEAK = 54.902 페타 플롭 및 HPCG는 0.58 페타 플롭입니다 (HPCG에 대한 프리젠 테이션 참조).

TOP500 HPLinpack 벤치 마크는 다음에서 찾을 수 있습니다.

http://www.top500.org/

HPCG에 대한 프레젠테이션은 다음에서 찾을 수 있습니다.

http://www.hpcg-benchmark.org/downloads/isc15/HPCG-ISC15-FINAL-SLIDES_update1.pdf

HPCG 웹 사이트는

http://www.hpcg-benchmark.org/


1
나는 어디에서 궁금 2/3n3+2n2플롭스 사양은 그것을 찾아야했다. 궁금한 사람은 부분 피벗을 사용하는 LU 분해 작업 수, 즉 조밀 한 시스템을 해결하는 방법입니다.
Aurelius

3
메시지 전달에 대해서는 아무 것도 말하지 않으므로 질문에 대답하지 않는 것 같습니다.
David Ketcheson

이 벤치 마크는 부동 소수점 단위가 얼마나 효율적으로 사용되는지를 알려주는 점에서 부분적으로 질문에 대답합니다. 하나에서 빼서 다른 것들 사이에 메시지 전달을 포함하여 다른 모든 것에 소비되는 시간을 알아낼 수 있습니다.
Brian Borchers

6

정직한 대답은 우리가 모른다는 것입니다. 대답은 실제로 실행되는 내용과 사용자가 작성한 코드에 따라 크게 다릅니다. Brian Borchers가 지적했듯이, 우리가 모든 코드를 가지고 있고 그 코드가 무엇을하고 있는지를 알고있는 두 벤치 마크 사이에는 큰 차이가 있지만,이 코드가 슈퍼 컴퓨터 사용자가 실제로하는 일에 대해이 코드가 얼마나 대표적인 지에 대해서는 많은 의견이 일치하지 않습니다. 자세한 소스 코드 분석과 실제 머신에서 실제 코드를 많이 계측하지 않으면이 비율을 찾는 것이 불가능합니다. 커뮤니티가이 질문에 대답 할 수있는 데이터를 수집하기 시작한 일부 프로젝트가 있지만 전혀 해결되지 않았습니다.

사실, 그 질문은 실제로 명확하지 않습니다. 클러스터 노드의 통신 카드에 통신용으로 만 사용할 수있는 프로세서가있는 경우이 카드가 통신을 처리하지 않고 유휴 상태로 보내는 시간을 어떻게 계산합니까? 즉, "사용 가능한 처리 능력"은 무엇입니까? 최적화되지 않은 계산 및 통신 루틴을 가진 잘못 작성된 프로그램을 계산합니까? 누군가 자신의 코드에서 CPU를 잘 활용하지 못하는 알려진 안티 패턴을 사용한다면 어떻게 될까요? 전혀 의사 소통이되지 않는 당황 스럽지만 병렬적인 프로그램은 어떻습니까 (이것은 슈퍼 컴퓨터에서 실행됩니다, 약속드립니다)?

나는 책이나 교수님의 팔목 말을 수량화하려고 노력하는 시간을 낭비하지 않을 것입니다. 이러한 종류의 문장은 병렬 프로그래밍이 어렵고 일반적으로 제대로 수행되지 않았다는 것을 상기시켜줍니다. 슈퍼 컴퓨터는 또한 모든 폐기물을 제거하거나 최적화하도록 완벽하게 설계된 것은 아닙니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.