トップ サイトマップ
関連情報

HPCチューニングメニューのご紹介

Fortranなどのプログラムの高速化、並列化
マルチコア/マルチプロセッサ向け移植

NAGは、以下のような様々なコードチューニングが可能です。



これらチューニング項目について、NAGが直接実施あるいはお客様の開発をサポートした、HECToRプロジェクト(英国HP:http://www.hector.ac.uk/)での具体的なチューニング作業例をご紹介します。
以下の事例の多くの場合は、一つのコードに対して複数のチューニング項目を行っています。
より詳細なチューニング事例については、事例一覧ページからご覧ください。代表事例の概要については、代表的な成功事例チューニング解析事例もご覧ください。

並列処理の適用による計算の高速化

1CPU内の複数コアを効率的に利用する、複数CPUへデータや処理を分散して並列化する、マルチコアおよびマルチCPUの全てを効率的に利用して実行時間を圧縮する等の最適化を行います。本サービスではこれら目的に応じて、効率的な並列コードへお客さまプログラムを最適化します。

MPI並列化とコード最適化

ここで示す例は、シリアルコードのMPI並列化およびMPI並列コードの最適化です。

プログラム コード特性 チューニング内容
BOFFS(Block overset Fast Flow Solver)[2] 空気力学、CFDコード、圧縮性、陽解法、ブロックoverset構造格子、ハイブリッド並列 既存のMPIタスクに対して複数メッシュブロック割当てアルゴリズムを実装。
CASTEP[7] 物性科学、DFTコード、MPI並列 バンド並列をMPIで実装
Compact3D[27] 空気力学、CFDコード、圧縮性、陽解法、構造格子、シリアルコード 2DECOMP&FFTライブラリーを用いた領域分割とMPI並列化、既存の空間の陰的スキームにステンシルベースの陽的スキームを追加、2Dペンシル領域へのハロセル追加。
DL_POLY[17] 物性科学、MDコード、MPI並列 並列リンクセルアルゴリズムの実装
Fluidity[20] 流体解析、CFDコード、非圧縮性混相流体、陽解法、有限要素法、アダプティブ非構造格子、ハイブリッド並列 既存のシリアルバージョンのアダプティビティ処理コンポーネントの並列化、ディテクターを並列アダプティビティ処理へ実装。
Incompact3D[26],
2DECOMP&FFT
空気力学、CFDコード、非圧縮性、陽解法、構造格子、MPI並列 既存の1D分割MPI並列コードへ、2D領域分割ライブラリ2DECOMP&FFTによる2Dペンシル分割によ並列化と、多次元配列の次元交換機能の実装
LEM(Met Office Large Eddy Model)[30] 気象学、CFDコード、非圧縮性流体、陽解法、構造格子、MPI並列 並列BiCGStab法の実装
MicroMag[31] 磁気鉱物、Landau-Lifschitz-Gilbert方程式、有限要素法、シリアルコード 要素による領域分割を実装し、MPI並列化
NEMO(Nucleus for European Modelling of the Ocean)[32] 海洋気象、OPA海洋エンジンコンポーネント、MPI並列 3次元配列インデックスとネストしたループの入れ替えを行いキャッシュ再利用効率を向上、より柔軟な領域分割の導入、ハロ交換の配列インデックスの入替、および陸地セル上の余分な計算の除去、等による並列効率改善
OpenFOAM[33] 汎用流体解析、MPI並列 HECToRへの移植インストール/テストおよびベンチマーク評価
PEQUOD(Parallel Quasi-Geostrophic Model)[4] 海洋循環、CFDコード、非圧縮性流体、多層準地衡的渦位方程式、MPI並列 逆渦位変換のヘルムホルツ・ソルバーMPI並列化
SPRINT(Simple Parallel R Interface)[42] 遺伝子統計解析R-package、シリアルコード 並べ替え検定関数のMPI並列化、ランダムフォレスト分類器におけるブートストラップ標本からのツリー生成タスクをMPI並列化、rank product法へMPI並列ブートストラップ法を実装、サポートベクターマシンのMPI並列化
VASP(Vienna Ab initio Simulation Package)[48] 物性科学、DFTコード、MPI並列 k点上のMPI並列化

*並列計算のための領域分割に関しては、項目領域分割手法の改善を参照してください。


OpenMP並列化とコード最適化

ここで示す例は、MPI並列コードに対するOpenMP並列の導入によるハイブリッド並列化です。

プログラム コード特性 チューニング内容
BOFFS(Block overset Fast Flow Solver)[2] 空気力学、CFDコード、圧縮性、陽解法、ブロックoverset構造格子、ハイブリッド並列 メッシュブロック内計算のOpenMP並列化、三重対角ソルバのRed-Black方式のOpenMP並列化
CASINO[6] 物性科学、量子モンテカルロ法コード、MPI並列 単一配位計算内の電子数ループのOpenMP並列化
CASTEP[7] 物性科学、DFTコード、MPI並列 Vサイクル/マルチグリッド法のOpenMP並列化
CONQUEST[11] 物性科学、オーダーN法DFTコード、MPI並列 1ハロ領域内の原子数ループのOpenMP並列化
CP2K[13] 量子化学、DFTコード、MPI並列 FFT、実空間/平面波変換のOpenMP並列化
DL_POLY[17] 物性科学、MDコード、MPI並列 SHAKE/RATTLEアルゴリズムをOpenMP並列化
DSTAR(Direct Simulation of Turbulence And Reaction)[18] 空気力学、CFDコード、圧縮性、陽解法、構造格子、MPI並列 ローカルグリッド上の演算をOpenMP並列化
Fluidity-ICOM(Imperial College Ocean Model)[21] 流体解析、CFDコード、非圧縮性混相流体、陽解法、有限要素法、アダプティブ非構造格子、MPI並列 有限要素アセンブリステージのOpenMP並列化
HELIUM[24] 原子分子物理、時間依存シュレディンガー方程式、MPI並列 基底関数上のOpenMP並列化
TOMCAT/GLOMAP(Global Modelling of Aerosol Processes)[44] 大気化学、エアロゾル微視的物理モデル解析、MPI並列 緯度/経度ループ上のOpenMP並列化
VASP(Vienna Ab initio Simulation Package)[48] 物性科学、DFTコード、MPI並列 PAW擬ポテンシャル等のタスク内演算をOpenMP並列化

シリアルコードからのOpenMP/MPIハイブリッド並列化


プログラム コード特性 チューニング内容
CABARET(Compact Accurate Boundary Adjusting high REsolution Technique)[3] 空気力学、CFDコード、圧縮性、陽解法、Gambit非構造格子、シリアルコード 非構造格子の自動領域分割を実装してMPI並列化、同時に、セル数とサイド数ループをOpenMP並列化
DL_ALMC(adaptive Kinetic Monte Carlo)[16] 物性科学、adaptive kinetic Monte Carlo法 エネルギーと力の計算をOpenMP/MPIハイブリッド並列化
UKRMol-in(UK R-matrix polyatomic suite)[3] 原子分子物理、時間依存R行列法、シリアルコード ハミルトニアンの構築と対角化処理/spMV演算をOpenMP/MPIハイブリッド並列化

その他、以下のハイブリッド並列コードのチューニング/移植/性能調査の例があります。

プログラム コード特性 チューニング内容
COSA[12] 空気力学、CFDコード、圧縮性流体、陽/陰解法、有限体積法、マルチブロック構造格子、ハイブリッド並列 負荷バランス、通信効率、I/O、収束性等、全般的なチューニング
TPLS(Two-Phase Level Set)[45] 空気力学、CFDコード、二相流ナビエストークス流体ソルバー、ハイブリッド並列 冗長なMPIバリアやOpenMP集団操作を削除等のチューニング
WRF model(Weather Research and Forecast model)[50] 気象モデリング、CFDコード、圧縮性、陽解法、スタッガード格子、ハイブリッド並列 移植と全体性能プロファイリング

通信の最適化

実績の多くはMPI通信に関するものです。

プログラム コード特性 チューニング内容
BOFFS(Block overset Fast Flow Solver)[2] 空気力学、CFDコード、圧縮性、陽解法、ブロックoverset構造格子、ハイブリッド並列 既存ハイブリッド並列コードへ、ブロック間データ転送に非同期MPI通信を実装
CABARET(Compact Accurate Boundary Adjusting high REsolution Technique)[3] 空気力学、CFDコード、圧縮性、陽解法、Gambit非構造格子、シリアルコード ステップ毎のハロデータへのアクセス通信において、間接参照スキームが支配して効率が悪いため、非同期MPIを実装し、通信と計算のオーバーラップを実装
CASTEP[7] 物性科学、DFTコード、MPI並列 MPI_Alltoall通信のシェアードメモリーバッファ利用による最適化 、コミュニケーションパターンをシストリックループ(リングトポロジー)を用いた非ブロッキング非同期通信への置き換え
DL_POLY[17] 物性科学、MDコード、MPI並列 MPI並列コードへ、計算と通信のオーバーラップの実装
PEQUOD(Parallel Quasi-Geostrophic Model)[4] 海洋循環、CFDコード、非圧縮性流体、多層準地衡的渦位方程式 MPI_Alltoallw集団通信をMPI_Alltoallの使用へ修正
COSA[12] 空気力学、CFDコード、圧縮性流体、陽/陰解法、有限体積法、マルチブロック構造格子、ハイブリッド並列 送信データあるいは受信したデータを配列へ収集して送信するように改変。MPI_Allreduce通信の最適化
DG-DES(Dynamic Grid - Detached Eddy Simulation)[15] 空気力学、CFDコード、圧縮性流体、陽解法、非構造格子、MPI並列 プロファイリングとMPI通信周りのシンプルなコード改善
Incompact3D[26],
2DECOMP&FFT
空気力学、CFDコード、非圧縮性、陽解法、構造格子、MPI並列 2DECOMP&FFTにおけるノンブロッキングMPIグループ通信の実装による計算と通信のオーバーラップを実装
SOFTaR(Simulations of Flames: Turbulence and Reaction)[40] 空気力学・燃焼、CFDコード、圧縮性流体、陽解法、構造格子、MPI並列 MPI_SEND/RESVをALLTOALL集団通信へ変更して効率化
TPLS(Two-Phase Level Set)[45] 空気力学、CFDコード、二相流ナビエストークス流体ソルバー、ハイブリッド並列 通信と計算のオーバーラップのために、ノンブロッキング1対1通信を実装

ファイルI/Oの高速化

これが必要になる多くの場合は、お客様がご利用のマシンを1コア環境からマルチコア環境へ移行するケースです。既存のシリアル実行I/O処理を、MPIや外部ライブラリを用いて効率的に並列処理するようにチューニングします。

プログラム コード特性 チューニング内容
CABARET(Compact Accurate Boundary Adjusting high REsolution Technique)[3] 空気力学、CFDコード、圧縮性、陽解法、Gambit非構造格子、ハイブリッド並列 MPI-IO実装によるI/O並列化
CARP(Cardiac Arrhythmia Research Package)[5] 心臓モデリング、有限要素法、心臓バイドメイン方程式、MPI並列 出力ルーチンの高負荷を非同期処理実装で削減
CASINO[6] 物性科学、量子モンテカルロ法コード、MPI並列 I/O処理の最適化とMPI並列によるデータ分散処理の追加によるチューニング
CASTEP[7] 物性科学、DFTコード、MPI並列 1対1MPI通信からMPI集団通信への変更によるI/O効率化
COSA[12] 空気力学、CFDコード、圧縮性流体、陽/陰解法、有限体積法、マルチブロック構造格子、ハイブリッド並列 事前にデータを配列へ集約して一度に書き込む様に修正、MPI I/Oを改善
DL_POLY[17] 物性科学、MDコード、MPI並列 MPI-I/Oによる並列入出力処理実装
DSTAR(Direct Simulation of Turbulence And Reaction)[18] 空気力学、CFDコード、圧縮性、陽解法、構造格子、MPI並列 MPI-I/Oによる並列入出力処理実装
NEMO(Nucleus for European Modelling of the Ocean)[32] 海洋気象、OPA海洋エンジンコンポーネント、MPI並列 格子生成に関する調査と陸地セルの削除、netCDF 4.0への変更
OpenIFS(Integrated Forecasting System)[34] 気象モデリング、静水圧流体、半陰解法、ハイブリッド並列 並列I/O機能(FDB関数)を導入、Lustreファイルストライピング・サイズやその数、hugepage設定、FDBコンフィグレーションに関する性能調査
SPECFEM3D_GLOBE[41] 地震波解析、スペクトル有限要素法(SEM)、MPI並列 独立したメッシュ生成部を解析計算コードへマージして中間メッシュデータI/Oを削除
SPRINT(Simple Parallel R Interface)[42] 遺伝子統計解析R-package、シリアルコード ピアソンのペアワイズ相関関数におけるMPI-I/O並列化
TOMCAT/GLOMAP(Global Modelling of Aerosol Processes)[44] 大気化学、エアロゾル微視的物理モデル解析、MPI並列 I/O最適化
VOX-FE[49] 骨格モデリング、ボクセルベース有限要素法、MPI並列 netCDF-HDF5フォーマットへ変更することでファイルサイズを縮小、並列netCDFルーチンを用いたディスクI/O並列化

使用メモリーの削減

近年のマルチコアCPUのトレンドでは、高速アクセス可能なメモリー量はメモリー階層化により制約が多くなりつつあります。特に並列計算においては並列演算量とメモリー量、通信量は複雑なトレードオフ関係にあります。以下の例はSHMEMやキャッシュ効率やより省メモリーなアルゴリズム変更によるチューニングです。

プログラム コード特性 チューニング内容
CASINO[6] 物性科学、量子モンテカルロ法コード、MPI並列 SHMEM利用による省メモリー化
CASTEP[7] 物性科学、DFTコード、MPI並列 メモリー量が系のサイズに関して1次スケールするL-BFGS(limited memory BFGS)法の実装

負荷バランスの改善

負荷分散の詳細な分析にはコードの性能プロファイリングが必須です。以下の事例は性能分析から実装、評価までの作業を含みます。

*この他、外部ライブラリを用いた改善事例もございます。項目領域分割手法の改善を参照してください。

プログラム コード特性 チューニング内容
BOFFS(Block overset Fast Flow Solver)[2] 空気力学、CFDコード、圧縮性、陽解法、ブロックoverset構造格子、ハイブリッド並列 既存ハイブリッド並列コードへ、MPIタスクへ複数メッシュブロック割当てを可能にした。
CP2K[13] 量子化学、DFTコード、MPI並列 グリッドブロックのプロセスへのマッピング改良による負荷バランス改善
CONQUEST[11] 物性科学、オーダーN法DFTコード、MPI並列 MDや座標最適化において、各原子が特定領域に固定でアサインされる制限(利用コア数制限)を解除
COSA[12] 空気力学、CFDコード、圧縮性流体、陽/陰解法、有限体積法、マルチブロック構造格子、ハイブリッド並列 格子ブロックの最大値を並列コア最大数とする制限解除
DL_POLY[17] 物性科学、MDコード、MPI並列 動的負荷バランス機能の組込み
Fluidity[20] 流体解析、CFDコード、非圧縮性混相流体、陽解法、有限要素法、アダプティブ非構造格子、MPI並列 Zoltanライブラリの組込みによる負荷バランスとデータマイグレーション、メッシュのリオーダリング
ISPH(incompressible smoothed particle hydrodynamics)[28] 流体解析、ISPH法、MPI並列 圧力ポアソン方程式ソルバーに対してnew Yaleスパース行列フォーマットをPETScのCSRフォーマットへ置き換え、全体行列構築前に粒子を再番号付け。
SWT/SS3F[43] 流体解析、CFDコード、非圧縮性流体、陽解法、構造格子、クエットポアズイユ流解析、MPI並列 メッシュの再番号付けアルゴリズムの実装

収束性の改善

多くの数値シミュレーションコードでは、陰的に解を求めるアルゴリズムが多く存在し、特に線形システムに対しては、解くべき問題に対応して様々な手法の選択余地があります。NAGは、これまでの豊富な数値計算ライブラリ開発とチューニング実績から、適切な手法実装のサポートが可能です。

*その他、外部ライブラリを用いた最適化については、項目数値計算ライブラリの組込みやパラメータチューニングをご覧ください。

プログラム コード特性 チューニング内容
Chemshell[8] 量子化学、QM/MM連成計算環境ツール、MPI並列 エネルギー最小化計算へのmicroiterative法実装
Citcom(California Institute of Technology Convection in the Mantle)[9] 地殻力学、有限要素法、MPI並列 既存のVサイクルを改善し、WサイクルとFサイクルを実装。スムーシングについては、既存のヤコビ法ソルバーをガウス・ザイデル法ソルバーへ置き換え、境界ノードに対してblack/redプロセス間通信を実装。
COSA[12] 空気力学、CFDコード、圧縮性流体、陽/陰解法、有限体積法、マルチブロック構造格子、ハイブリッド並列 Point-Implicit Runge-Kutta(PIRK)スムーサーへLAPACKを実装

領域分割手法の改善

領域分割を利用する並列計算においては、分割のやり方やパーティションの順序が並列性能に大きな影響を与えます。NAGは、多くのユーザが利用しているオープンソース2DECOMP&FFTライブラリーを開発した実績を持ち、既存コードの分析から適切な領域分割手法/ライブラリ組込みまでの多くの実績を保有しています。

プログラム コード特性 チューニング内容
BOFFS(Block overset Fast Flow Solver)[2] 空気力学、CFDコード、圧縮性、陽解法、ブロックoverset構造格子、ハイブリッド並列 1D領域分割MPI並列を2D領域分割MPI並列へ更新
METIS/Scotch(Cabaretへ適用) 領域分割パッケージ 両者をCABARETコードで性能を評価した(10万要素を用いた3D後方ステップ周りの乱流、256コアでテスト)。Scotchが僅かに有利だった。
CARP(Cardiac Arrhythmia Research Package)[5] 心臓モデリング、有限要素法、心臓バイドメイン方程式、MPI並列 領域分割コードへParMetisを組込み最適化
Code_Saturne[10] 汎用流体解析、CFDコード、MPI並列 Metis, ParMetis,Scotch, PT-Scotch, Zoltanを用いたメッシュ領域分割コードの調査・選定
CONQUEST[11] 物性科学、オーダーN法DFTコード、MPI並列 3Dヒルベルト空間充填曲線分割法を実装
DSTAR(Direct Simulation of Turbulence And Reaction)[18] 空気力学、CFDコード、圧縮性、陽解法、構造格子、MPI並列 既存の1Dスラブ分割に対し、2DECOMP&FFTライブラリを用いた2次元ペンシル領域分割適用。
EBL(Ekman Boundary Layer)[19] 空気力学、CFDコード、非圧縮性、陽解法、構造格子、MPI並列 既存の1Dスラブ分割に対し、2DECOMP&FFTライブラリを用いた2次元ペンシル領域分割適用。
2DECOMP&FFT/Incompact3D[26] 2次元ペンシル分割とFFTインターフェイスライブラリ 2Dペンシル領域分割とそのMPI並列FFTインターフェイスを備えた、2DECOMP&FFTライブラリーを開発。
MicroMag[31] 磁気鉱物、Landau-Lifschitz-Gilbert方程式、有限要素法、MPI並列 ParMetisによる要素による領域分割を実装

数値計算ライブラリの組込みやパラメータチューニング

NAGは、多くのユーザを持つNAG数値計算ライブラリの開発と販売を行っています。オープンソースBLAS、LAPACKへのコード寄与の実績も豊富です。その他の多くの数学ライブラリに関しても豊富な経験を持ち、様々な調査や組込み、最適化も可能です。

プログラム コード特性 チューニング内容
CARP(Cardiac Arrhythmia Research Package)[5] 心臓モデリング、有限要素法、心臓バイドメイン方程式、MPI並列 楕円型PDEにおけるPETSc/hyper AMGプレコンディショナのパラメータ最適化、陽解法でのODEのPETSc性能調査と最適化
CASTEP[7] 物性科学、DFTコード、MPI並列 逆行列、対角化計算用にScaLAPCK組込み、三重対角ソルバーの最適化(dtrmmおよびztrmm BLASサブルーチンへの変更)
CONQUEST[11] 物性科学、オーダーN法DFTコード、MPI並列 ハミルトニアン対角化に用いるScaLAPACKパラメータを最適化
DL_POLY[17] 物性科学、MDコード、MPI並列 DaFTへ混合基数FFTを実装し、並列コア数の選択幅を広げた。DaFT内の1次元FFTへスレッド化されたACMLライブラリルーチンを組込
Fluidity[20] 流体解析、CFDコード、非圧縮性混相流体、陽解法、有限要素法、アダプティブ非構造格子、MPI並列 block-CSR格納形式の組み込み、PETScへのインターフェイスにおいて非零要素が狭いバンド(あるいはクラスタ)になるようにスパース行列の再順序化。
Fluidity-ICOM(Imperial College Ocean Model)[21] 流体解析、CFDコード、非圧縮性混相流体、陽解法、有限要素法、アダプティブ非構造格子、ハイブリッド並列 スパース線形システムへのPETSc/HYPER BoomerAMGプレコンディショナの組込
TPLS(Two-Phase Level Set)[45] 空気力学、CFDコード、二相流ナビエストークス流体ソルバー、ハイブリッド並列 圧力ソルバーを、PETScライブラリブロックヤコビ前処理とGMRES法呼出しへ置換
UKRMol-in(UK R-matrix polyatomic suite)[3] 原子分子物理、時間依存R行列法シリアルコード 対角化ソルバーにSLEPc/PETScライブラリ導入

*領域分割ライブラリに関しては、項目領域分割手法の改善を参照してください。


ベクトル化チューニング

ベクトル演算マシン上への移植やベクトル化チューニング(必要であれば並列ベクトル化)の実績を有します。

プログラム コード特性 チューニング内容
CASTEP[7] 物性科学、DFTコード、MPI並列 ベクトル演算コードの全般的なチューニング
HYPO4D(HYdrodynamic Periodic Orbits in 4D)[25] 流体解析、格子ボルツマン法、MPI並列 基本的なベクトル演算コードやループに対するチューニング

タスクファーミング並列化

MPI_COMM_WORLDを分割して並列処理を行うタスクファーミング手法についての事例です。

プログラム コード特性 チューニング内容
DL_ALMC(adaptive Kinetic Monte Carlo)[16] 物性科学、adaptive kinetic Monte Carlo法 鞍部点探索処理をタスクファーミング並列化
Chemshell[8] 量子化学、QM/MM連成計算環境ツール、MPI並列 有限差分へシアン計算でのグラジェント計算のタスクファーミング並列化
CRYSTAL[14] 量子化学、HF/DFTコード、MPI並列 オーダーN法を実装、系をサブシステムへ自動分割し、そのサブシステムを、タスクファーミングされたMPP CRYSTALインスタンス内で独立に動作させる。全フェルミエネルギーと全密度行列計算のための、固有値及び固有ベクトルの通信を実装する。

外部アプリケーションとの連成シミュレーション

主に分子動力学と、他の手法との連成シミュレーションコードの開発事例です。

プログラム コード特性 チューニング内容
CASINO[6] 物性科学、量子モンテカルロ法コード、ハイブリッド並列 分子動力学コードとの連成機能追加
Transflow/StreamMD[46] CFDコード/MDコード連成、MPI並列 データのパッキングと通信のための連成ルーチン開発、Flekkoyらによる流速交換法によるデータ変換実装、ノンブロッキングMPI通信実装、MDファーミング手法の実装

分野固有のアルゴリズムの改善

プログラム コード特性 チューニング内容
CONQUEST[11] 物性科学、オーダーN法DFTコード、MPI並列 ブリルアンゾーン積分法へのMethfessel-Paxton近似の実装、KerkerプレコンディショナとWave-dependent metricを用いたセルフコンシステント計算実装、スピン分極やvan der Waals力のような弱い相互作用の実装。
DL_POLY[17] 物性科学、MDコード、MPI並列 リンクセル・スキーム内のVerlet近隣リスト(VNL)計算を、一回ではなく複数回の時間ステップ毎に条件付きで更新されるように拡張。multiple time steppingとしてReversible Reference System Propagator Algorithm(REAPA)を用いたシンプレクティック・スキームを実装し、高コスト演算の計算回数を削減。
GS2[23] プラズマ物理、ジャイロ運動論的乱流解析、MPI並列 線形計算と非線形計算間のデータ変換に関連するローカルデータコピーの性能を改善し、間接アドレッシングの利用率を削減して高速化、非線形計算で必要となるデータ分割に、'アンバランス'な分割を実装
ISPH(incompressible smoothed particle hydrodynamics)[28] 流体解析、ISPH法、MPI並列 MPI片方向通信とZoltanの分散ディレクトリユーティリティ活用で最適化、最近傍探索カーネルを、前処理付き動的ベクトルとリンクリストを用いて修正
LAMMPS[29] 物性科学、MDコード、MPI並列 平坦境界とボロノイ図形ライブラリVoro++を用いた膜境界条件、非線形弾性バネ接触モデル(Hertz-Mindlin相互作用、Potyondy and Cundallモデル)の実装
RMT[38] 原子分子物理、多電子原子分子系の時間依存R行列法、MPI並列 内殻と外殻間の負荷バランスの改善とMPI通信の効率化、内殻と外殻を繋ぐプロパゲータモデルの最適化
SLDECOMP[39] 地震解析、粒子フィルタ法を用いた潮位時系列解析、MPI並列 非零要素の除外、配列アクセス連続化、参照コピーへの変更

GPUやメニーコアCPUへの移植および高速化

お客様コードをGPUやIntel®Xeon Phi™環境へ移植し、そのデバイスのハードウェア性能を十分に引き出すように最適化します。必要であれば、要求精度を保つより適切なアルゴリズムへの変更も行います。

Cuda/GPU環境への移植と最適化:
MRG32k3a(L'Ecuyer),MT19937(Mersenne Twister),Sobolの各種乱数発生器、モンテカルロ計算におけるブラウン橋(Brownian Bridge)生成器、倍精度コレスキー分解、LU分解

メニーコアアーキテクチャへの最適化:
弊社NAGライブラリーの多くは、Intel®Xeon Phi™最新のNights landingアーキテクチャに対応しています。


組込みシステムなど専用システムへの移植

専用システム、特に組込みシステムへのお客様コードや弊社NAG数値計算ライブラリーの移植、最適化についてはご注文に応じて行っています。NAGライブラリーについては、x86、x64、POWER、PowerPC他多くのアーキテクチャに対応し、VxWorks/ARM系プロセッサへの実績も有しています。


その他のサービスについて

この他、古いFortranプログラムの現代的な形式への書換や移植等のFortranコンサルティング、また、より高度な受託開発や各種アルゴリズムコンサルティングとして、 カスタムアルゴリズム開発数理最適化サービス自動微分ソリューション 等のご依頼も承ります。各サービスページをご覧ください。


ご利用について

本サービスのご依頼、チューニングや高速化業務の委託をご希望場合は、まずはコンサルティングサービス・ご相談フォームにご記入の上お問い合わせください。またはお電話(03-5542-6311)にてお問い合わせ下さい。


ここで記載したプログラムコードについて

さらに詳しい内容/文献は事例一覧ページの各コード事例ページを参照してください。

[1] MRBV: http://www.hector.ac.uk/cse/distributedcse/reports/mrbv/
[2] BOFFS: Jefferson-Loveday, R. 2008 Numerical simulations of unsteady impingement jet flows. PhD thesis, Swansea University, UK.
http://rsta.royalsocietypublishing.org/content/367/1899/2999
[3] CABARET: "Compact Accurately Boundary Adjusting high-REsolution Technique for Fluid Dynamics", S.A. Karabasov and V.M. Goloviznin, J. Comput.Phys., 228(2009), pp7426-7451.
[4] PEQUOD: "CABARET in the Ocean Gyres", S.A. Karabasov, P.S. Berloff and V.M. Goloviznin, Journal of Ocean Modelling, 30 (2009), p55168.
[5] CARP: https://carp.medunigraz.at/
[6] CASINO: https://vallico.net/casinoqmc/
[7] CASTEP: http://www.castep.org/
[8] ChemShell: http://www.chemshell.org
[9] CITCOM: https://geodynamics.org/cig/software/citcoms/, University of Durham、Jeroen van Hunen博士所有のカルテシアンバージョン
[10] Code_Saturne: http://www.code-saturne.org/
[11] Conquest: http://www.order-n.org/
[12] COSA: M.S. Campobasso, A. Piskopakis, M. Yan, Analysis of an Oscillating Wing in a Power-Extraction Regime Based on the Compressible Reynolds Averaged Navier-Stokes Equations and the K-ω SST Turbulence Model, ASME paper GT2013-94531, presented at the ASME/IGTI Turbo Expo 2013 Technical Conference, 3rd-7th June 2013, San Antonio, Texas, USA.
[13] CP2K: https://www.cp2k.org/
[14] CRYSTAL: http://www.crystal.unito.it/
[15] DG-DES: https://www.sheffield.ac.uk/mecheng/staff/nqin
[16] DL_AKMC: https://ccpforge.cse.rl.ac.uk/gf/project/kmc/
[17] DL_POLY_3,4: http://www.scd.stfc.ac.uk/SCD/44516.aspx
[18] DSTAR: J. Xia and K. H. Luo, "Conditional statistics of inert droplet effects on turbulent combustion in reacting mixing layers", Combustion Theory and Modelling, vol. 13(5):901-920, 2009.
[19] EBL: Spalart, P.R., Coleman, G.N., and Johnstone, R. (2009)"Retraction: “Direct numerical simulation of the Ekman layer: A step in Reynolds number, and cautious support for a log law with a shifted origin” [ Phys. Fluids 20, 101507 (2008) ]", Phys. Fluids 21, 109901 (2009)
[20] Fluidity: https://launchpad.net/fluidity
[21] Fuluidity-ICOM: http://www.scd.stfc.ac.uk/research/tech/ape/44455.aspx
[22] GROMACS: http://www.hector.ac.uk/cse/distributedcse/reports/GROMACS/
[23] GS2: http://gs2.sourceforge.net/
[24] HELIUM: Smyth ES, Parker JS and Taylor KT, 1998, Comput Phys Comm, 144, 1
[25] HYPO4D: 開発者UCL Peter Coveney博士 https://www.ucl.ac.uk/chemistry/people/peter-coveney
[26,27] Incompact3D/Compact3D: http://www.incompact3d.com/
[28] ISPH: Guo X, Lind SJ, Rogers B D, Stansby P K, Ashworth M. Efficient Massive Parallelisation for Incompressible Smoothed Particle Hydrodynamics with 108 Particles. Proc. 8th International SPHERIC Workshop, Editor J.E. Olsen. pp 397-402. 4-6 June 2013
[29] LAMMPS: http://lammps.sandia.gov/
[30] LEM: http://www.metoffice.gov.uk/research/modelling-systems/large-eddy-model
[31] MicroMag: 開発者エジンバラ大 Wyn Williams博士 http://www.ed.ac.uk/geosciences/people?indv=527
[32] NEMO: http://www.nemo-ocean.eu/
[33] OpenFOAM: http://www.openfoam.com/
[34] OpenIFS: https://software.ecmwf.int/wiki/display/OIFS/OpenIFS+Home
[35] PRMAT: http://www.hector.ac.uk/cse/distributedcse/reports/prmat/,
http://www.hector.ac.uk/cse/distributedcse/reports/prmat2/
[36] QSGW: http://www.hector.ac.uk/cse/distributedcse/reports/QSGW/
[37] Quantum Espresso: http://www.hector.ac.uk/cse/distributedcse/reports/gww/
[38] RMT: 開発者 http://www.corinf.eu/partners/queens-university-belfast/
[39] SLDECOMP: 開発者 http://www.eri.u-tokyo.ac.jp/people/nagaoh/
[40] SOFTaR: EPSRC grant EP/G062714/1 "Clean Coal Combustion: Burning Issues of Syngas Burning" (PI: Dr Xi Jiang; PDRA: Dr George Siamas)
[41] SPECFEM3D_GLOBE: https://geodynamics.org/cig/software/specfem3d_globe/
[42] SPRINT: https://www.epcc.ed.ac.uk/projects-portfolio/sprint-parallel-statistics-genetic-research
[43] SWT: G.N. Coleman, D. Fedorov, P.R. Spalart, and J. Kim. A numerical study of laterally strained wall-bounded turbulence. Journal of Fluid Mechanics, 639:443-478, 2009.
SS3F: P.J. Archer, T.G. Thomas, and G.N. Coleman. The instability of a vortex ring impinging on a free surface. Journal of Fluid Mechanics, 642:79-94, 2010.
[44] TOMCAT/GLOMAP: https://www.see.leeds.ac.uk/research/icas/research-themes/atmospheric-chemistry-and-aerosols/groups/aerosols-and-climate/the-glomap-model/
[45] TPLS: https://sourceforge.net/projects/tpls/
[46] StreamMD/Transflow: http://www.imperial.ac.uk/people/edward.smith05
http://www.imperial.ac.uk/people/t.zaki
[47] UKMol-in: https://ccpforge.cse.rl.ac.uk/gf/project/ukrmol-in/
[48] VASP: https://www.vasp.at/
[49] VOX-FE: 開発者 http://www2.hull.ac.uk/science/mbe.aspx
[50] WRF model: http://www.wrf-model.org/

Results matter. Trust NAG.

Privacy Policy | Trademarks