QUICK REVIEW
[論文レビュー] A C++ interface to QCDNUM
Valerio Bertone, M. Botje|arXiv (Cornell University)|Dec 21, 2017
Particle physics theoretical and experimental studies参考文献 5被引用数 3
ひとこと要約
この論文は、FORTRANベースのQCDNUMプログラム用のC++インターフェースを提示しており、現代のC++ベースの高エネルギー物理学ソフトウェアへのQCD部分子密度の進化のシームレスな統合を可能にしている。レガシなFORTRANルーチンをC++互換関数でラッピングすることにより、QCDNUMの高い性能を維持しながら、オブジェクト指向プログラミング、動的メモリ管理、型安全性をサポートしている。検証済みの例では、正確なNNLO進化および構造関数計算が示されている。
ABSTRACT
In this document we report on the recent development of a C++ interface to the FORTRAN-based evolution program QCDNUM. A short description of the interface is given with a few basic examples of its usage.
研究の動機と目的
- レガシなFORTRANベースのQCDNUMと現代のC++ベースのHEPソフトウェアフレームワークの間のギャップを埋めるため。
- QCDNUMの高い計算性能を維持しつつ、オブジェクト指向のC++アプリケーションでの利用を可能にするため。
- autotoolsと名前空間カプセル化を用いて、ポータブルで標準準拠のC++インターフェースを提供するため。
- NNLO PDF進化、構造関数計算、動的メモリアクセスといったQCDNUMの主要機能をサポートするため。
- C++ネイティブなQCDNUMルーチン呼び出しを可能にすることで、xFitter や Alpos といった現代のツールとの統合を促進するため。
提案手法
- 名前が同一だが小文字にしたC++関数で、名前衝突を避けるためにQCDNUM名前空間にラップされた既存のFORTRANサブルーチンをラッピングする。
- 暗黙のFORTRAN型宣言を明示的なC++変数宣言に変換し、整数型および倍精度型の処理を含む。
- 1ベースのFORTRAN配列インデックス(反クォーク用に負のインデックスを含む)を、インデックスオフセット調整により0ベースのC++配列にマッピングする。
- FORTRANのA(n,m)配列を効率的なメモリアクセスのための1次元C++配列に変換する2次元配列マッピング関数k(i,j,n)を実装する。
- 関数ポインタを、C++関数へのポインタとして関数引数を渡すことで処理し、進化ルーチン内でユーザー定義のPDF入力関数を可能にする。
- C++とFORTRANの相互運用性を確保するため、リンカーや名前修飾のサポートを含むautotoolsを用いてライブラリをビルドする。
実験結果
リサーチクエスチョン
- RQ1高パフォーマンスなFORTRANベースのQCD進化プログラムを、現代のC++ HEPアプリケーションに効果的に公開する方法は何か?
- RQ2型安全性、メモリ管理、名前規約の観点から、レガシなFORTRANコードとC++をインターフェースする際の主な課題は何か?
- RQ3C++インターフェースは、QCDNUMの計算速度を維持しつつ、オブジェクト指向プログラミングの実践を可能にすることができるか?
- RQ4FORTRANとC++の間で配列インデックスの違いを、堅牢で保守性の高い方法で正しく処理するにはどうすればよいか?
- RQ5autotoolsと名前空間カプセル化を用いることで、インターフェースのポータビリティと使いやすさにどのような影響があるか?
主な発見
- C++インターフェースにより、QCDNUMのNNLO PDF進化および構造関数計算ルーチンを、完全な型安全性とモularityを備えたC++コードから直接呼び出せることが確認された。
- 元のFORTRANコードベースを再実装せずに再利用することで、QCDNUMの高いパフォーマンスが維持されており、パフォーマンスの低下を回避している。
- autotoolsの使用により、クロスプラットフォーム互換性と適切なリンキングが保証され、インターフェースはqcdnumリリース17-01/14以降から利用可能である。
- 例題コードにより、可変フレーバー数スキームにおける非極化PDFの正確な進化が示され、x = 1e-3、μ² = 1000 GeV²における charm 海クォークの値が1.8708となった。
- インターフェースを用いて、強い結合定数αs(mZ²)が正しく0.11807として計算され、元のFORTRAN実装と整合性があることが確認された。
- グリッド設定、重み計算、LO、NLO、NNLO順序での進化、および任意のxとμ²におけるPDFの補間といった、主要機能がサポートされている。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。