OTB 並列化ソリューション詳細
 
 


トップページ > メニコア計算並列化ソリューションサービス概要 > 並列化ソリューション詳細

並列化ソリューション



当社ではOpenMPを使った逐次処理プログラムの並列化ソリューションを提供しています.
ユーザー様は並列化に関わる検討やコーディングといった研究テーマから離れた部分の作業に煩わされず,ご自身の研究テーマに
注力することができます.また, 並列化されたソースコードと マルチコアCPUを利用することで研究を効率よく進めることができます.

ハードウェアからプログラム並列化までを一括提供


並列化ソリューションの流れ

並列化ソリューションの流れ

Step1 ソースコード診断
ソースコードや計算に必要なデータをお預かりして,プロファイリングなどを行います. アプリケーション中で
時間のかかっている部分(ホットスポット)を特定し,その部分の並列性などについて調べます.
プロファイリングや解析結果から理論的な高速化の上限や,並列化を妨げる問題に関する改善方法などを検討して予備調査を行います.
診断結果と予備調査から得られた高速化の上限や性能予測にもとづいてお見積もりをお出しいたします.

Step2 OpenMP並列化
ご注文を頂いた後,実際にOpenMPによる並列化を行って高速化の効果について確認します.
精度にあまり影響を与えない範囲での一般的なコンパイルオプションや,Intel Hyperthreadingなどの効果についても検討します.
また,並列化したアプリケーションの計算結果が妥当であることをリファレンスの結果と比較することで確認します.
最終的に並列化のための変更点や高速化結果に関する報告書と,ポーティングを行ったソースコードを納品いたします.

Step3 チューニング(Option)
OpenMPで並列化されたアプリケーションに関して,もしコードを大幅に変更することでさらに高速化の可能性があれば,
チューニング作業を行うこともできます.チューニングにおいては,たとえばアプリケーション内のデータ構造の変更,大規模な
ループ構造の変更,ライブラリの利用,別なアルゴリズムの実装というような計算結果の妥当性や収束性などの検証に
時間のかかる作業が含まれます.

チューニングについては性能の予測が難しく,また必ずしも大きな成果が上がるとは限らないためにオプションとしており,
OpenMP並列化とは別にご注文頂く形になります.


並列化ソリューション詳細

ソースコードについて

お見積りおよび実際の作業には,アプリケーションの実行に必要な全てのデータをご提供して頂く必要があります.弊社ではお預かりしたソースコードおよびデータなどを厳重に管理し,本作業に関わる内容を機密としてお客様の同意なしに外部へ公開することはございません.また,ご要望に応じて機密保持契約を結ばせて頂きます.

必要なデータ

(1) ソースコード一式
アプリケーションをコンパイルして実行するための全てのソースコードが必要です.また,弊社環境においてコンパイルと実行が可能なコードでなければなりません.
ソースコードはお客様が開発されたものであり,研究目的に使用されることが前提となります.

(2) ライブラリなど
ライブラリなどを使用されている場合はそちらも必要になります.商用ライブラリや商用ソフトなどが含まれている場合には対応しかることがございます.

(3) 入力データ・計算結果のリファレンス
開発用とベンチマーク用の入力データや計算結果の妥当性を確認するためのリファレンスデータが必要です.

(4) その他,技術的な情報など
作業の円滑な進行のため,ポーティングに関して必要な情報のご提供をお願いすることがございます.

対応プラットフォーム

基本的には以下のプラットフォームを前提としています.
OS: Linux
ソースコード: C, Fortran
コンパイラ: GNU,インテル

上記プラットフォーム以外でも対応可能な場合もございますので, 詳しくはお問い合わせください.

作業場所

原則として弊社内部での作業となります.

価格および納期

並列化の難易度によって異なりますので,実際のソースコードを診断した後でのお見積りとなります.

マシンとセットでのご注文

弊社マシンとセットでご注文いただいた場合,そのマシン上でアプリケーションの動作検証や並列化の効果を確認します.

納品物

並列化されたソースコードと,並列化作業で変更した部分や高速化に関する結果のレポートをお納めいたいます.もし,さらにチューニングが見込めそうな場合にはその結果についてもレポートに記載します.

納品するコードの取扱い

本作業で納品するコードのお取り扱いにつきましては,ソースコードの用途(研究室内部のみでの使用,研究室外部と共有,一般に公開など)などに応じてご相談させて頂いております.

備考

(1) 高速化の効果につきましてはハードウェア,コンパイラ,入力データといったさまざまな要因で変わりますので,どのような条件でも並列化による高速化の効果が得られるということを保障するものではありません.

(2) 納品後のソースコードのサポートにつきましては,納品時のソースコードの状態で,明らかに並列化作業における修正が原因で起こっている問題については納品後のサポート対象となります.
もともとのソースコードにバグが含まれていた場合,納品後のコードをユーザー様で変更された場合,ご提供の入力データセットに含まれないデータを使用した場合などにつきましては,基本的にサポート対象外となります.

OpenMP以外での並列化

並列化ソリューションはOpenMPによる並列化が前提となりますが,CUDAやOpenCLといったGPGPUにつきましても,条件によってはお受けいたしますのでお問い合わせ下さい.



掲載の許可を頂いたポーティング事例についてご紹介します.

第一原理計算による金属中の電子状態の計算

東北大学の応用物理系の研究室様からのご依頼で, 第一原理計算による金属内部の電子状態の計算を行うFortranプログラムに対して
OpenMPによる並列化を実施しました.研究室様では,これまで1コアの逐次処理プログラムをCPUのコア数と同じ数だけ実行されており,
アプリケーションの実行時間が数日程度であったため大きな支障はなかったそうです.

しかし,今後の研究でより多くの計算点を使ったシミュレーションを行うにあたって,アプリケーションの実行時間が 数週間単位になるという
問題に直面し,プログラムの並列化を導入されました. 2つの類似のアプリケーションいついてOpenMPによるポーティングを行った結果,
4コア搭載のCore i5-4670 (3.40GHz, 4core)を使って約3.7倍高速にアプリケーションを実行することができました.また,予備調査の
段階でIntel Xeon E5-2687W v2 (3.40GHz 8core)を2個使い,約13.5倍の高速化を行うことができています.

コンパイルオプションやHyperthreadingの効果についても検討し,最適化オプション-O3などは効果がなかったものの,別なオプションに
よって逐次処理,OpenMP並列計算の両方について約20%程度実行時間を低減することができ,精度にも問題ないことを確認しました.


計算実行環境: OTB製デスクトップPC

OS

CentOS 6.5

CPU

Core i5-4670 @ 3.40GHz 4core

Memory

32GB (8GBx4, 1600MHz)

Compiler

インテルFortran v14.0.2



アプリケーションの実行時間比較グラフ



お問合せ

ご質問や,お見積もりのご依頼はページ左上にある「当社コンタクトのご案内」あるいは本ページの<お問い合わせリンク>からご照会ください.


コード並列化無料診断中です

並列ソリューションに関するトピックスをスライド(Slide-Share)でも紹介していますので併せてご覧下さい.



 (C)Copyright OTB Transnational Inc. 2014 All rights reserved.