Click to edit title

Similar documents
インテル® Parallel Studio XE 2013 Linux* 版インストール・ガイドおよびリリースノート

インテル® Parallel Studio XE 2013 Windows* 版インストール・ガイドおよびリリースノート

PowerPoint プレゼンテーション

インテル® Parallel Studio XE 2015 Composer Edition for Linux* インストール・ガイドおよびリリースノート

インテル® VTune™ Amplifier XE を使用したストレージ向けの パフォーマンス最適化

インテル® キャッシュ・アクセラレーション・ソフトウェア (インテル® CAS) Linux* 版 v2.8 (GA)

PowerPoint プレゼンテーション

Tutorial-GettingStarted

MAGNIA Storage Server Configuration Guide

hpc141_shirahata.pdf

Microsoft PowerPoint Quality-sama_Seminar.pptx

並列アプリケーション向けインテル® TBB スケーラブル・メモリー・アロケーターの活用

バトルカードでゲーマーやエンスージアストへの販売促進

Microsoft Word - nvsi_050110jp_netvault_vtl_on_dothill_sannetII.doc

Product Brief 高速なコードを素早く開発 インテル Parallel Studio XE 2017 インテル ソフトウェア開発ツール 概要 高速なコード : 現在および次世代のプロセッサーでスケーリングする優れたアプリケーション パフォーマンスを実現します 迅速に開発 : 高速かつ安定し

システムソリューションのご紹介

ハードディスク ドライブ (HDD) やシリアル ATA(SATA) ベース のソリッドステート ドライブなどのレガシー ストレージ テクノロジーは 最新のアプリケーションで必要な統合機能やパフォーマンスはもちろん 変化の激しいビジネスニーズに対応することができません その原因の一部は SATA イ

PowerPoint Presentation

StoreEasy 1x40 RAID構成ガイド

InfiniDB最小推奨仕様ガイド

AIX yumの設定

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows 日本語版 : インストール・ガイド

東芝 MAGNIA R3320b での SSD 性能の検証 2012 年 8 月 株式会社東芝 クラウド & ソリューション事業統括部 目次 1. はじめに ソリッドステートドライブの概要 使用機器一覧 単体性能について サーバー用途別のテスト

Red Hat Enterprise Linux OSの手動インストール

Click to edit title

(Microsoft PowerPoint - Mirapoint\220\273\225i\221\316\224\344\225\\\(6\203V\203\212\201[\203Y_7\203V\203\212\201[\203Y\).ppt)

Software-Defined Storage ware Virtual SAN ware Virtual SAN

PowerPoint プレゼンテーション

テクノロジーのビッグトレンド 180 nm nm nm nm nm On 2007 Track 32 nm には 150 億台の端末がネットワーク接続 * * "Gantz, John. "The Embedded

KSforWindowsServerのご紹介

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

Click to edit title

Microsoft Word LenovoSystemx.docx

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

C言語におけるファイル入出力の高速化

性能を強化した 第 12 世代 Dell PowerEdge サーバの RAID コントローラ Dell PERC H800 と PERC H810 の OLTP ワークロード性能比較 ソリューション性能分析グループ Luis Acosta アドバンストストレージエンジニアリング Joe Noyol

Microsoft Word - nvsi_100222jp_oracle_exadata.doc

April 2014 Flash-aware MySQL フラッシュが MySQL を変える Takeshi Hasegawa Senior Sales Engineer APAC Japan Fusion-io

サーバプラットフォーム「BladeSymphony」、「HA8000シリーズ」の新モデルを販売開始

記憶域スペースダイレクト (S2D) を活用したハイパーコンバージドインフラ技術解説ガイド 概要本ドキュメントは Windows Server 2016 で構築したハイパーコンバージドインフラ (Hyper-Converged Infrastructure:HCI) を技術的な観点から解説したガイド

HP StorageWorks X9000 Network Storage System

スライド 1

Slide 1

Microsoft Word - nvsi_090196_r1_vaultdr_offline_rhel_dualpath.doc

TOOLS for UR44 Release Notes for Windows

WithMIRACLE登録方法

160311_icm2015-muramatsu-v2.pptx

Microsoft Windows向けOracle Database 12cでのOracleホーム・ユーザーの導入

アドバンストサーバ「HA8000シリーズ」において最新テクノロジーを採用しシステム性能を強化

QNAP vsphere Client 用プラグイン : ユーザーガイド 2012 年 12 月更新 QNAP Systems, Inc. All Rights Reserved. 1

VXPRO R1400® ご提案資料

i Ceph

<4D F736F F D20836F E C C6F6E C EE682E888B582A2837D836A B2E646F63>

Microsoft(R) Office XP Professional/Personalモデル アプリケーション補足説明書

iscsi_omote

Ver. 3.8 Ver NOTE E v3 2.4GHz, 20M cache, 8.00GT/s QPI,, HT, 8C/16T 85W E v3 1.6GHz, 15M cache, 6.40GT/s QPI,

OPENSQUARE

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

データ移行ツール ユーザーガイド Data Migration Tool User Guide SK kynix Inc Rev 1.01

OSSTechプレゼンテーション

ESOTERIC ASIO USB DRIVER インストールマニュアル Windows 用 システム推奨条件 2 インストールで使用する言語を選択して 次へ ボタンをクリックする Intel Core 2 Duo 以上のプロセッサー搭載コンピュータ 搭載メモリ 1GB 以上 対応 OS Windo

038_h01.pdf

インテル® Fortran Studio XE 2011 SP1 Windows* 版インストール・ガイドおよびリリースノート

NEC RAID Controller Overview

ビッグデータやクラウドのシステム基盤向けに処理性能を強化した「BladeSymphony」および「HA8000シリーズ」の新製品を販売開始

PCI Express Graphics Products

FY14Q4 SMB Magalog December - APJ Version

ActiveImage Protector 2016 R2 for Express5800 / ftサーバ


システム必要条件 - SAS Add-In 7.1 for Microsoft Office

Microsoft Word - qtsi_120246jp_rhev.doc

Microsoft Word - nvsi_090203_r1_sanboot_vaultdr.doc

提案書

1 本体 2.5 型ドライブモデル ( フレームモデル ) 製品名称 / 概要 Express5800/R110i-1(4C/E3-1220v6) 1 x インテル Xeon プロセッサー E3-1220v6 (3GHz, 4C/4T, 8 MB), メモリセレクタブル, ディスクレス, ODD レ

改版履歴 Ver. 日付履歴初版 2014/7/10 - 目次 1. はじめに クラスター構築の流れ Windows Server Failover Cluster をインストールするための準備 OS のセットアップ時の注意... -

Release Note for Recording Server Monitoring Tool V1.1.1 (Japanese)

Ver. 3.8 Ver NOTE E v3 2.4GHz, 20M cache, 8.00GT/s QPI,, HT, 8C/16T 85W E v3 1.6GHz, 15M cache, 6.40GT/s QPI,,

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

<4D F736F F F696E74202D B E C995AA8E C815B F67816A82F0914

HD View Single Windowsセットアップガイド

Microsoft Word - Improved_Protected-Mode_API_Support

Microsoft Word - ESX_Setup_R15.docx

アプリケーション補足説明書(Office2003)

ボリュームライセンス簡易ガイド Windows および Microsoft Office を Mac で使用するためのライセンス Mac で使用するためのライセンス この簡易ガイドはすべてのボリュームライセンスプログラムを対象とします 目次 概要... 1 この簡易ガイドの更新内容... 1 詳細.

iStorage NSシリーズ 管理者ガイド

ホワイト ペーパー EMC VFCache により Microsoft SQL Server を高速化 EMC VFCache EMC VNX Microsoft SQL Server 2008 VFCache による SQL Server のパフォーマンスの大幅な向上 VNX によるデータ保護 E

システム必要条件 - SAS Add-In 8 for Microsoft Office

Windows Server 2016 ライセンス体系に関するデータシート 製品の概要 Windows Server 2016 は 準備が整った時点でクラウドコンピューティングへ簡単に移行できる新しいテクノロジを導入すると同時に 現在のワークロードをサポートするクラウドレディのオペレーティングシステ

Veritas System Recovery 16 Management Solution Readme

Oracle Cloud Adapter for Oracle RightNow Cloud Service

Veritas System Recovery 18 System Recovery Disk

使える! IBM Systems Director Navigator for i の新機能

UCS M シリーズ サーバでの Redhat/CentOS オペレーティング システムのインストール

Intel Software Presentation Template

新しい 自律型データ ウェアハウス

HP製コンピューターでのWindows® 7 XPモードの使用

アプリケーション補足説明書Microsoft(R) Office 2003 Editions

アプリケーション補足説明書(Office2003)Microsoft(R) Office 2003 Editions

Ver Ver NOTE E v3 2.4GHz, 20M cache, 8.00GT/s QPI,, HT, 8C/16T 85W E v3 1.6GHz, 15M cache, 6.40GT/s QPI

Jackson Marusarz 開発製品部門

Transcription:

3D XPoint 不揮発性メモリー ソリューションとプログラミング モデル インテル株式会社ソフトウェア技術統括部アプリケーション エンジニア森直之

アジェンダ メモリー階層と新メモリーへの期待 不揮発性メモリー 3D XPoint の特徴 不揮発性メモリー DIMM (NVDIMM) 従来のファイルシステムと不揮発性メモリー用ファイルシステム NVM ライブラリー まとめ 2

新しい種類のメモリーへの要求の高まり 大容量メモリー搭載サーバーをより安価に Virtualization Big Data & Cloud In-Memory DB 大容量メモリーでもレイテンシーを最小に OLTP HPC ソフトリセットやハードリブート時にデータをインメモリーに保持したい ERP Database Storage Workstation Supply Chain Mgmt Enterprise もっと高速なストレージ インターフェイスが欲しい 3

メモリーとストレージのギャップ CPU 高価揮発性 DDR 高レイテンシー パフォーマンス不足 NAND SSD HDD Drives 4

3D XPoint メモリーメディア大容量メモリーを求めて ワードアクセス すぐに利用可能 Word (Cache Line) Crosspoint Structure Selectors allow dense packing and individual access to bits NVM Breakthrough Material Advances Compatible switch and memory cell materials Large Memory Capacity Crosspoint & Scalable Memory layers can be stacked in a 3D manner Immediately Available High Performance Cell and array architecture that can switch states 1000x faster than NAND 5

メモリーとストレージのギャップを埋める CPU DDR 1000X 高速 1000X 高耐久 10X 高密度 INTEL DIMMS Intel Optane SSD NAND より 1 NAND より 2 DRAM より 3 NAND SSD Hard Disk Drives 1 Performance difference based on comparison between 3D XPoint Technology and other industry NAND 2 Density difference based on comparison between 3D XPoint Technology and other industry DRAM 2 Endurance difference based on comparison between 3D XPoint Technology and other industry NAND 6

10,000 3D XPoint テクノロジーと NVMe* 100 175 SSD NAND は従来の HDD に比べレイテンシーを ~100 倍改善 レイテンシー (us) 150 125 100 75 50 25 0 HDD +SAS/SATA SSD NAND +SAS/SATA SSD NAND +NVMe* SSD 3D XPoint テクノロジー +NVMe* NVMe* はレイテンシーを ~20μs 削減 ( 現在 ) 3D XPoint テクノロジーは NAND SSD に比べ NVM レイテンシーを ~10 倍改善 ドライブのレイテンシー コントローラーのレイテンシー (SAS HBA など ) ソフトウェアのレイテンシー Source: Storage Technologies Group, Intel Technology claims are based on comparisons of latency, density and write cycling metrics amongst memory technologies recorded on published specifications of in-market memory products against internal Intel specifications. 7

Intel Optane Technology 3D XPoint メモリーベースの SSD フォームファクター展開 GAMING EXAMPLE NVMe* SSDs With Intel Optane Technology Deliver an Immersive, Truly Open World With Uninterrupted Game Play Add-In Card M.2 U.2 2.5in. 8

3D XPoint メモリーメディアで構成されたインテル DIMM 次世代のインテル Xeon プロセッサー ベースのプラットフォームでサポート インテル DIMM (3D XPoint メモリーメディア ベース ) プロセッサーのメモリーバスに直接接続 揮発性 不揮発性両方の機能を持つ 現行の DRAM DIMM の 4 倍の密度 将来のインテル Xeon プロセッサー DIMM ( インテル DIMM と連携 ) 9

CPU 不揮発性メモリー DIMM (NVDIMM) DDR NVDIMMS Intel Optane SSD NAND SSD Hard Disk Drives 10

不揮発性メモリー DIMM (NVDIMM) の導入 不揮発性メモリーとは? バイトアクセス可能でかつ不揮発 ロード / ストアアクセス ページキャッシュなし メモリーのようなパフォーマンス ストレージ クラス メモリー (SCM) とも呼ばれる 特徴は? DRAM とブロックストレージ (SSD/HDD) の間に追加される新階層 高容量 高耐久性 安定した低レイテンシー 最適化可能 ページングなし コンテキスト スイッチなし 割り込みなし カーネルコードの実行なし DMA および RDMA 可能 アプリケーションへの影響は? 新階層のメモリーへのアスセス方法が必要 新機能を生かし パフォーマンスを出すためにはアプリケーションの再構成が必要な場合あり 11

不揮発性メモリー DIMM (NVDIMM) 12

汎用 OS のファイル システム レイヤー User Space Application (open,read,write,close) Kernel Space Buffer Cache Hardware Storage 13

I/O open, write, close // メモリー確保約 12GB int MAXBOUND = 40000; double (*matrix)[maxbound] = malloc(sizeof(double[maxbound][maxbound])) ; long numvalues = MAXBOUND * MAXBOUND ; // 行列を任意の値で初期化... // ディスクへ保存 char *outfilename = /disks/d1/datafile // ext4 fs の SSD 上のファイル FILE *outfile = fopen( outfilename, "wb" ) ; fwrite( (*matrix), sizeof(double), (size_t) numvalues, outfile ) ; fclose(outfile); free(matrix); # free h s 3 total used buff/cache Mem: 125G 1.4G 302M - プログラム開始 Mem: 125G 1.4G 302M - malloc 後 Mem: 125G 1.6G 302M - 行列初期化 Mem: 125G 6.0G 302M Mem: 125G 10G 302M Mem: 125G 13G 2.0G - ファイル書き出し開 始 Mem: 125G 13G 7.0G Mem: 125G 13G 11G - 書き出し完了 Mem: 125G 1.4G 12G - プログラム終了 Mem: 125G 1.4G 12G Mem: 125G 1.4G 12G ユーザーメモリーとバッファーキャッシュを両方使用 14

I/O open, read, close // メモリー確保約 12GB int MAXBOUND = 40000; double (*matrix)[maxbound] = malloc(sizeof(double[maxbound][maxbound])) ; // ファイルオープン char *infilename = /disks/d1/datafile File *infile = fopen( infilename, "rb" ) ; long numvalues = (long) MAXBOUND * MAXBOUND ; // データ読み出し fread( (*matrix), sizeof(double), numvalues, infile ) ; // ext4 fs の SSD 上のファイル # free h s 3 total used buff/cache Mem: 125G 1.4G 310M - プログラム開始 Mem: 125G 1.5G 385M - メモリー確保 Mem: 125G 5.2G 4.1G - 読み出し開始 Mem: 125G 9.2G 8.1G Mem: 125G 13G 12G - 読み出し完了 Mem: 125G 1.4G 12G - プログラム終了 Mem: 125G 1.4G 12G Application (open,read,write,close) User Space // ファイルクローズ fclose(infile); free(matrix); Buffer Cache Kernel Space Hardware ユーザーメモリーとバッファーキャッシュを両方使用 Storage 15

I/O mmap (read) // ファイルオープン char *infilename = /disks/d1/datafile int infile = open( infilename, O_RDONLY ) ; // ext4 fs の SSD 上のファイル // サイズ取得 numvalues の数を計算 struct stat sb; fstat(infile, &sb); numvalues = sb.st_size / 8 ; MAXBOUND = (int) sqrt((double) numvalues) ; // mmap 呼び出し matrix のポインターをセット double *mm = mmap( 0, sb.st_size, PROT_READ, MAP_PRIVATE, infile, 0); double (*matrix)[maxbound] ; matrix = (double (*)[MAXBOUND]) mm ; # free h s 3 total used buff/cache Mem: 125G 1.4G 312M - プログラム開始 Mem: 125G 1.4G 312M - ファイルオープン Mem: 125G 1.4G 312M - mmap Mem: 125G 1.4G 1.3G - データへの touch Mem: 125G 1.4G 4.6G Mem: 125G 1.4G 7.9G Mem: 125G 1.4G 11G Mem: 125G 1.4G 12G - 全データ touch 完 了 Mem: 125G 1.4G 12G - プログラム終了 Mem: 125G 1.4G 12G User Space // 全データにアクセス (touch) double sum = 0.0; for (i=0; i<maxbound; i++) { for (j=0; j<maxbound; j++) sum += matrix[i][j] ; } munmap(mm, sb.st_size); バッファーキャッシュのみ使用 Application (open,read,write,close) Kernel Space Buffer Cache Hardware Storage 16

不揮発性メモリー NVDIMM への最適化 User Space Application (open,read,write,close) Kernel Space Buffer Cache Hardware Storage 17

DAX を有効にしたファイルシステム DAX ファイルへのダイレクトアクセス PM (Persistent Memory; 不揮発性メモリー ) を意識した環境を提供 フィルシステムの権限管理はそのまま ファイルはダイレクトにマッピングされる バッファーキャッシュを介在しない ページングしない マウント時 dax オプションを使用 mount o dax /dev/pmem0 /mnt/mem デバイスは DAX 可能であることが条件 SSD は不可 NVDIMM ( 不揮発性メモリー DIMM) は可能 18

I/O mmap (read) DAX オプション付き // ファイルオープン char *infilename = /mnt/mem0/datafile int infile = open( infilename, O_RDONLY ) ; // メモリープールを o dax でマウント // したファイルシステム上のファイル // サイズ取得 numvalues の数を計算 struct stat sb; fstat(infile, &sb); numvalues = sb.st_size / 8 ; MAXBOUND = (int) sqrt((double) numvalues) ; // mmap 呼び出し matrix のポインターをセット double *mm = mmap( 0, sb.st_size, PROT_READ, MAP_PRIVATE, infile, 0); double (*matrix)[maxbound] ; matrix = (double (*)[MAXBOUND]) mm ; # free h s 3 total used buff/cache Mem: 31G 481M 270M Mem: 31G 481M 270M Mem: 31G 486M 270M Mem: 31G 499M 270M Mem: 31G 504M 270M Mem: 31G 504M 270M Mem: 31G 481M 270M Mem: 31G 481M 270M Application (open,read,write,close) User Space // 全データにアクセス (touch) double sum = 0.0; for (i=0; i<maxbound; i++) { for (j=0; j<maxbound; j++) sum += matrix[i][j] ; } close( infile ); munmap(mm, sb.st_size); ユーザーメモリーもバッファーキャッシュも使用しない Buffer Cache Storage Kernel Space Hardware 19

I/O mmap (write) DAX オプション付き numvalues = (long) MAXBOUND * MAXBOUND ; char *outfilename = /mnt/mem0/datafile // メモリープールを o dax でマウント // したファイルシステム上のファイル int of = open( outfilename, O_CREAT O_RDWR, S_IRUSR S_IWUSR S_IRGRP S_IROTH ) ; long fsize = numvalues * 8; fallocate( of, 0, 0, fsize ) ; // mmap 呼び出し matrix のポインターをセット double *mm = mmap( 0, fsize, PROT_WRITE, MAP_SHARED, of, 0); double (*matrix)[maxbound] = (double (*)[MAXBOUND]) mm ; total used buff/cache Mem: 31G 476M 239M Mem: 31G 477M 239M - プログラム開始 Mem: 31G 476M 239M - 出力ファイルオープン Mem: 31G 482M 245M - ファイルスペース確保 Mem: 31G 489M 254M - mmap Mem: 31G 496M 262M - 配列初期化 Mem: 31G 477M 267M - プログラム終了 Application (open,read,write,close) User Space // 全データにアクセス (touch) for (i=0; i<numvalues; i++) mm[i] = (double) i ; Buffer Cache Kernel Space close( of ) ; munmap(mm, fsize); ユーザーメモリーもバッファーキャッシュも使用しない Storage Hardware 20

メモリーマップによるバイトアクセス可能なストレージの比較 Application User Space Application User Space load/store access load/store access Page cache mmap() msync() Kernel Space Page cache Kernel Space pmem-aware File System mmap() NVDIMM NVDIMM DRAM storage NVDIMM NVDIMM DRAM NVDIMMs 従来 カーネルが介在することにより発生するコンテキスト スイッチのオーバーヘッドを回避 今後不揮発性メモリー時代 21

NVML: オープンソースのライブラリー pmem.io で公開中 Application Standard File API pmem-aware File System Load/Store Libraries MMU Mappi ngs User Space NVM ライブラリー 不揮発性メモリーへ展開されるログファイルへのインターフェイス API を提供 libpmemlog 不揮発性メモリーへ展開されるオブジェクトのアロケーション トランザクションや一般管理のインターフェイス API を提供 libpmemobj 不揮発性メモリーへ展開されるすべて同一サイズで アトミックにアップデートされるブロック型配列へのインターフェイス API を提供 libpmemblk Kernel Space NVDIMM ローカルの不揮発性メモリーへのローレベルサポート リモートの不揮発性メモリーへのローレベルサポート インテル デベロッパー ゾーンでも情報公開中 https://software.intel.com/en-us/persistentmemory ( 英語 ) libpmem librpmem 23

バイトアクセス可能な不揮発性メモリーへの対応とは アプリケーションは以下を意識しなければならない 1. データの永続化 ストアはフラッシュするまで保証されない CPU キャッシュを不揮発ドメインまでフラッシュする必要がある 2. データの一貫性 部分的な更新を避ける トランザクションを使用 3. 不揮発性メモリーの確保 / 解放 不揮発性メモリーを意識したアロケーター 不揮発性メモリーのリークを防ぐ 4. 不揮発性メモリーのエラー処理 アプリケーションから PM へストア CPU キャッシュ WPQ は Write Pending Queue で メモリー コントローラー内にある (TPQ とも呼ばれる ) MOV Core L1 L1 L2 L3 WPQ DIMM CPU CACHES WPQ CLWB + fence -or- CLFLUSHOPT + fence -or- CLFLUSH -or- NT stores + fence -or- WBINVD (kernel only) ADR -or- WPQ Flush (kernel only) 不揮発ドメイン CPU キャッシュ階層 メモリーサブシステム : 電力断時の保護ドメイン 24

なぜ NVML? アプリケーションが不揮発性メモリーに対応するために必要なソフトウェア SNIA* のプログラミング モデルで構成されている 高レベル言語からの不揮発性メモリーへのアクセスを簡易化し利便性を向上 C C++ Java* コンパイラーやプログラム言語を変える必要なし アプリケーションは低レベルのハードウェアの詳細を気にする必要がない 例えば CPU でサポートされている Flush コマンド アトミックストアのサイズ 提供される API 不揮発性メモリープールの確保 管理 メモリー マップ ファイルを使用 適切な更新 トランザクション処理 アプリケーションがクラッシュしてもデータの一貫性 状態を保つ プロセッサーのキャッシュをフラッシュ 電源断時にアトミック DAX 機能上で構成し Linux* と Windows* をサポート 25

NVML を Fedora* 24 以降で使用 fedora24 # dnf install libpmemobj-devel Last metadata expiration check: 0:08:18 ago on Wed Sep 14 14:58:49 2016. Dependencies resolved. ===================================================================================== Package Arch Version Repository Size ===================================================================================== Installing: libpmem x86_64 1.1-1.fc24 updates 29 k libpmem-devel x86_64 1.1-1.fc24 updates 43 k libpmemobj x86_64 1.1-1.fc24 updates 66 k libpmemobj-devel x86_64 1.1-1.fc24 updates 112 k Transaction Summary ===================================================================================== Install 4 Packages Total download size: 251 k Installed size: 527 k Is this ok [y/n]: y 26

libpmem 利用例 - read size_t mapped_len = -1; int is_pmem = -2; double *mm = (double *) pmem_map_file( infilename, 0, 0, 0, &mapped_len, &is_pmem ); numvalues = mapped_len / 8 ; MAXBOUND = (int) sqrt((double) numvalues) ; double (*matrix)[maxbound] = (double (*)[MAXBOUND]) mm ; // Can now access persistent memory as normal array // ie: matrix[x][y] 27

libpmem 利用例 - write & pmem_persist long numvalues = (long) MAXBOUND * MAXBOUND ; long fsize = numvalues * 8; size_t mapped_len; int is_mem; // Map the file create it if necessary double *mm = pmem_map_file( outfilename, fsize, PMEM_FILE_CREATE, 0666, &mapped_len, &is_pmem ); double (*matrix)[maxbound] = (double (*)[MAXBOUND]) mm ; // Assign values for(i=0; i<maxbound; i++) { for(j=0; j<maxbound; j++) { matrix[i][j] = (double) ++cnt ; } } pmem_persist( mm, mapped_len ); pmem_unmap(mm, mapped_len); 28

NVML のおさらい 利便性のための NVML 必須ではないが 時間を節約 積極的に検証されている C API は既存 C++ はアーリーアクセス状態 NVML ソースツリーに多数のサンプル man ページと blogs を参考に! 新しいライブラリーも開発中 追加の言語サポートも進行中 Python* はプロトタイプ Java* も対応中 http://pmem.io ( 英語 ) Google* group: pmem 29

次のステップ NVDIMM のパフォーマンスや能力の恩恵を受けられるアプリケーションを探す 超大容量メモリー 従来の DRAM では容量が大きすぎたりコストがかかりすぎて実現できなかったもの 一定のレイテンシーや高いパフォーマンスを要求するストレージ ここからスタート - NVM ライブラリーを調査 http://pmem.io ( 英語 ) 全体構成を理解 - http://pmem.io/2014/08/27/crawl-walk-run.html ( 英語 ) 不揮発性メモリーをエミュレート - http://pmem.io/2016/02/22/pmemulation.html ( 英語 ) アプリケーションを対応開始 NVDIMM と従来のストレージを両方ともサポートできるようにコードを変更 30

メモリーとストレージのギャップを埋める不揮発性メモリーの時代 CPU DDR INTEL DIMMS Intel Optane SSD NAND SSD Hard Disk Drives 31

法務上の注意書きと最適化に関する注意事項 本資料の情報は 現状のまま提供され 本資料は 明示されているか否かにかかわらず また禁反言によるとよらずにかかわらず いかなる知的財産権のライセンスも許諾するものではありません 製品に付属の売買契約書 Intel's Terms and Conditions of Sale に規定されている場合を除き インテルはいかなる責任を負うものではなく またインテル製品の販売や使用に関する明示または黙示の保証 ( 特定目的への適合性 商品性に関する保証 第三者の特許権 著作権 その他 知的財産権の侵害への保証を含む ) をするものではありません 性能に関するテストに使用されるソフトウェアとワークロードは 性能がインテル マイクロプロセッサー用に最適化されていることがあります SYSmark* や MobileMark* などの性能テストは 特定のコンピューター システム コンポーネント ソフトウェア 操作 機能に基づいて行ったものです 結果はこれらの要因によって異なります 製品の購入を検討される場合は 他の製品と組み合わせた場合の本製品の性能など ほかの情報や性能テストも参考にして パフォーマンスを総合的に評価することをお勧めします 2017 Intel Corporation. 無断での引用 転載を禁じます Intel インテル Intel ロゴ Intel Inside Intel Inside ロゴ Intel Optane ロゴ 3D XPoint Intel Optane Xeon は アメリカ合衆国および / またはその他の国における Intel Corporation の商標です * その他の社名 製品名などは 一般に各社の商標または登録商標です 最適化に関する注意事項 インテル コンパイラーでは インテル マイクロプロセッサーに限定されない最適化に関して 他社製マイクロプロセッサー用に同等の最適化を行えないことがあります これには インテル ストリーミング SIMD 拡張命令 2 インテル ストリーミング SIMD 拡張命令 3 インテル ストリーミング SIMD 拡張命令 3 補足命令などの最適化が該当します インテルは 他社製マイクロプロセッサーに関して いかなる最適化の利用 機能 または効果も保証いたしません 本製品のマイクロプロセッサー依存の最適化は インテル マイクロプロセッサーでの使用を前提としています インテル マイクロアーキテクチャーに限定されない最適化のなかにも インテル マイクロプロセッサー用のものがあります この注意事項で言及した命令セットの詳細については 該当する製品のユーザー リファレンス ガイドを参照してください 改訂 #20110804 32