パフォーマンスの移植性: プログラムを異なるハードウェア プラットフォーム間でシームレスに実行するにはどうすればよいですか?

今日の高度に相互接続されたデジタル時代では、ソフトウェア開発においてパフォーマンスの移植性が重要な問題となっています。パフォーマンスの移植性とは、アプリケーションがさまざまなハードウェア プラットフォーム上で効果的に実行できる能力を指します。開発者がパフォーマンス対応のポータブル アプリケーションを設計する場合、理想的にはプラットフォーム固有のコードを最小限に抑えながら、パフォーマンスを損なうことなく複数のプラットフォームをサポートする必要があります。

パフォーマンスのポータビリティは、ハイ パフォーマンス コンピューティング (HPC) コミュニティで非常に求められている機能と考えられていますが、現在、普遍的または一貫した測定基準はありません。

パフォーマンスは 2 つの方法で測定されます。1 つは、アプリケーションの最適化されたバージョンとポータブル バージョンのパフォーマンスを比較することです。もう 1 つは、実行され、実行中にメイン メモリから移動される浮動小数点演算 (FLOP) の数に基づきます。 . アプリケーションの理論上のピークパフォーマンスを比較するためのデータとプロセッサ周波数。ハードウェアの多様性が増すにつれて、さまざまなマシンで実行できるソフトウェアを開発することがますます重要になり、アプリケーションの長期使用と更新の可能性に影響します。

パフォーマンスの移植性に関する議論

パフォーマンスの移植性は業界で広く言及されており、通常は次のことを指します。第 1 に、複数のハードウェア プラットフォームで同じアプリケーションを実行できること。第 2 に、これらのプラットフォームで特定のパフォーマンス目標を達成すること。 2016 年に米国エネルギー省 (DOE) が開催したパフォーマンス ポータビリティ会議で、専門家は「アプリケーションは、最もよく知られている実装と比較して、各プラットフォームで一貫したレベルのパフォーマンスを達成できれば、アプリケーションとみなすことができる」と述べました。効率性と可搬性を実現します。」

Jeff Larkin 氏 (NVIDIA) は、パフォーマンスの移植性は「同じソース コードが複数の異なるアーキテクチャ上で生産的に実行できる」ことであると直接指摘しました。

したがって、パフォーマンスのポータビリティは、ハイ パフォーマンス コンピューティング コミュニティでの重要な議論のテーマとなっています。産学界、DOE国立研究所のパートナーは、パフォーマンスポータビリティの研究開発を推進するために、2016年から「パフォーマンス、ポータビリティ、高効率コンピューティング生産性フォーラム」を定期的に開催している。

パフォーマンスの移植性の鍵

コンピューティング アーキテクチャが進化し続ける中、パフォーマンスの移植性は依然として重要です。開発者は、単一のコード ベースが、新しいアーキテクチャだけでなく、まだテストされていない現在のさまざまなアーキテクチャでも許容可能なパフォーマンスを達成できると想定しています。ハードウェアの多様性が高まるにつれ、複数のプラットフォームで実行できるソフトウェアを開発することが必要になります。これは、アプリケーションの活力と継続的な関連性に関係します。

米国エネルギー省のエクサスケール コンピューティング プロジェクト (ECP) は、特にマルチプラットフォーム環境では、パフォーマンスのポータビリティが継続的な懸案事項であることを強調しています。

2016 年以来、DOE はパフォーマンスの移植性の重要性の高まりについて議論するために複数のワークショップを開催してきました。 2017 年の会議には、国立エネルギー研究科学計算センター (NERSC) やロス アラモス国立研究所 (LANL) など、多くの著名な機関からの参加が呼びかけられました。

パフォーマンスの移植性の測定

プログラムがパフォーマンスの移植性を達成した時期を定量化するには、2 つの要素を考慮する必要があります。まず、パフォーマンスの移植性は、アーキテクチャ間で使用されるコードの行数と、単一のアーキテクチャのみで使用されるコードの行数を比較することで測定できます。第 2 に、パフォーマンスはさまざまな方法で測定できます。たとえば、アプリケーションのプラットフォーム最適化バージョンとポータブル バージョンのパフォーマンスを比較するには、アプリケーションの理論上のピーク パフォーマンスを取得できるルーフ パフォーマンス モデルを使用するのが効果的な測定方法です。

2016 年のカンファレンスで、参加者は「アプリケーション チームがパフォーマンス ポータブルであると主張する場合、このコードはパフォーマンス ポータブルであるとみなされる」と述べました。

近年の研究では、さまざまな並列コンピューティング アーキテクチャ向けに記述された移植可能なコードはオープン標準プログラミング モデルに準拠する必要があり、コードは複数のプラットフォームで同時に開発および改善される必要があることが指摘されています。これらの戦略は、開発者がさまざまなプラットフォームに適したパラメーターを見つけるのに役立ちます。

フレームワーク ソリューションと非フレームワーク ソリューション

市場には、開発者がパフォーマンスの移植性を実現できるように設計されたさまざまなプログラミング アプリケーションやシステムが提供されています。一般的なフレームワークには、OpenCL、SYCL、Kokkos、RAJA などが含まれます。これらのプログラミング インターフェイスは、マルチプラットフォーム マルチプロセス プログラミングをサポートします。一部の非フレームワーク ソリューションには、セルフチューニングやドメイン固有の言語が含まれます。

テクノロジーが進歩するにつれて、パフォーマンスの移植性の可能性を新たな高みに引き上げるプログラミングの新時代を迎える準備はできているでしょうか?

Trending Knowledge

なぜ HPC コミュニティは「パフォーマンスの移植性」にこだわるのでしょうか?
高性能コンピューティング (HPC) の分野では、開発者は「パフォーマンスの移植性」に非常に熱心です。この現象は、コンピュータ プログラムとアプリケーションをさまざまなプラットフォーム間で効率的に実行する必要性から生じています。テクノロジーが進化し続け、ハードウェア アーキテクチャが変化するにつれて、高性能コンピューティング アプリケーションの耐久性と関連性が脅かされ、開発者はパフォーマンスの移植
ハイパフォーマンスコンピューティングの隠れた課題: パフォーマンスの移植性を測定するのがいかに難しいかご存知ですか?
ハイパフォーマンス コンピューティング (HPC) の世界では、パフォーマンスの移植性は多くの開発者が追求する目標です。しかし、コンピューティング プラットフォームの多様化により、この目標は多くの課題に直面しています。パフォーマンスの移植性は、アプリケーションを異なるハードウェア プラットフォームで実行できるようにするだけでなく、パフォーマンスを損なうことなく互換性を維持する方法をより重要なものに
nan
旅客鉄道の定義と適用は、各地域で大きく異なります。これらの違いは、さまざまな場所での公共交通機関システムの開発だけでなく、地域の地理的、文化的、経済的背景も反映しています。迅速な輸送、地下鉄、ライトレール、重い鉄道などのさまざまな種類の鉄道システムには、この記事では、これらのシステムとその特定のアプリケーションのさまざまな定義が詳細に検討されます。 迅速な輸送の定義と適用 <blockquot

Responses