성능 이식성: 다양한 하드웨어 플랫폼에서 프로그램을 원활하게 실행하려면 어떻게 해야 합니까?

오늘날 고도로 상호 연결된 디지털 시대에 성능 이식성은 소프트웨어 개발에서 중요한 문제가 되었습니다. 성능 이식성은 다양한 하드웨어 플랫폼에서 효과적으로 실행되는 애플리케이션의 능력을 의미합니다. 개발자가 성능 지원 및 이식 가능한 애플리케이션을 설계할 때 이상적으로는 플랫폼별 코드를 최소화하면서 성능 저하 없이 여러 플랫폼을 지원해야 합니다.

성능 이식성은 고성능 컴퓨팅(HPC) 커뮤니티에서 매우 중요한 기능으로 간주되지만 현재 보편적이거나 일관된 측정 표준은 없습니다.

성능은 두 가지 방법으로 측정됩니다. 하나는 최적화된 애플리케이션 버전의 성능을 이식 가능한 버전과 비교하는 것이고, 다른 하나는 수행된 부동 소수점 연산(FLOP) 수를 기반으로 하며 실행 중에 기본 메모리에서 이동하는 것입니다. . 애플리케이션의 이론적 최고 성능을 비교하기 위한 프로세서 주파수 데이터입니다. 하드웨어의 다양성이 증가함에 따라 광범위한 시스템에서 실행될 수 있는 소프트웨어를 개발하는 것이 점점 더 중요해지고 있으며 이는 애플리케이션의 장기간 사용과 업데이트 가능성에 영향을 미칩니다.

성능 이식성 논쟁

성능 이식성은 업계에서 널리 언급되며 일반적으로 다음을 의미합니다. 첫째, 여러 하드웨어 플랫폼에서 동일한 애플리케이션을 실행하는 능력, 둘째, 이러한 플랫폼에서 특정 성능 목표를 달성하는 것입니다. 2016년 미국 에너지부(DOE)가 개최한 성능 이식성 컨퍼런스에서 한 전문가는 "가장 잘 알려진 구현과 비교하여 각 플랫폼에서 일관된 수준의 성능을 달성할 수 있는 애플리케이션은 애플리케이션으로 간주될 수 있다"고 말했습니다. 효율성과 휴대성을 위해.”

Jeff Larkin(NVIDIA)은 성능 이식성이 "동일한 소스 코드가 여러 다른 아키텍처에서 생산적으로 실행될 수 있다"고 직접적으로 지적했습니다.

따라서 성능 이식성은 고성능 컴퓨팅 커뮤니티에서 중요한 논의 주제가 되었습니다. 산학계, DOE 국립 연구소의 파트너들은 성능 이식성에 대한 연구 개발을 촉진하기 위해 2016년부터 정기적으로 "성능, 이식성 및 고효율 컴퓨팅 생산성 포럼"을 개최해 왔습니다.

성능 이식성의 핵심

컴퓨팅 아키텍처가 계속 발전함에 따라 성능 이식성은 여전히 ​​중요합니다. 개발자는 단일 코드 기반이 최신 아키텍처는 물론 아직 테스트되지 않은 다양한 현재 아키텍처에서도 허용 가능한 성능을 달성할 것이라고 가정합니다. 하드웨어 다양성이 증가함에 따라 여러 플랫폼에서 실행될 수 있는 소프트웨어를 개발하는 것이 필요해졌습니다. 이는 애플리케이션의 활력 및 지속적인 관련성과 관련이 있습니다.

미국 에너지부의 엑사스케일 컴퓨팅 프로젝트(ECP)는 성능 이식성이 특히 다중 플랫폼 환경에서 지속적인 관심사임을 강조합니다.

2016년부터 DOE는 성능 이식성의 중요성이 커지고 있음을 논의하기 위해 여러 차례 워크숍을 개최했습니다. 2017년 컨퍼런스에는 NERSC(National Energy Research Scientific Computing Center) 및 LANL(Los Alamos National Laboratory)을 비롯한 많은 유명 기관이 참여했습니다.

성능 이식성 측정

프로그램이 성능 이식성을 달성한 시기를 정량화하려면 두 가지 요소를 고려해야 합니다. 첫째, 성능 이식성은 아키텍처 전체에 사용되는 코드 줄 수와 단일 아키텍처에만 사용되는 코드 줄 수를 비교하여 측정할 수 있습니다. 둘째, 성과는 다양한 방식으로 측정될 수 있습니다. 예를 들어, 플랫폼에 최적화된 애플리케이션 버전과 휴대용 버전의 성능을 비교하기 위해 효과적인 측정 방법은 애플리케이션의 이론적 최고 성능을 얻을 수 있는 지붕 성능 모델을 사용하는 것입니다.

2016년 컨퍼런스에서 한 참가자는 "애플리케이션 팀이 성능 이식성이 있다고 주장할 때 이 코드는 성능 이식성이 있는 것으로 간주됩니다."라고 언급했습니다.

최근 몇 년간 연구에 따르면 다양한 병렬 컴퓨팅 아키텍처용으로 작성된 이식 가능한 코드는 개방형 표준 프로그래밍 모델을 준수해야 하며 코드는 여러 플랫폼에서 동시에 개발 및 개선되어야 합니다. 이러한 전략은 개발자가 다양한 플랫폼에 적합한 매개변수를 찾는 데 도움이 될 수 있습니다.

프레임워크 및 비프레임워크 솔루션

개발자가 성능 이식성을 달성하는 데 도움이 되도록 설계된 다양한 프로그래밍 애플리케이션과 시스템이 시장에 나와 있습니다. 일부 일반적인 프레임워크에는 OpenCL, SYCL, Kokkos, RAJA 등이 포함됩니다. 이러한 프로그래밍 인터페이스는 다중 플랫폼 다중 프로세스 프로그래밍을 지원합니다. 일부 비프레임워크 솔루션에는 자체 조정 및 도메인별 언어가 포함됩니다.

기술이 발전함에 따라 성능 이식성의 가능성을 새로운 차원으로 끌어올리는 새로운 프로그래밍 시대를 맞이할 준비가 되어 있습니까?

Trending Knowledge

HPC 커뮤니티가 '성능 이식성'에 이렇게 집착하는 이유는 무엇일까?
고성능 컴퓨팅(HPC) 분야에서 개발자들은 "성능 이식성"에 대해 거의 광신적입니다. 이러한 현상은 다양한 플랫폼에서 컴퓨터 프로그램과 애플리케이션을 효율적으로 실행해야 하는 필요성에서 비롯됩니다. 기술이 계속 발전하고 하드웨어 아키텍처가 변화함에 따라 고성능 컴퓨팅 애플리케이션의 내구성과 관련성이 위협받고 있으며, 이로 인해 개발자들은 성능 이식성을 개선
고성능 컴퓨팅의 숨겨진 과제: 성능 이식성을 측정하는 것이 얼마나 어려운지 아십니까?
고성능 컴퓨팅 (HPC)의 세계에서 성능 이식성은 많은 개발자들이 추구하는 목표입니다. 그러나 컴퓨팅 플랫폼의 다각화로 인해이 목적은 많은 어려움에 직면 해 있습니다. 성능 이식성은 애플리케이션이 다른 하드웨어 플랫폼에서 실행되도록하는 것이 아니라 성능을 손상시키지 않고 호환성을 유지하는 방법에 관한 것입니다. 현재까지 성능 이식성을 정량화하고 평가하기위
nan
여객 철도의 정의 및 적용은 각 지역마다 크게 다릅니다.이러한 차이점은 다양한 장소에서 대중 교통 시스템의 발전뿐만 아니라 지역 지리적, 문화적, 경제적 배경을 반영합니다.빠른 교통, 지하철, 경전철 및 중도와 같은 다양한 유형의 철도 시스템은 고유 한 특성을 가지고 있습니다. <H2> 빠른 교통의 정의 및 적용 <blockquote> 빠른 운송

Responses