SNIA の Non-Volatile Memory Programming Model について

ストレージベンダーを中心とした業界団体 SNIA(スニアと発音する) は、NVM Express とは別に不揮発性メモリ(Non Volatile Memory; NVM)に関する様々な規格を決めようとしている。その一環としてSNIA NVM Programming Techinical Work Groupで NVM を使ったプログラムモデルの提唱を行っている。

  1. SNIA NVM Programming Model Working Draft September 30, 2013
  2. SDC 2013 での Andy Rudoff 氏(Intel) の講演資料 The Impact of the NVM Programming Model … プログラミングモデルの話がはじまるのは 23 ページ以降

上記の資料等で SNIA は NVM と Persistent Memory(PM) の二つの用語を使い分けている。境界は微妙だが NVM とは永続性のあるメディアで、PM とは storage technology with performance characterisics suitable for a load and store programming model だそうな。SSDPCI SSD、SD カード等は NVM で、PRAM、ReRAM、MRAM や ULLtraDIMM (id:nminoru:20140122:mcs) などは PM という位置づけだと思われる。

1. の SNIA NVM Programming Model では 4 つのモデルが提唱されている。

さらに 2. の講演では PM を malloc ライクなライブラリで使わせるライブラリ(pmem)が提唱されている。

pmem と NVM.PM.FILE モデルの PMFS は、Linux ベースの実装が github 上に公開されている。ただし PM は簡単に手に入らないので、DRAM を persistent memory に見立てて実験するしかない。

IBM が x86 サーバ事業を Lenovo に売却

ThinkPad を含む個人向け PC 事業を Lenovo に売却したのに続き、低価格な x86 サーバ事業を 23 億ドルで Lenovo に売却したとのこと。

IBM が利益率の低い x86 サーバ事業を手放すという噂は随分前から流れていたが、昨年に Lenovo との交渉を行い 60 億ドルで交渉したものの金額が合意に至らなかった。

DELL富士通も売却に手を挙げていた。
富士通の提示した価格は Lenovo よりも上だったそうだが、意思決定が遅いので選ばれなかったそうな。

メモリバス直結型のフラッシュメモリ

IBM がメモリバスに直結するフラッシュメモリを搭載した新x86アーキテクチャを発表した。フラッシュストレージは eFlash DIMM と呼ばれ DDR3 チャンネルを介してアクセスする。IBM はこのフラッシュを使って実現したストレージを eXFlash と呼んでいる。遅延時間は5〜10マイクロ秒になる。

数日後に SanDisk が ULLtraDIMM を発表。IBM の eFlash DIMM の中身は ULLtraDIMM だったようだ。

ULLtraDIMM の技術の素は diablo technologies 社の Memory Channel Storage(MCS)。説明スライドもある。

いわゆる Flash Translation Layer(FTL) は DIMM のモジュール内にある。FTLx86 CPU 自身を使って動作できるような構造に見えないので、DIMM 上にマイコンが載っているのかもしれない。

MCS の書き換え単位は 4KB のようだ。Flashとしては非常に小さな更新単位だが、通常のメモリがキャッシュラインサイズ(64 バイト)で、場合によっては1バイト単位で更新していることを考えると、MCS をそのまま byte-addressable memory として使うというのではなさそうだ。

データ・サイエンスのプログラミング言語が Rから Python に置き換わる

データ分析系言語と言えば、かつては S 言語、今は R 言語だといわれたが、今は Python とは移り気な世界だ。

HP-UX と NonStop OS が x86 アーキテクチャに移植されることが決定、さらば Itanium

  1. MAINFRAME | HP to Port HP-UX to Intel X86
  2. AllThinsD | Hewlett-Packard CEO Meg Whitman Has a Lot to Say (Interview)
  3. The Inquirer | HP hammers nail into Itanium coffin, ports Nonstop servers to x86

Hewlett-Packard は PA-RISC アーキテクチャ上で動く HP-UX マシンと、Tandem コンピュータを買収して手に入れた NonStop サーバの 2 つのラインがあり、それぞれが Itanium (IA-64) アーキテクチャへポーティングされていた。今日、前者は HP Integrity サーバー、後者は HP Integrity NonStop サーバーというラインナップになっている。

2. は今年 6 月の記事だが、Hewlett-Packard CEO の Meg Whitman へのインタビューで、HP-UXx86 へポーティングし x86 アーキテクチャベースの HP Intergrity サーバを作る、(言外に Itanium を止める)、という話をしている。

3. は今月に入っての記事だが、x86 アーキテクチャベースの HP Integrity NonStop サーバーを作る、(言外に Itanium を止める)、という話をしている。

HP-UX 上のアプリは CPU が Itanium から x86 へ変わったら少なくともリコンパイルが必要になるが、NonStop OS アプリの場合はリコンパイルの必要はないそうな*1

2011年の段階では HP-UX は Itanium ベース(id:nminoru:20111124:odyssey)を止めないと言っていたがついに観念したようだ。とはいえ NonStop サーバまでも止めてしまうとは驚きだ。

*1:3. の記事で "Pringle said that customers will be able to seamlessly operate existing Nonstop OS applications on x86 Nonstop blades without recompilation, although recompiling them will deliver optimum performance." と言ってる。

Windows の銀行勘定系システムが 10 行目の導入

日本ユニシスが開発した世界初の Windows 上で動作する銀行勘定系システム BankVision は、10行目の地銀を獲得したそうだ。BankVision が最初に百五銀行に導入されたのが2007年5月(id:nminoru:20070508:bankvision)だったが、地道に増えていたのね。

Mellanox が Messaging Accelerator(VMA) をオープンソース化

InfiniBand や ethernet 機器を作っているイスラエルの Mellanox 社が、Messaging Accelerator(VMA) をオープンソース化した。

VMA は従来イーサーネットカードを挿した Linux マシン上で TCP/UDP で動作させていたプログラムがあった場合、InfiniBand HCA & ネットワーク機器とこの VMA ライブラリを使うことでプログラムの書き換えなしで通信速度を向上させることができるというもの。通信のレイテンシーを 300%、スループットを 200% 向上させることができる。どちらかというと通信帯域よりも遅延の削減の方に効果があるライブラリだ。同じカテゴリーの製品としては Chelsio の Wire DirectSolarflareOpenOnload がある。

このソフトは socket/sendmsg/recvmsg などのシステム関数呼び出しをフックして InfiniBand の通信に置き換えるのだが、実際にソースを見ていると IP 通信が InfiniBand の UD(Unreliable Datagram) に置き換わっている。

イーサーネットを InfiniBand に置き換えて低遅延化できるのはいくつか理由がある。

  1. 物理層ネットワーク層イーサネットよりも InfiniBnad の方が簡素になっている。
  2. InfiniBand のプロトコル処理がイーサーネットよりも軽い。
  3. InfiniBand のソフトスタックは(初期化やエラー処理を除く)運用中の通信でカーネルランドへの遷移が不要になっている。InfiniBand HCA & ドライバがユーザランドプロセスに mmap した領域へデータを配置すると自動的に送受信が始まるでの、sendmsg/recvmsg や poll/select などカーネルに戻る処理がない。よって軽い。

そのため VMA のようなオーバーヘッドがあっても高速になるようだ。とはいえプログラムが書き換えられるなら SDP(Sockets Direct Protocol) などに書き換えるほうが高速であろう。