Gfarm/MPI-IOの 概要と使い方

Similar documents
NUMAの構成

目 目 用方 用 用 方

44 6 MPI 4 : #LIB=-lmpich -lm 5 : LIB=-lmpi -lm 7 : mpi1: mpi1.c 8 : $(CC) -o mpi1 mpi1.c $(LIB) 9 : 10 : clean: 11 : -$(DEL) mpi1 make mpi1 1 % mpiru

スライド 1

appli_HPhi_install

para02-2.dvi

Microsoft PowerPoint - 講義:コミュニケータ.pptx

WinHPC ppt

2 T 1 N n T n α = T 1 nt n (1) α = 1 100% OpenMP MPI OpenMP OpenMP MPI (Message Passing Interface) MPI MPICH OpenMPI 1 OpenMP MPI MPI (trivial p

DKA ( 1) 1 n i=1 α i c n 1 = 0 ( 1) 2 n i 1 <i 2 α i1 α i2 c n 2 = 0 ( 1) 3 n i 1 <i 2 <i 3 α i1 α i2 α i3 c n 3 = 0. ( 1) n 1 n i 1 <i 2 < <i

Gromacsユーザーマニュアル

115 9 MPIBNCpack 9.1 BNCpack 1CPU X = , B =

Microsoft PowerPoint - KHPCSS pptx

7th CodeGear Developer Camp

Slide 1

目次 LS-DYNA 利用の手引き 1 1. はじめに 利用できるバージョン 概要 1 2. TSUBAME での利用方法 使用可能な LS-DYNA の実行 4 (1) TSUBAMEにログイン 4 (2) バージョンの切り替え 4 (3) インタラ

ソフトウェアについて Rev 年 1 月 16 日 このマニュアルでは標準でインストールしているソフトウェアの入手元 インストール方法の概要 インストール場所 についてご案内致します ABySS

PowerPoint プレゼンテーション

2_Boost(1.60.0) のインストール No 概要対象ユーザコマンド確認 ( 確認コマンド等 ) 備考 1 Boostのソースディレクトリ作成 2 boost_1_60_0.tar.gz の取得 # mkdir /usr/local/src/boost_1_60_0 # chown : /u

課題 S1 解説 C 言語編 中島研吾 東京大学情報基盤センター

SCore と escience の install と 設定について 理化学研究所 亀山豊久

Microsoft Word - appli_SMASH_tutorial_2.docx

memo

コードのチューニング

Microsoft PowerPoint - 講義:片方向通信.pptx

Intel MPI Library Linux

Microsoft Word - 計算科学演習第1回3.doc

演習 II 2 つの講義の演習 奇数回 : 連続系アルゴリズム 部分 偶数回 : 計算量理論 部分 連続系アルゴリズム部分は全 8 回を予定 前半 2 回 高性能計算 後半 6 回 数値計算 4 回以上の課題提出 ( プログラム + 考察レポート ) で単位

LetItB Installation Manual - Japanese version

Microsoft Word - appli_OpenMX_install.docx

SLAMD導入手順

$ cmake --version $ make --version $ gcc --version 環境が無いあるいはバージョンが古い場合は yum などを用いて導入 最新化を行う 4. 圧縮ファイルを解凍する $ tar xzvf gromacs tar.gz 5. cmake を用

SecureAssist Enterprise Portal アップグレードガイド Version 対応版 パッケージのダウンロード アップグレード全体の流れ アップグレード作業の詳細手順

slide5.pptx

MPI コミュニケータ操作

スライド 1

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

about MPI

01-introduction.ppt

内容に関するご質問は まで お願いします [Oakforest-PACS(OFP) 編 ] 第 85 回お試しアカウント付き並列プログラミング講習会 ライブラリ利用 : 科学技術計算の効率化入門 スパコンへのログイン テストプログラム起動 東京大学情報基盤セ

昨年度までの研究紹介 および 研究計画

Microsoft Word ●MPI性能検証_志田_ _更新__ doc

gengo1-12

gengo1-12

chap2.ppt

slide4.pptx

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

Microsoft PowerPoint _2.プログラミングの基礎_final.pptx

CM-3G 周辺モジュール拡張技術文書 MS5607センサ(温度、気圧)

Microsoft Word - K5VSSP32-install.docx

Linux ドライバのインストール

MPI-Adapter チュートリアル 富士通研究所 住元真司 PC クラスタワークショップ 2010 All rights reserved, Copyright (C) Fujitsu Laboratories Ltd. 2010

DVIOUT

Microsoft PowerPoint _2.プログラミングの基礎_final

PowerPoint プレゼンテーション

演習準備 2014 年 3 月 5 日神戸大学大学院システム情報学研究科森下浩二 1 RIKEN AICS HPC Spring School /3/5

1. 対象装置 (1) 日立仮想 Fibre Channel アダプタ 適用装置 : EP8000 7xx 2. 仮想 FC アダプタドライバ来歴 この仮想 FC アダプタドライバは 次の機能拡張とバグ修正を含みます バージョン内容 新規追加 AIX ロ

1. 対象装置 (1) 日立仮想 Fibre Channel アダプタ 適用装置 : EP8000 7xx/S8xx/E8xx/S9xx 2. 仮想 FC アダプタドライバ来歴 この仮想 FC アダプタドライバは 次の機能拡張とバグ修正を含みます バージョン内容 新規追加 7

MPI usage

環境セットアップ

SystemDirector Developer's Studio(V3.2) 適用ガイド

情報処理演習 II

Microsoft Word - tutorial3-dbreverse.docx

Microsoft PowerPoint 並列アルゴリズム04.ppt

Logical Volume Manger (LVM) の制限に関する情報

Microsoft PowerPoint - kougi2.ppt

7th CodeGear Developer Camp

Microsoft Word - appendix_b_srft.doc

プログラミング演習3 - Cプログラミング -

XMP structure: 1

¥Ñ¥Ã¥±¡¼¥¸ Rhpc ¤Î¾õ¶·

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

Microsoft PowerPoint - compsys2-06.ppt

58 7 MPI 7 : main(int argc, char *argv[]) 8 : { 9 : int num_procs, myrank; 10 : double a, b; 11 : int tag = 0; 12 : MPI_Status status; 13 : 1 MPI_Init

Studuino ライブラリ環境設定Windows編

オフラインメンテナンス説明書-ver5.0.0

MPI

slide6.pptx

( CUDA CUDA CUDA CUDA ( NVIDIA CUDA I

3.2 Linux root vi(vim) vi emacs emacs 4 Linux Kernel Linux Git 4.1 Git Git Linux Linux Linus Fedora root yum install global(debian Ubuntu apt-get inst

日医特定健康診査システム ORCA PROJECT Linux 対応版インストールマニュアル (Version 対応 ) Ubuntu Trusty 用 版 2017 年 2 月 23 日 Copyright (C) Japan Medical

NI P1200 Release Notes Cover

Microsoft Word - FreeBSD_LDPRELOAD002.doc

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

農業・農村基盤図の大字小字コードXML作成 説明書

86 8 MPIBNCpack 15 : int n, myid, numprocs, i; 16 : double pi, start_x, end_x; 17 : double startwtime = 0.0, endwtime; 18 : int namelen; 19 : char pro

gengo1-12

並列計算導入.pptx

Taro-ファイル処理(公開版).jtd

OpenAM 9.5 インストールガイド オープンソース ソリューション テクノロジ ( 株 ) 更新日 : 2013 年 7 月 19 日 リビジョン : 1.8

untitled

<4D F736F F F696E74202D C097F B A E B93C782DD8EE682E890EA97705D>

インテル(R) Visual Fortran コンパイラ 10.0

XcalableMP入門

スライド 1

スライド 1

ソフトウェアエンジニアリング - 機能 #54

XACC講習会

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

目次 1. 動作環境チェック 動作必要環境 Java のインストール Java のインストール Firebird のインストール Firebird のインストール Adobe Reader のインストール

Transcription:

MPI-IO/Gfarm のご紹介と現在の開発状況 鷹津冬将 2018/3/2 Gfarm ワークショップ 2018 1

目次 MPI-IO/Gfarm 概要 MPI-IO/Gfarm の開発状況 MVAPICH2 向け MPI-IO/Gfarm MPI-IO/Gfarm の使い方 かんたんなサンプルプログラムと動作確認の方法 既知の不具合 まとめと今後の展望 2018/3/2 Gfarm ワークショップ 2018 2

MPI-IO/Gfarm の概要 2018/3/2 Gfarm ワークショップ 2018 3

MPI-IO/Gfarm の概要 MPI-IO/Gfarm[ 木村ら, 2011] は Gfarm 向けの MPI-IO の実装 複数の MPI プロセスからの同一ファイルへのアクセスを Gfarm 上の複数のファイルに分散させることでアクセス性能を向上させる MPICH2 向けのものが gfarm_mpiio として配布中 木村浩希, 建部修見. "MPI-IO/Gfarm: 分散ファイルシステム Gfarm のための MPI-IO の実装と評価." 情報処理学会論文誌 52.12 (2011): 3239-3250. 2018/3/2 Gfarm ワークショップ 2018 4

並列アクセスパターン N-N アクセスパターン 複数のプロセスがそれぞれ異なるファイルに書き込む N-1 アクセスパターン 複数のプロセスが同一ファイルに書き込む N-1 パターンを N-N パターンに置き換えることで性能向上 書込性能がスケールアウト可能 Gfarm では書込性能がスケールしない 2018/3/2 Gfarm ワークショップ 2018 5

MPI-IO/Gfarm N-1 アクセスパターンを N-N アクセスパターンに置き換える 全体のファイル プロセスごとに View を設定 グローバルオフセットから Rank 0 File View ローカルオフセットへの置き換え Rank 1 File View Rank N File View 位置情報ファイル Rank 0 File Rank 1 File 2018/3/2 Gfarm ワークショップ 2018 6 Rank N File

MPI-IO/Gfarm の開発状況 2018/3/2 Gfarm ワークショップ 2018 7

MPI-IO/Gfarm の開発状況 MPICH2 向け mpich2-1.3.2p1 向け Gfarm 用のコードを ROMIO に追加 Ver. 0.0.1 としてリリース中 https://sourceforge.net/projects/gfarm/files/gfar m_mpiio/0.0.1/ MVAPICH2 向け MPICH2 向けのもの (Ver. 0.0.1) ベース 現在開発中 機能は MPICH2 向けのものと変わらない 2018/3/2 Gfarm ワークショップ 2018 8

MVAPICH2 向け MPI-IO/Gfarm 2018/3/2 Gfarm ワークショップ 2018 9

利用までの流れ 1. ダウンロードとパッチの適用 MVAPICH2(or MPICH2) をダウンロードし gfarm_mpiio プラグインを利用可能にする 2. configure スクリプトの実行 利用可能なファイルシステムとして Gfarm を選択 3. ビルドとインストール 2018/3/2 Gfarm ワークショップ 2018 10

ダウンロードとパッチの適用 # MVAPICH2-2.2 のダウンロードと展開 $ wget http://mvapich.cse.ohiostate.edu/download/mvapich/mv2/mvapich2-2.2.tar.gz $ tar zxvf mvapich2-2.2.tar.gz # ad_gfarm ディレクトリのコピー $ cp mvapich2/makefile.mk ad_gfarm $ cp -r ad_gfarm mvapich2-2.2/src/mpi/romio/adio/ # パッチの適用 $ patch -p0 < mvapich2/mvapich2.patch $ cd mvapich2-2.2 $./autogen.sh 必ず行うこと, autotools のバージョンが古い場合は最新版を入れる 現在対応しているバージョン 2018/3/2 Gfarm ワークショップ 2018 11

configure スクリプトの実行 # 環境変数の設定 $ export CFLAG= -I$GFARM_PREFIX/include $ export LIBS="-lgfarm" $ export LDFLAGS="-L$GFARM_PREFIX/lib $GFARM_PREFIX は Gfarm をインストールしたパス # configure スクリプトの実行 $./configure --enable-romio --with-file-system=ufs+nfs+gfarm Gfarm を選択する nfs ufs pfs pvfs pvfs2 testfs xfs panfs gridftp lustre gpfs zoidfs hfs piofs sfs などが利用可能 ( + でつなぐ ) 2018/3/2 Gfarm ワークショップ 2018 12

ビルドとインストール # ビルド $ make # インストール $ make install # 組み込まれているかの確認 $ which mpirun -> インストールした mvapich2 が出てくることを確認する $ ldd `which mpirun` grep gfarm -> libgfarm がリンクされていることを確認する 2018/3/2 Gfarm ワークショップ 2018 13

MPI-IO/Gfarm の使い方 2018/3/2 Gfarm ワークショップ 2018 14

使い方 MPI_File_open() でファイルを指定する際にパスの先頭に gfarm: をつける 元のコード MPI_File_open(MPI_COMM_WORLD, filename", MPI_MODE_CREATE MPI_MODE_WRONLY, MPI_INFO_NULL, &fh); Gfarm に対応したコード gfarm: を頭につけたパスを記述 MPI_File_open(MPI_COMM_WORLD, "gfarm:filename", MPI_MODE_CREATE MPI_MODE_WRONLY, MPI_INFO_NULL, &fh); 2018/3/2 Gfarm ワークショップ 2018 15

サンプルプログラムと動作サンプル 2018/3/2 Gfarm ワークショップ 2018 16

サンプルプログラムの概要 各プロセスは適当な値を同一ファイルに書き込む 4 ノード 4 プロセスで実行 プログラムから見えるファイル gfarm:testfile 実際に作成されるファイル testfile testfile/data/[0-3]-0 testfile/meta/[0-3] 2018/3/2 Gfarm ワークショップ 2018 17

サンプルプログラム (1/2) 1 #include <unistd.h> 2 #include <stdio.h> 3 #include <stdlib.h> 4 #include <stddef.h> 5 #include <mpi.h> 6 7 int main(int argc, char *argv[]) { 8 int rank; 9 MPI_File fh; 10 11 MPI_Init(&argc, &argv); 12 MPI_Comm_rank(MPI_COMM_WORLD, &rank); 13 14 MPI_Datatype new_type; 15 MPI_Type_vector(2, 1, 2, MPI_INT, &new_type); 16 MPI_Type_commit(&new_type); ギャップがあるデータ型を定義 2018/3/2 Gfarm ワークショップ 2018 18

サンプルプログラム (2/2) 17 ファイルの 18 int buf[] = {rank, rank + 1, rank + 2}; Open 19 20 MPI_File_open(MPI_COMM_WORLD, "gfarm:testfile", 21 MPI_MODE_CREATE MPI_MODE_RDWR, MPI_INFO_NULL, &fh); 22 23 MPI_File_set_view(fh, rank * sizeof(int) * 3, 24 MPI_INT, new_type, "native", MPI_INFO_NULL); 25 Gfarm を指定 26 MPI_File_write(fh, &buf, 1, new_type, MPI_STATUS_IGNORE); 27 28 MPI_File_close(&fh); 29 MPI_Finalize(); 30 31 return 0; 32 } 2018/3/2 Gfarm ワークショップ 2018 19

コンパイルと実行 # コンパイル $ CC=mpicc make mpiio ファイルが存在する # 確認 $ ls l mpiio -rwxrwxr-x 1 fuyumasa fuyumasa 7.9K Feb 22 20:53 mpiio* $ ldd mpiio grep gfarm libgfarm.so.1 => <Gfarm をインストールしたパス >/lib/libgfarm.so.1 # 実行 $ mpirun hostfile hostfile./mpiio libgfarm がリンクされている 2018/3/2 Gfarm ワークショップ 2018 20

ファイルの見え方 $ tree -sh. [ 0] testfile [ 0] data [ 0] 0 [ 8] 0-0 [ 8] 1-0 [ 8] 2-0 [ 8] 3-0 [ 0] meta [ 64] 0 [ 64] 1 [ 64] 2 [ 64] 3 $ hexdump testfile/data/0-0 0000000 0000 0000 0002 0000 0000008 ファイルのデータ ファイルのメタデータ ( 位置情報ファイル ) 2018/3/2 Gfarm ワークショップ 2018 21

既知の不具合 読み込み出来ない 書き込みは可能 MPICH2 向けのものでも発生 現在調査中 2018/3/2 Gfarm ワークショップ 2018 22

まとめと今後の展望 MPI-IO を利用したプログラムから Gfarm の特徴を活用するためのプラグイン gfarm_mpiio のご紹介 今後の展望 バグ対応 OpenMPI 3.0 対応 2018/3/2 Gfarm ワークショップ 2018 23