← 最新の論文
💻 コンピュータサイエンス

JACC v1.0: High-productivity Performance Portability in the LLVM-compiled Julia Language

本論文では、単一のコードベースを通じて多様なCPUおよびGPUアーキテクチャにわたる高生産性、ポータビリティ、および高性能な並列プログラミングを可能にする、LLVMコンパイルされたJulia言語のための統一フレームワークであるJACC v1.0を紹介する。

原著者: Philip W Fackler, Pedro Valero-Lara, Narasinga Rao Miniskar, Steven Hahn, Het Mankad, Doris Chiang, Jose Gonzalez, Jhonny Gonzalez, Alexis Huante, Yuguo K Tang, Emily Yang, Claire A Winogrodzki, Rites
公開日 2026-10-22
📖 1 分で読めます☕ さくっと読める

原著者: Philip W Fackler, Pedro Valero-Lara, Narasinga Rao Miniskar, Steven Hahn, Het Mankad, Doris Chiang, Jose Gonzalez, Jhonny Gonzalez, Alexis Huante, Yuguo K Tang, Emily Yang, Claire A Winogrodzki, Ritesh Bhirud, Julian Samaroo, Rabab Alomairy, Alan Edelman, Johannes Blaschke, Michel Schanen, Patrick Diehl, Elijah Pelofske, Jean-François Boussuge, Ludovic Räss, Simone Marras, Yuki Nagai, Jeffrey S. Vetter, Keita Teranishi, William F. Godoy

原論文は CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/) でライセンスされています。 ✨ これは以下の論文のAI生成解説です。著者が執筆または承認したものではありません。技術的な正確性については原論文を参照してください。 免責事項の全文を読む

現代のスーパーコンピュータは、さまざまな種類のプロセッサを搭載し、驚異的な速度で問題を解決できる、ますます複雑なマシンになりつつあります。何十年もの間、科学者たちはこれらのマシンに何をさせるかを指示するために、いくつかの標準的な言語に頼ってきました。しかし、ハードウェアが進化するにつれ、これらのシステムのためのコードを書くことは、困難で専門的な作業となっています。研究者は、同じ科学プログラムを、ある種類のコンピュータチップ用にもう一度、そして別のチップ用にもう一度、というように何度も書き直さなければならない状況にしばしば直面しています。これは、異なるマシン向けにコードを翻訳することに費やされる時間が、実際の発見に充てられる時間を奪ってしまうというボトルネックを生み出しています。この分野の多くの人々にとっての目標は、あらゆるマシンの複雑な設計の詳細を知ることなく、個人のノートパソコンから巨大な国家級スーパーコンピュータに至るまで、あらゆるマシン上で効率的に動作する単一の命令セットを書く方法を見つけることです。

オークリッジ国立研究所およびその他の機関の研究チームは、Juliaプログラミング言語を使用する科学者のための問題解決を目指した、JACCと呼ばれる新しいツールを導入しました。Juliaは、数学の公式のように読みやすく、かつ最も効率的なマシンコードと同じくらい高速に動作するように設計された言語です。この新しいJACCソフトウェアは、この言語のユニバーサルな翻訳機として機能し、科学者が、中央プロセッサ(CPU)または重い計算に使用される特殊なグラフィックスチップ(GPU)のいずれかで実行できる、一つのバージョンのコードを書くことを可能にします。研究者たちは、このアプローチがコーディングを容易にするだけでなく、ソフトウェアが各ハードウェアの種類に合わせて特別に書かれたコードとほぼ同等の速度で動作することを発見しました。これは、科学者がノートパソコン上でシミュレーションを開発し、その後、コードを一行も変更することなく、全く同じプログラムを世界クラスのスーパーコンピュータで実行できることを意味します。

この成果の核心は、JACCが科学者の作業とコンピュータのハードウェアとの関係をどのように扱うかにあります。以前は、プログラムをある種類のプロセッサから別のプロセッサへ移動させるには、英語からフランス語、そして日本語へと翻訳し、そのたびにニュアンスや速度が失われるリスクがある本のように、完全な書き直しが必要でした。JACCは、これらの個別の翻訳の必要性を排除します。それは、どの特定のプロセッサが作業を行うかを指定することなく、例えば大きな数値のグリッド全体にわたって値を計算するといったタスクを実行するようコンピュータに指示する、一連の単純なコマンドを提供します。ソフトウェアは、コンピュータがNVIDIA、AMD、Intel、またはAppleのチップを搭載しているかを自動的に検出し、そして最も適切な利用可能なプロセッサに作業を指示します。この柔軟性により、研究者は現代のノートパソコンに見られる強力なグラフィックスカードを使用してインタラクティブなテストを行い、その後、シームレスにスーパーコンピュータ内の大規模なプロセッサ配列へと切り替えて、最終的な大規模実行を行うことができます。

研究者たちは、実世界の様々な科学的問題を用いてこのシステムの有効性を実証しました。彼らは、翼の上を流れる空気やパイプの中を移動する水の流れをモデル化するために使用される流体力学のシミュレーションにこのツールを適用しました。これらのテストにおいて、ソフトウェアは異なる種類のハードウェア上で動作し、そのパフォーマンスは、各特定の機械のために専門家によって書かれた専用コードに匹密接に一致するか、あるいは非常に近いものとなりました。例えば、流体の動きをシミュレートする場合、システムはグラフィックスチップ上で最高のパフォーマンスに数パーセント以内の速度を達成し、単一のコードベースの利便性が速度を犠牲にしないことを証明しました。また、チームは、単一のマシン上で複数のプロセッサが協力して動作する複雑なタスクを処理できることも示しましたが、これはスーパーコンピュータが物理的なユニットにさらなるパワーを詰め込むにつれて不可欠となっている能力です。

単純な速度を超えて、このツールは、以前は管理が難しすぎた、より複雑な科学的探求への扉を開きます。研究者たちは、JACCが量子磁性材料のシミュレーションに使用できることを示しました。これは、無数の微小粒子の挙動を追跡する必要がある分野です。この新しいシステムを使用することで、以前は単一のプロセッサで実行するのに1時間かかっていた計算が、グラフィックスチップで実行するとわずか数秒に短縮されました。しかも、同じコードを使用して。このような加速は、量子化学や核物理学のような、物質が異なる条件下でどのように振る舞うかを理解するために、何千ものバリエーションのシミュレーションを実行する必要がある分野において極めて重要です。異なるハードウェア上でコードを書き直すことなくこれらのシミュレーションを実行できる能力は、科学者がプログラミングのメカニズムよりも、物理学そのものに集中できることを意味します。

この研究のインパクトは、科学ソフトウェアがどのように構築され、維持されるかという未来にまで及びます。研究者たちは、このシステムが科学コミュニティで使用されている既存のツールと併用できるように設計されており、現在のプロジェクトの完全な刷新ではなく、段階的な移行を可能にすると指摘しました。これは、研究所が特定のコードの部分に対して部分的に新しいシステムを導入し、完全な移行をコミットする前にテストできることを意味します。また、ソフトウェアは共有メモリのような高度な機能をサポートしており、これにより計算の異なる部分がデータを迅速にアクセスできるようになり、さらに非同期実行によって、前のタスクが完全に終了する前にコンピュータが新しいタスクを開始できるようになります。これらの機能は、一度に多くのタスクを処理するように設計されている最新のスーパーコンピュータから最大限の性能を引き出すために不可欠です。

将来を見据えて、研究者たちはこの技術をさらに高度なアプリケーションの基礎として見ています。彼らは、今日の古典的なコンピュータとは物理法則が大きく異なる量子コンピュータの開発において、このシステムがどのように活用できるかを模索しています。コードを移植可能かつ効率的に書ける能力は、ハードウェアが完全に準備されるずっと前に、科学者がこれらの未来の機械のためのアルゴリズムを設計し、テストするのを助ける可能性があります。さらに、システムは、特定のタスクをどのプロセッサが担当すべきかを自動的に決定できるインテリジェントなソフトウェアと統合されており、人間のプログラマーの負担をさらに軽減します。この使いやすさと高性能の組み合わせは、科学者のアイデアと実行中のシミュレーションの間の障壁が、今日よりもはるかに低くなる未来を示唆しています。

この論文で提示された研究は、ハイパフォーマンス・コンピューティングをより幅広い科学者に開放するための重要な一歩を表しています。ハイレベルなプログラミングとローレベルなハードウェアの詳細との間の溝を埋めるツールを提供することで、研究者たちは、より効率的で生産的な科学的発見への道を切り開きました。その結果は、高い生産性と高いパフォーマンスの両立が可能であることを示しており、これら二つの目標は、かつてはしばしば相反するものと考えてきました。世界がさらに複雑なコンピューティングシステムへと向かう中で、JACCのようなツールは、これらのマシンの全潜在能力を解き放つために不可欠となるでしょう。これにより、科学者はこれまで解決が困難であった問題に取り組むことが可能になります。

自分の分野の論文に埋もれていませんか?

研究キーワードに一致する最新の論文のダイジェストを毎日受け取りましょう——技術要約付き、あなたの言語で。

Digest を試す →