Agenda 富士通 C++ コンパイラ C++ コンパイラの概要 C++ コードに対する課題 最適化の拡張 性能状況 OpenFOAM FX10 向けOpenFOAM OpenFOAM 構築 OpenFOAM 利用 OpenFOAMの性能改善 流体解析ヘルプデスク (OpenFOAM) 1

Size: px
Start display at page:

Download "Agenda 富士通 C++ コンパイラ C++ コンパイラの概要 C++ コードに対する課題 最適化の拡張 性能状況 OpenFOAM FX10 向けOpenFOAM OpenFOAM 構築 OpenFOAM 利用 OpenFOAMの性能改善 流体解析ヘルプデスク (OpenFOAM) 1"

Transcription

1 富士通 C++ コンパイラの 性能向上の取り組み 2013 年 9 月 27 日富士通株式会社ミドルウェア事業本部アプリケーションマネジメント ミドルウェア事業部第四開発部千葉修一

2 Agenda 富士通 C++ コンパイラ C++ コンパイラの概要 C++ コードに対する課題 最適化の拡張 性能状況 OpenFOAM FX10 向けOpenFOAM OpenFOAM 構築 OpenFOAM 利用 OpenFOAMの性能改善 流体解析ヘルプデスク (OpenFOAM) 1

3 富士通 C++ コンパイラ 2

4 C++ コンパイラの概要 製品名 Parallelnavi for MP10 - 京 向け Technical Computinig Suite - PRIMEHPC FX10 向け 仕様 ISO/IEC 14882:2003 規格 GNU C++ コンパイラ仕様 ( 一部 ) Standard Template Library: STLport / / fast mode 機能 逐次最適化機能インライン展開 ループ最適化 SIMD 化 ソフトウェアパイプライニング etc. 並列化機能自動並列化 OpenMP API Version 3.0 May 2008 * 京 は独立行政法人理化学研究所の登録商標です * スーパーコンピュータ 京 は 独立行政法人理化学研究所と富士通の共同開発です 3

5 C++ コードに対する課題 アプリケーション実行性能における問題 (sec) 倍差 multiphase/interdymfoam/ras/sloshingtank3d multiphase/multiphaseinterfoam/laminar/dambreak4phase multiphase/interfoam/ras/dambreak multiphase/mrfmultiphaseinterfoam/mixervessel2d incompressible/mrfsimplefoam/mixervessel2d heattransfer/buoyantsimpleradiationfoam/hotradiationroom heattransfer/buoyantpimplefoam/hotroom heattransfer/buoyantboussinesqpimplefoam/hotroom compressible/rhoporousmrfpimplefoam/mixervessel2d combustion/pdrfoam/flamepropagationwithobstacles DNS/dnsFoam/boxTurb16 basic/potentialfoam/pitzdaily 富士通 C /09 GNU C++ 性能測定は FX10 を利用 OpenFOAM 付属チュートリアルコード 13 本選出における性能比較で 2.3 倍差 4

6 C++ コードに対する課題 最適化機能の改善計画 特殊なコード最適化機能 コード一括変換型最適化 ループの多段変形効果 : CRTP カ ウスサ イテ ル法 smoother C++ コード最適化機能 C++ 言語仕様最適化機能 再帰向けインライン展開の強化 スケジューリングの改善効果 : 再帰型テンプレート インライン展開の強化 STLport fast mode の開発効果 : テンプレート operator etc. 開発言語共通最適化機能 Base Function 1st Ext. 2nd Ext. 3rd Ext. 2012/ / / /09 Fortran/C/C++ 共通汎用最適化 ハードウェア向け最適化 5

7 C++ コードに対する課題 C++ 機能に対する最適化状況 C++ 技術 最適化機能 base '12/09 対応状況 予定 1st '13/09 2nd '14/03 クラスコンストラクタ / デストラクタ分岐削除 例外処理 unwind ライブラリ 自動インラインインライン属性 STL 多重継承テンプレート operator 3rd '14/09 ユーザ指示インライン展開 SPARC アーキテクチャ対応による STLport fast mode インライン展開 ローカルスケジューリング 再帰型テンプレート再帰向けインライン展開 CRTP 仮想関数フレンド関数 型変換解析 仮想関数テーブル除去特殊属性インライン展開 ポインタ 構造体依存解析 PointerValueResolution : 未着手 :50% 対応完了〇 :90% 対応完了 (g++ レベル ) : 対応完了 6

8 最適化の拡張 STLport fast mode SPARCアーキテクチャ向けチューニングによる高速化を実現 Base Function instance 1st Extension allocate/deallocate Memory pool :Lock Object Lock Object の生成オーバヘッドが高い pthread を利用したライブラリ レベルの排他 allocate/deallocate Memory pool 排他用オブジェクトの再利用 排他論理の C&S に変更 高速モードオプションを追加 instance 7

9 最適化の拡張 再帰型テンプレート 1 から 10 までの数字の合計を算出するプログラム Num template< int S, int E > class Num // S: start, E: end { public: static const int status = (S < E)? 1 : 0; static int getsum() { return S + Num< status*(s+1), status*e >::getsum(); } template<> class Num< 0, 0 > // Partial template specialization { public: static int getsum() { return 0; } // tail call main() { Num<1,10> n; cout << "sum=" << n.getsum() << endl ;; // sum=55 8

10 最適化の拡張 再帰型テンプレート 再帰呼び出し向けのインライン展開による即値の伝搬 Base Function call Graph int Num<N, I>::getSum() [with int S = 1, int E = 10] int Num<N, I>::getSum() [with int S = 2, int E = 10] int Num<N, I>::getSum() [with int S = 3, int E = 10] int Num<N, I>::getSum() [with int S = 10, int E = 10] int Num<N, I>::getSum() [with int S = 0, int E = 0] 2nd Extention call Graph すべて別名関数 部分特殊化の利用 55 完全なインライン展開 即値を設定 9

11 最適化の拡張 仮想関数 基底クラス :Polygon を持つ Triangle の面積算出プログラム 三角形 : 正多角形 class Polygon { private: int side; virtual int calcarea(int side) = 0; public: int getarea() { return calcarea(side); } class Triangle : public Polygon { private: int calcarea(int side) { return side * side / 2; } int main(int argc, char *argv[]) { Triangle t(100); cout << "triangle area=" << t.getarea() << endl ;; //

12 最適化の拡張 仮想関数 仮想関数テーブルの削除により即値を伝搬 Base Function Polygon getarea() { } search calcarea vtable ( 仮想関数テーブル ) Polygon::calcArea call calcarea Triangle calcarea() { } 3rd Extension 5000 Polygon 仮想関数テーブルによる間接アクセス Triangle inline getarea() { } inline calcarea() { } 即値を設定 11 オーバライドの検出 仮想関数テーブルの削除 インライン展開の強化

13 最適化の拡張 CRTP:Curiously Recurring Template Pattern 基底クラス :Polygon を持つ Triangle の面積算出プログラム 三角形 : 正多角形 template<class T> class Polygon { private: int side; public: int getarea() { return static_cast<t&>(*this).calcarea(side); } class Triangle : public Polygon<Triangle> { public: int calcarea(int side) { return side * side / 2; } int main(int argc, char *argv[]) { Triangle t(100); cout << "triangle area=" << t.getarea() << endl ;; 12

14 最適化の拡張 CRTP:Curiously Recurring Template Pattern 型変換解析の強化による即値の伝搬 Base Function 3rd Extension call getarea Polygon getarea() { // キャスト呼び出し static_cast<t&>(*this) } call calcarea Triangle calcarea() { } アドレスに対する型変換 5000 Polygon Triangle 即値を設定 inline getarea() { // キャスト呼び出し static_cast<t&>(*this) } inline calcarea() { } 型変換解析の強化 インライン展開の強化 13

15 最適化の拡張 コーディングスタイルによる性能の変化 コーディングスタイルの異なるC++ コードの姫野ベンチを作成し 実行性能の変化を計測 富士通 C++ GNU C++ ともに同じ傾向 (MFLOPS) type 1 (Fortran コードライク ) 配列アクセスを利用したコード type 2 (C 言語コードライク ) ポインタアクセスを利用したコード type 3 (C++ コードライク ) テンプレートを利用したコード himenobmt type 1 himenobmt type 2 himenobmt type 3 チューニングのポイントは コーディングスタイルにもある 性能測定は FX10 を利用 14

16 性能状況 アプリケーション実行性能 (sec) 35,000 30,000 25,000 20,000 15,000 10,000 multiphase/interdymfoam/ras/sloshingtank3d multiphase/multiphaseinterfoam/laminar/dambreak4phase multiphase/interfoam/ras/dambreak multiphase/mrfmultiphaseinterfoam/mixervessel2d incompressible/mrfsimplefoam/mixervessel2d heattransfer/buoyantsimpleradiationfoam/hotradiationroom heattransfer/buoyantpimplefoam/hotroom heattransfer/buoyantboussinesqpimplefoam/hotroom compressible/rhoporousmrfpimplefoam/mixervessel2d combustion/pdrfoam/flamepropagationwithobstacles DNS/dnsFoam/boxTurb16 basic/potentialfoam/pitzdaily basic/laplacianfoam/flange コンパイルオプション -O3 -Xg -Klib -Krdconv -Kfp_contract -Nstl=500fast 5,000 0 富士通 C /09 富士通 C /09 富士通 C /09 GNU C++ チュートリアルによっては FPE が発生する場合あり 性能測定は FX10 を利用 OpenFOAM 付属チュートリアルコード 13 本選出における性能比較 15

17 性能状況 アプリケーション翻訳性能 (%) % 性能改善 富士通 C /09 富士通 C /09 性能測定は FX10 を利用 OpenFOAM 付属チュートリアルコード 177 本選出における性能比較 16

18 OpenFOAM 17

19 FX10 向け OpenFOAM FX10 における OpenFOAM の取り組み FX10 は市販 (ISV) アプリの動作実績が少ないため OSS( 流体解析分野では OpenFOAM) を強化 OpenFOAM の調査 分析を行い コンパイラ改善 性能改善を実施し FX10 向けに提供 東京大学 ) 情報基盤センター様 FX10 (Oakleaf-FX) の状況 OpenFOAM のリリース状況 OpenFOAM Version 公開日最終更新日 /4/2 2013/3/18 9/26 迄デフォルト /2/ /3/ /3/ /5/ /9/28-9/28 以降のデフォルト 実行確認は OpenFOAM tutorials を使用 2.1.0/2.1.1 は 560 ケース中 557 の走行を確認 (3 ケースは IA Intel コンパイラと同等 ) はアプリケーションバグが多く で確認作業を実施中 18

20 OpenFOAM 構築 ( 東大情報基盤センター様 FX10) 構築方法 東大センター (Oakleaf-FX) の利用支援ポータルから FX10 用 OpenFOAM のパッチと構築手順のダウンロードが可能 (Oakleaf-FX のアカウントが必要 ) FX10 の開発環境は ログインノードと計算ノードで環境が異なる ログインノード : IA 機 - x86, FJ クロスコンパイラ, リトルエンディアン 計算ノード : FX10 - SPARC, FJ オウンコンパイラ, ビックエンディアン 1) OpenFOAM と Third-Party をダウンロード 2) Third-Party はオウンコンパイラで構築 3) OpenFOAM はクロスコンパイラで構築 4) tutorials で動作確認 19

21 OpenFOAM 利用 ( 東大情報基盤センター様 FX10) Oakleaf-FX での環境設定 (Environment Modules を利用 ) 利用可能なライブラリ アプリを表示 ( ログインノードとインタラクティブノードで異なる ) OpenFOAM の環境を設定 利用例 [user@fx10 ~]$ module avail /usr/local/share/modules/modulefiles/apps OpenFOAM/2.1.0(default) OpenFOAM/2.2.0 OpenFOAM/2.2.1 : : [user@fx10 ~]$ module load OpenFOAM/2.2.1 [OpenFOAM 2.2.1を設定 ] [user@fx10 ~]$ module list [ 環境設定されたことを確認 ] Currently Loaded Modulefiles: 1) TCSuite/GM ) OpenFOAM/2.2.1 OpenFOAM 用メッシュの作成 (blockmesh snappyhexmesh その他 ) パラメタ モデル設定等 実行スクリプト準備 ジョブ投入 (Oakleaf-FX : pjsub: 投入, pjstat: 確認 ) ポスト処理 (Paraview 等 ) 20

22 OpenFOAM の性能改善 利用頻度の高い tutorials を選定し性能改善を実施中 チュートリアル名内容問題規模 motorbike 風環境解析 34 万格子 ( 逐次実行 ) hotroom 定常熱流体解析 4 千格子 ( 逐次実行 ) multiregionheaterradiation 伝熱連成解析 3 千格子 ( 逐次実行 ) propeller 回転機械解析 57 万格子 (4 並列実行 ) buoyantboussinesqsimplefoam 定常熱流体解析 - Foam::GaussSeidelSmoother::smooth() 3~4 回転のループがソフトウェアパイプライニングされているため 4 回転以下の場合は ループ内容を展開したルートを通るようにコード変更 実行時間が 秒 秒に短縮 プロセス間リダクション演算に Tofu バリア機構を利用 プロセス間リダクション演算が MPI_Send/Recv で実装されている MPI_Allreduce を使用するバイパスルートを追加 対象関数 : Foam::reduce() 平方根演算のコスト削減 平方根演算が多いが 逆数近似命令が使用されていないため 翻訳オプション -Klib,fp_relaxed を適用 FPE で異常終了する事もあり注意が必要 今後も性能改善を継続し OpenFOAM チューニング版の情報提供を予定 100% 90% 80% 70% 60% 50% 40% 30% 20% 10% 0% 演算 一対一通信完了待ち ランク 集団通信開始待ち その他の通信 パフォーマンス解析 21

23 流体解析ヘルプデスク (OpenFOAM) サービス一覧 導入サービスインストール 動作チェック 標準ソルバー simplefoam のカスタマイズ例 定常の濃度移流拡散方程式 Q&A サービス により技術的なご質問回答 教育サービス操作講習 理論解説 等お客様のニーズ応じたコースを提供 受託開発サービス方程式の組込み等 アプリのカスタマイズを実施 受託解析サービス十分に経験を積んだ技術者がお客様の解析を代行 現在は IA サーバのみサポート対象 1 トップレベルソースコード simple.c に以下を挿入 solve ( fvm::div(phi, C) ==fvm::laplacian(turbulence->nueff(), C) ); 2 ヘッダーファイル createfield.h を編集 3 新ソルバーをビルド simplefoam の流れ場と完全に一致 ホームページ 追加した濃度の移流拡散方程式が正常に機能 22

24 23 Copyright 2010 FUJITSU LIMITED

NEE 研究会第 18 回講演討論会 OpenFOAM への計算機能追加連続的データ同化法 (VCA 法 ) の実装 大阪大学大学院工学研究科博士後期課程松尾智仁 内容 1.OpenFOAM を使う理由 1.1 OpenFOAMの特徴 1.2 OpenFOAMを使うにあたって 2.OpenFOAM

NEE 研究会第 18 回講演討論会 OpenFOAM への計算機能追加連続的データ同化法 (VCA 法 ) の実装 大阪大学大学院工学研究科博士後期課程松尾智仁 内容 1.OpenFOAM を使う理由 1.1 OpenFOAMの特徴 1.2 OpenFOAMを使うにあたって 2.OpenFOAM NEE 研究会第 18 回講演討論会 OpenFOAM への計算機能追加連続的データ同化法 (VCA 法 ) の実装 大阪大学大学院工学研究科博士後期課程松尾智仁 内容 1.1 OpenFOAMの特徴 1.2 OpenFOAMを使うにあたって 2.OpenFOAM への計算機能追加 2.1 計算機能の追加の方法 VCA 法とは 計算例 2015.01.27 於大阪大学中之島センター 2 1.1 OpenFOAM

More information

演習1: 演習準備

演習1: 演習準備 演習 1: 演習準備 2013 年 8 月 6 日神戸大学大学院システム情報学研究科森下浩二 1 演習 1 の内容 神戸大 X10(π-omputer) について システム概要 ログイン方法 コンパイルとジョブ実行方法 OpenMP の演習 ( 入門編 ) 1. parallel 構文 実行時ライブラリ関数 2. ループ構文 3. shared 節 private 節 4. reduction 節

More information

Microsoft PowerPoint OpenFOAMの使い方(柴田).ppt [互換モード]

Microsoft PowerPoint OpenFOAMの使い方(柴田).ppt [互換モード] OpenFOAM 勉強会 for beginner 2 期第 1 回 OpenFOAM の使い方 柴田貴裕 目標 既に OpenFOAM はインストール済み さまざまなチュートリアルに取り組めるようにチュートリアルの実行の方法を scalartransportfoam を例に用いて見ていく インストールは OpenCFD の HP の方法に従えば比較的容易にできる ) OpenCFD 社の HP http://www.openfoam.com/

More information

4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専

4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専 4-3- 基 C++ に関する知識 1 4-3- 基 C++ に関する知識 オープンソースシステムのソースを解読する上で C++ の知識は必須であるといえる 本カリキュラムでは まずオブジェクト指向に関する Ⅰ. 概要理解を深め クラスの扱い方について学習し STL を使用してアルゴリズムとデータ構造を実装する方法を学習する Ⅱ. 対象専門分野職種共通 Ⅲ. 受講対象者 本カリキュラムの 4-2-

More information

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (

More information

Microsoft PowerPoint - sales2.ppt

Microsoft PowerPoint - sales2.ppt 最適化とは何? CPU アーキテクチャに沿った形で最適な性能を抽出できるようにする技法 ( 性能向上技法 ) コンパイラによるプログラム最適化 コンパイラメーカの技量 経験量に依存 最適化ツールによるプログラム最適化 KAP (Kuck & Associates, Inc. ) 人によるプログラム最適化 アーキテクチャのボトルネックを知ること 3 使用コンパイラによる性能の違い MFLOPS 90

More information

openmp1_Yaguchi_version_170530

openmp1_Yaguchi_version_170530 並列計算とは /OpenMP の初歩 (1) 今 の内容 なぜ並列計算が必要か? スーパーコンピュータの性能動向 1ExaFLOPS 次世代スハ コン 京 1PFLOPS 性能 1TFLOPS 1GFLOPS スカラー機ベクトル機ベクトル並列機並列機 X-MP ncube2 CRAY-1 S-810 SR8000 VPP500 CM-5 ASCI-5 ASCI-4 S3800 T3E-900 SR2201

More information

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。

問 次の Fortran プログラムの説明及びプログラムを読んで、設問に答えよ。 ソフトウェア基礎演習課題 文法理解度確認範囲 問題 1 データ型 ( 変数, データ型 ) 問題 2 制御構造 (switch 文 ) 問題 3 制御構造 (while 文 ) 問題 4 制御構造と配列 ( 総和 ) 問題 5 制御構造と配列 ( 総和, 平均 ) 問題 6 データ型と各種演算子 ( 文字列, 検索 ) 問題 7 クラスの定義 ( メソッドの定義, コンストラクタの定義, キャスト

More information

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc

Microsoft Word ●IntelクアッドコアCPUでのベンチマーク_吉岡_ _更新__ doc 2.3. アプリ性能 2.3.1. Intel クアッドコア CPU でのベンチマーク 東京海洋大学吉岡諭 1. はじめにこの数年でマルチコア CPU の普及が進んできた x86 系の CPU でも Intel と AD がデュアルコア クアッドコアの CPU を次々と市場に送り出していて それらが PC クラスタの CPU として採用され HPC に活用されている ここでは Intel クアッドコア

More information

ParallelCalculationSeminar_imano.key

ParallelCalculationSeminar_imano.key 1 OPENFOAM(R) is a registered trade mark of OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM(R) and OpenCFD(R) trade marks. 2 3 Open FOAM の歴史 1989年ー2000年 研究室のハウスコード 開発元

More information

Python によるジオプロセシング スクリプト入門

Python によるジオプロセシング スクリプト入門 アイコンの説明... 8 第 1 章イントロダクション... 9 本コースの目的... 11 講習内容... 11 講習資料... 12 イントロダクション... 12 ArcGIS... 13 Web サイト... 13 開発者向けプログラム / サービス... 14 演習 1: 演習環境の構築... 15 ステップ 1: Windows へのログオン ( オプション )... 15 ステップ 2:

More information

Hphi実行環境導入マニュアル_v1.1.1

Hphi実行環境導入マニュアル_v1.1.1 HΦ の計算環境構築方法マニュアル 2016 年 7 月 25 日 東大物性研ソフトウェア高度化推進チーム 目次 VirtualBox を利用した HΦ の導入... 2 VirtualBox を利用した MateriAppsLive! の導入... 3 MateriAppsLive! への HΦ のインストール... 6 ISSP スパコンシステム B での HΦ の利用方法... 8 各種ファイルの置き場所...

More information

Microsoft PowerPoint ppt

Microsoft PowerPoint ppt 仮想マシン () 仮想マシン 復習 仮想マシンの概要 hsm 仮想マシン プログラム言語の処理系 ( コンパイラ ) 原始プログラム (Source program) コンパイラ (Compiler) 目的プログラム (Object code) 原始言語 (Source language) 解析 合成 目的言語 (Object Language) コンパイルする / 翻訳する (to compile

More information

Microsoft Word - C言語研修 C++編 3.doc

Microsoft Word - C言語研修 C++編 3.doc 2006/05/10 オブジェクト指向... 3 1 クラスの継承... 3 2 継承の書式... 3 3 protected... 5 4 メンバ関数のオーバーライド... 6 5 クラスの型キャスト... 7 6 仮想関数... 8 2 オブジェクト指向 1 クラスの継承 クラスには 継承 という機能があります 継承とは 既にあるクラスを元に 新しいクラスを作る 機能です 継承元のクラスを 親クラス

More information

Microsoft PowerPoint - 09.pptx

Microsoft PowerPoint - 09.pptx 情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源

More information

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以

Application Note Application Note No. ESC-APN Document No.: ESC-APN adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以 No. ESC-APN-026-02 Document No.: ESC-APN-026-02 adviceluna Linux デバッグ手順 (MIPS コア編 ) はじめに adviceluna Linux デバッグ手順 ( 以下 本書 ) は adviceluna にて下記 Linux 環境をデバッグする手順を説明した文書です Application Shared Library Loadable

More information

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版  

intra-mart Accel Platform — IM-共通マスタ スマートフォン拡張プログラミングガイド   初版   Copyright 2012 NTT DATA INTRAMART CORPORATION 1 Top 目次 1. 改訂情報 2. IM- 共通マスタの拡張について 2.1. 前提となる知識 2.1.1. Plugin Manager 2.2. 表記について 3. 汎用検索画面の拡張 3.1. 動作の概要 3.1.1. 汎用検索画面タブの動作概要 3.2. 実装の詳細 3.2.1. 汎用検索画面タブの実装

More information

コードのチューニング

コードのチューニング OpenMP による並列化実装 八木学 ( 理化学研究所計算科学研究センター ) KOBE HPC Spring School 2019 2019 年 3 月 14 日 スレッド並列とプロセス並列 スレッド並列 OpenMP 自動並列化 プロセス並列 MPI プロセス プロセス プロセス スレッドスレッドスレッドスレッド メモリ メモリ プロセス間通信 Private Private Private

More information

新版明解C言語 実践編

新版明解C言語 実践編 2 List - "max.h" a, b max List - max "max.h" #define max(a, b) ((a) > (b)? (a) : (b)) max List -2 List -2 max #include "max.h" int x, y; printf("x"); printf("y"); scanf("%d", &x); scanf("%d", &y); printf("max(x,

More information

Python によるジオプロセシング スクリプト入門

Python によるジオプロセシング スクリプト入門 ... 1 アイコンの説明... 8 第 1 章イントロダクション... 9 本コースの目的... 11 コース内容 1 日目... 11 コース内容 2 日目... 12 付属資料... 12 講習資料... 13 イントロダクション... 13 ArcGIS の紹介... 14 Web ページ : サポート情報... 14 Web ページ :ArcGIS を学べる... 15 Web ページ :ArcGIS

More information

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料 注 : 本サービスは 新規申込の受付を停止しております サービスご検討中のお客様におかれましては ご不便をおかけし申し訳ございません FUJITSU Cloud Service for OSS コンテナサービス ご紹介 2018 年 8 月富士通株式会社 本資料の無断複製 転載を禁じます 本資料は予告なく内容を変更する場合がございます Version 1.01 目次 Docker/Kubernetes

More information

演習準備

演習準備 演習準備 2014 年 3 月 5 日神戸大学大学院システム情報学研究科森下浩二 1 演習準備の内容 神戸大 FX10(π-Computer) 利用準備 システム概要 ログイン方法 コンパイルとジョブ実行方法 MPI 復習 1. MPIプログラムの基本構成 2. 並列実行 3. 1 対 1 通信 集団通信 4. データ 処理分割 5. 計算時間計測 2 神戸大 FX10(π-Computer) 利用準備

More information

White Paper 高速部分画像検索キット(FPGA アクセラレーション)

White Paper 高速部分画像検索キット(FPGA アクセラレーション) White Paper 高速部分画像検索キット (FPGA アクセラレーション ) White Paper 高速部分画像検索キット (FPGA アクセラレーション ) Page 1 of 7 http://www.fujitsu.com/primergy Content はじめに 3 部分画像検索とは 4 高速部分画像検索システム 5 高速部分画像検索の適用時の改善効果 6 検索結果 ( 一例 )

More information

JAVA入門

JAVA入門 JAVA 入門後期 10 情報処理試験例題解説 H14 年度秋問 8 次の Java プログラムの説明及びプログラムを読んで, 設問に答えよ プログラムの説明 ディジタル論理回路シミュレータを作成するためのクラスとテスト用クラスである (1) ゲートを表す抽象クラス Gate のサブクラスとして, NOT ゲートを表すクラス NotGate 及び AND ゲートを表すクラス AndGate を定義する

More information

HashMapからConcurrentHashMapへの移行

HashMapからConcurrentHashMapへの移行 HashMap から ConcurrentHashMap への移行 レガシー アプリケーションにおける注意点 2012 年 1 月 4 日橋口雅史 1. はじめにアプリケーションでは キーと値のマッピングが多用されます 例えば ユーザー名 というキーにユーザーの 情報 をマッピングするといった用途で java.util.map インタフェースは広く使われています 特に ハッシュテーブルに基づいて高速にマップを検索

More information

OpenFOAM_compile_basic 1 / /12/23 12: 年 12 月 13 日オープン CAE 富山 ( 富山県立大学中川慎二 ) Disclaimer OPENFOAM is a registered trade mark

OpenFOAM_compile_basic 1 / /12/23 12: 年 12 月 13 日オープン CAE 富山 ( 富山県立大学中川慎二 ) Disclaimer OPENFOAM is a registered trade mark 1 / 5 2014/12/23 12:25 2014 年 12 月 13 日オープン CAE 勉強会 @ 富山 ( 富山県立大学中川慎二 ) Disclaimer OPENFOAM is a registered trade mark of OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 8 回目抽象クラスとインタフェース課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) 抽象クラスのオブジェクトは生成できる (2) 抽象メソッドとはメソッドの本体が未定義のメソッドである (3) 抽象メソッドをメンバーにもつクラスは抽象クラスである (4) 抽象クラスを拡張してすべての抽象メソッドをオーバーライドすれば サブクラスのオブジェクトを生成できる

More information

Oracle Cloud Adapter for Oracle RightNow Cloud Service

Oracle Cloud Adapter for Oracle RightNow Cloud Service Oracle Cloud Adapter for Oracle RightNow Cloud Service Oracle Cloud Adapter for Oracle RightNow Cloud Service を使用すると RightNow Cloud Service をシームレスに接続および統合できるため Service Cloud プラットフォームを拡張して信頼性のある優れたカスタマ

More information

(速報) Xeon E 系モデル 新プロセッサ性能について

(速報) Xeon E 系モデル 新プロセッサ性能について ( 速報 ) Xeon E5-2600 系モデル新プロセッサ性能について 2012 年 3 月 16 日 富士通株式会社 2012 年 3 月 7 日 インテル社より最新 CPU インテル Xeon E5 ファミリー の発表がありました この最新 CPU について PC クラスタシステムの観点から性能検証を行いましたので 概要を速報いたします プロセッサインテル Xeon プロセッサ E5-2690

More information

JavaプログラミングⅠ

JavaプログラミングⅠ Java プログラミング Ⅱ 4 回目クラスの機能 (2) コンストラクタ クラス変数 クラスメソッド課題 確認 問題次の各文は正しいか誤っているか答えなさい (1) コンストラクタはメソッドと同様に戻り値をもつ (2) コンストラクタはオブジェクトが生成されると最初に実行される (3) コンストラクタはメソッドと同様にオーバーロードができる (4) コンストラクタは常に public メンバとしなければならない

More information

はじめての OpenFOAM その 3 富 県 学 中川慎二 オープンCAE 富 2014 年 1 月 25 日 Disclaimer: OPENFOAM is a registered trade mark of OpenCFD Limited, the producer of the

はじめての OpenFOAM その 3 富 県 学 中川慎二 オープンCAE 富 2014 年 1 月 25 日 Disclaimer: OPENFOAM is a registered trade mark of OpenCFD Limited, the producer of the はじめての OpenFOAM その 3 富 県 学 中川慎二 オープンCAE 勉強会 @ 富 2014 年 1 月 25 日 Disclaimer: OPENFOAM is a registered trade mark of OpenCFD Limited, the producer of the OpenFOAM software and owner of the OPENFOAM and OpenCFD

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2009年11月7日 第2回オープンソースCAEワークショップ 1 オープンCAE DEXCS-OpenFOAMの紹介 株式会社デンソー 開発部 野村悦治 今川洋造 DEXCS http://dexcs.gifu-nct.ac.jp/ 2 オープンCAE DEXCS 2007/10より公開中 ADVENTUREによるお手軽なCAE環境です DEXCSの構成 3 Linux(Ubuntu)上に 構造解析にADVENTUREを活用し

More information

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev. 00.0.04 1 / 10 目次 1. ファイル構成... 3 2. 環境 3 2.1. 動作環境 OS... 3 2.2. コンパイル時の注意点... 3 2.3. USB ドライバ... 3 3. 関数一覧... 4 3.1. USB 接続確認処理 (CD_checkConnect CD_checkConnect)

More information

(STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector<int> x; for(int i = 0; i < 10;

(STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector<int> x; for(int i = 0; i < 10; (STL) STL 1 (deta structure) (algorithm) (deta structure) 2 STL STL (Standard Template Library) 2.1 STL STL ( ) vector x; for(int i = 0; i < 10; ++i) x.push_back(i); vector STL x.push_back(i) STL

More information

ポスト「京」でのコデザイン 活動報告

ポスト「京」でのコデザイン 活動報告 重点課題 9 でのポスト 京 に対す るコデザイン活動報告 広島大学理学研究科 石川健一 1 目次 1. コデザイン活動 2. ポスト京関連公開情報 3. 重点課題 9 に関するコデザイン活動 2 1. コデザイン活動 RIKEN,R-CCS と FUJITSU によるポスト京計算機開発 コデザイン活動 重点課題からのターゲットアプリケーションの開発とシステムやソフトウェア開発を連携して開発 9 個のターゲットアプリケーション

More information

計算機アーキテクチャ

計算機アーキテクチャ 計算機アーキテクチャ 第 11 回命令実行の流れ 2014 年 6 月 20 日 電気情報工学科 田島孝治 1 授業スケジュール ( 前期 ) 2 回日付タイトル 1 4/7 コンピュータ技術の歴史と コンピュータアーキテクチャ 2 4/14 ノイマン型コンピュータ 3 4/21 コンピュータのハードウェア 4 4/28 数と文字の表現 5 5/12 固定小数点数と浮動小数点表現 6 5/19 計算アーキテクチャ

More information

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~

.NETプログラマー早期育成ドリル ~VB編 付録 文法早見表~ .NET プログラマー早期育成ドリル VB 編 付録文法早見表 本資料は UUM01W:.NET プログラマー早期育成ドリル VB 編コードリーディング もしくは UUM02W:.NET プログラマー早期育成ドリル VB 編コードライティング を ご購入頂いた方にのみ提供される資料です 資料内容の転載はご遠慮下さい VB プログラミング文法早見表 < 基本文法 > 名前空間の定義 Namespace

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション 2011/12/2 オープンCAEシンポジウム2011 オープンCAEを活用した 大規模高速演算及び 大規模モデルの取扱 株式会社デンソー 技術管理部 CAE開発設計 促進室 野村悦治 今川洋造 背景 http://top500.org/ 2 / 27 705,024コア 数千コア FOCUSスパコン利用料金表 http://www.j-focus.or.jp/spacon/pricelist_spacon.pdf

More information

コンパイラ演習 第 7 回

コンパイラ演習 第 7 回 コンパイラ演習 第 7 回 (2010/11/18) 秋山茂樹池尻拓朗前田俊行鈴木友博渡邊裕貴潮田資秀小酒井隆広山下諒蔵佐藤春旗大山恵弘佐藤秀明住井英二郎 今日の内容 Type Polymorphism ( 型多相性 ) の実現について Polymorphism 大きく分けて 3 種類ある Parametric polymorphism Subtyping polymorphism Ad-hoc polymorphism

More information

文字列操作と正規表現

文字列操作と正規表現 文字列操作と正規表現 オブジェクト指向プログラミング特論 2018 年度只木進一 : 工学系研究科 2 文字列と文字列クラス 0 個以上の長さの文字の列 Java では String クラス 操作 文字列を作る 連結する 文字列中に文字列を探す 文字列中の文字列を置き換える 部分文字列を得る 3 String クラス 文字列を保持するクラス 文字列は定数であることに注意 比較に注意 == : オブジェクトとしての同等性

More information

26

26 26 FIPP FAPP I/O LAMMPS LJ atomic fluid 32,000 atoms for 100 timesteps FX10 4 16 / (FIPP) FIPP fipp - C - d dir/ - Ihwm,call - i10 mpiexec./a.out GUI, fipppx - A - d dir/ - Ihwm,cpu,balance,call,src

More information

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a

Microsoft Word - matlab-coder-code-generation-quick-start-guide-japanese-r2016a MATLAB コードを使用した C コードの生成クイックスタートガイド (R2016a) 最初のスタンドアロン C コードの生成 スタンドアロン C コードを生成するには [ ビルド ] を [ ソースコード ] [ スタティックライブラリ ] [ ダイナミックライブラリ ] または [ 実行ファイル ] のいずれかに切り替えます MATLAB Coder を使用することで MATLAB コードから

More information

JS2-14 マルチコアCPU時代の Javaプログラミング

JS2-14 マルチコアCPU時代の Javaプログラミング JavaOne Tokyo 2012 JS2-14 マルチコア CPU 時代の Java プログラミング 2012 年 4 月 5 日 富士通株式会社数村憲治 Copyright 2012 FUJITSU LIMITED 自己紹介 数村憲治 [email protected] 富士通株式会社 Interstage Application Server 開発チーム Java VMの開発 サポート 大規模システムでの性能チューニングに

More information

Java知識テスト問題

Java知識テスト問題 Java 知識テスト SDAS プログラマ(Java 編 ) 運営事務局 このテストは J2EE プログラマとしての Java の知識を評価するものです 問題は 30 問, テスト時間は J2EE 知識テストとあわせて 90 分です 問題は全て択一式です 選択肢から 1 つだけ選択してください 資料の閲覧は禁止です テストが終わり次第 答案用紙を提出していただいてかまいません テスト終了後, 本テストの内容を他の方に話さないでください

More information

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション BRMS への取り組みと導入事例 2013 年 11 月 15 日 ( 金 ) SCSK 株式会社 IT エンジニアリング事業本部ミドルウェア部 本日の内容 BRMS 適用のポイント BRMS の可能性 Page 1 Page 2 アプリケーション連携基盤 SCSKのRed Hat JBoss / ミドルウェア技術に関する取り組みの取り組み 世界のオープンソース コミュニティーから製品化されたソフトウェア

More information

Javaの作成の前に

Javaの作成の前に メディアプロジェクト演習 1 参考資料 Javaとは JavaScript と Java 言語の違い オブジェクト指向 コンストラクタ サーブレット 本資料内のページ番号は, 以下の参考書のページを引用している 高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに プログラミング言語とは? オブジェクト指向とは? Java 言語とは? JavaとJavaScriptの違いとは?

More information

Microsoft PowerPoint - 01_Vengineer.ppt

Microsoft PowerPoint - 01_Vengineer.ppt Software Driven Verification テストプログラムは C 言語で! SystemVerilog DPI-C を使えば こんなに便利に! 2011 年 9 月 30 日 コントローラ開発本部コントローラプラットフォーム第五開発部 宮下晴信 この資料で使用するシステム名 製品名等は一般にメーカーや 団体の登録商標などになっているものもあります なお この資料の中では トレードマーク

More information

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78

Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78 Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 788) 抽出できない依存関係 Understand の C 言語の解析 (Fuzzy/Strict) で

More information

K5移行サービス ご紹介資料

K5移行サービス ご紹介資料 FUJITSU TransMigration K5 移行サービス ご紹介資料 2017 年 2 月版 富士通株式会社サービステクノロジー本部アプリケーションマネジメント事業部 0 K5 移行サービスのターゲット 現行システムをそのままクラウドに移行したいお客様 物理サーバ (IA サーバ ) 仮想サーバ Hyper-V ware (*2) K5 移行サービス (*1) FUJITSU Cloud Service

More information

スライド 1

スライド 1 1 システムコールフックを使用した攻撃検出 株式会社フォティーンフォティー技術研究所 http://www.fourteenforty.jp 取締役技術担当金居良治 2 お題目 System Call について System Call Protection System Call Hook 考察 3 System Call とは? ユーザアプリケーションからカーネルのサービスルーチンを呼び出す Disk

More information

FUJITSU Cloud Service for OSS 認証サービス サービス仕様書

FUJITSU Cloud Service for OSS 認証サービス サービス仕様書 FUJITSU Cloud Service for OSS 認証サービスサービス仕様書 2018 年 8 月 30 日 1. サービス仕様 当社は 以下のサービスを提供します (1) 基本サービス契約者が FUJITSU Cloud Service for OSS PaaS ポータルから認証サービスの利用を開始すると 管理テナント ( 注 1) が 1 つ作成されます 契約者は 管理テナントにより運用テナント

More information

情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 )

情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 ) 情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 ) 本日学ぶこと 関数と変数 目的 関数を自分で定義し, 変数の利用方法 範囲を明示的に制限することで, 適切な機能分割 ( モジュール化, 再利用 ) を図る. してはいけないこと main 関数のみで 100 行以上のプログラム グローバル変数を駆使するプログラム プログラムを読みやすくする 保守性向上 入 p.109 2 関数 (Function)

More information

CodeRecorderでカバレッジ

CodeRecorderでカバレッジ 株式会社コンピューテックス Copyright 2016 Computex Co.,Ltd. 2017.11 カバレッジ と 単体テスト カバレッジとは プログラムがどれだけ実行されているかを示す指標です プログラム全体に対して実行された比率をカバレッジ率で表します カバレッジの基準として 一般的にC0 C1が使われております C0カバレッジは 全体のうち何 % が実行されたかで求めます C1カバレッジは

More information

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ

Oracle Un お問合せ : Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよ Oracle Un お問合せ : 0120- Oracle Data Integrator 11g: データ統合設定と管理 期間 ( 標準日数 ):5 コースの概要 Oracle Data Integratorは すべてのデータ統合要件 ( 大量の高パフォーマンス バッチ ローブンの統合プロセスおよびSOA 対応データ サービスへ ) を網羅する総合的なデータ統合プラットフォームです Oracle

More information

熱伝達の境界条件 (OF-2.1 OF-2.3) 1/7 藤井 15/01/30 熱伝達の境界条件 (OF-2.1 OF-2.3) 目次 1. はじめに 2. 熱伝達の境界条件 (fixedalphatemp) の作成 2-1. 考え方 2-2. fixedalphatemp の作成 3. 作動確認

熱伝達の境界条件 (OF-2.1 OF-2.3) 1/7 藤井 15/01/30 熱伝達の境界条件 (OF-2.1 OF-2.3) 目次 1. はじめに 2. 熱伝達の境界条件 (fixedalphatemp) の作成 2-1. 考え方 2-2. fixedalphatemp の作成 3. 作動確認 1/7 藤井 15/01/30 目次 1. はじめに 2. 熱伝達の境界条件 (fixedalphatemp) の作成 2-1. 考え方 2-2. fixedalphatemp の作成 3. 作動確認 3-1. モデルの作成 3-2. solver 3-3. 境界条件 3-4. 計算結果の確認 4. 計算結果の検証 5. まとめ 1. はじめに 現在 OpenFOAM で laplacianfoam

More information

FUJITSU Cloud Service K5 認証サービス サービス仕様書

FUJITSU Cloud Service K5 認証サービス サービス仕様書 FUJITSU Cloud Service K5 認証サービスサービス仕様書 2016 年 10 月 28 日 1. サービス仕様 当社は 以下のサービスを提供します (1) 基本サービス契約者が K5 PaaS ポータルから認証サービスの利用を開始すると 管理テナント ( 注 1) が 1 つ作成されます 契約者は 管理テナントにより運用テナント ( 注 2) の管理を行うことができます 1 基本機能

More information

Insert your Title here

Insert your Title here マルチコア マルチスレッド環境での静的解析ツールの応用 米 GrammaTech 社 CodeSonar によるスレッド間のデータ競合の検出 2013 GrammaTech, Inc. All rights reserved Agenda 並列実行に起因する不具合の摘出 なぜ 並列実行されるプログラミングは難しいのか データの競合 デッドロック どのようにして静的解析ツールで並列実行の問題を見つけるのか?

More information

メディプロ1 Javaプログラミング補足資料.ppt

メディプロ1 Javaプログラミング補足資料.ppt メディアプロジェクト演習 1 Javaプログラミング補足資料 l Javaとは l JavaScript と Java 言語の違い l オブジェクト指向 l コンストラクタ l 継承 抽象クラス 本資料内のページ番号は, 以下の参考書のページを引用している高橋麻奈 : やさしい Java, ソフトバンククリエイティブ (2,625 円 ) はじめに l プログラミング言語とは? l オブジェクト指向とは?

More information