2011年6月10日金曜日

MapReduce 2011

Otus: Resource Attribution in Data-Intensive Clusters CMU
   monitoring / analyzing MR jobs
  ジョブなどのCPU/Memory/Disk利用状況を分割して表示。
  Mochi という Hadoopのvisualizerがあるようだ。
  
  Hadoop はJMX で情報を出している。これと/procからの情報などを
  ノード毎のCollectorに集めて、それを中央のAggregatorにあつめて
  Storage Backendにいれる。 
  - RRDToolを使っている。OpenTSDBに移行するよてい。
   メタデータはrrdのパス名にエンコード。うーん、無理がある。

  - JVM reuse は使い回すが、すぐに使われない場合があって結構危険
  - 失敗した Hadoop streaming job がクリーンナップされなくて
    仮想メモリを食いつぶすことがある。
Phoenix++: Modular MapReduce for Shared-Memory Systems
shared memory machine でon memory  でMR.を行うPhoenix シリーズ,
1,2ときて最新版が++ 。OpenMPの代用としてつかうようなもの。
  オリジナルの問題点
   - hash が固定長
   - combiner がmapの後にしか走らない
   -  
    Metis というのもある。

   modular storage 
    KV の性質はいろいろある。 *:*, *:K, 1:1。それぞれにたいしてコンテナを容易
 
   C++ テンプレートとinline 展開を用いてループオーバヘッドを削減。
Static Type Checking of Hadoop MapReduce Programs
   Hadoopでの型違い問題をstaticに解決。たしかにHadoopで実行時にエラーがでるのは
  非常にむかつくので有意義かも。
INRIA のBlobSeer のKeynote
  Google のGreg Malewicz が  Beyond MapReduceというすごく面白そうな
  Keynoteをする予定だったのだけど残念ながらキャンセル。かわりに
  INRIAの名前失念さんがBlobSeerに関するおはなしを。
   HDFSをBlobSeer上に実装、というところだけがつながりか?

   ANLとかといっしょにやってる? ARPEGE Call ってなんだ?

   AzureBrain? BlobSeer on Azure を使ってBrain とneuroを一緒に解析
 
Tall and Skinny QR Factoriazations in MapReduce (from sandia)
 500,000,000 by 100 matrix 423.3 GB HDFS 
 極端に細い行列のQR Factorization.

 カスケードしたいくつかの行列積に分割している。
Rapid Parallel Genome Index using MapReduce.
  DNA sequencingのための
  suffix arrayの生成をHadoopで。 - BWT (Burrows Wheeler Transform)
  EC2でやってるな。
  cloudburst, crossbow, Quake, Contrail 
Full-Text Indexing for Optimizing Selection Operations inLarge-Scale Data Analytics
Twitterのはなし。 Lucene をつかってindexして、Hadoop で探す。
  Jimmy Lin (Qatar であった) Twitter
Exploring MapReduce Efficiency with Highly-Distributed Data
  分散環境でHadoop。データの配置、通信をおこすタイミングをshuffleにしたりmapの
  前にしたりして、実験。ごくごく当たり前の結果。やらんでもわかるだろ。
  という感じも。
Parallelizing large-scale data processing applications with data skew: a case study in product-offer matching
MSインターンでやった内容だそうだ。
  Data skew とは?
  Product Offer Matching - 商品の名寄せ。
   機械学習をつかっている。training をする。
 

2010年11月29日月曜日

ComSys 2010@大阪

 ●招待講演1 [13:15~14:15] 60分      座長:阿部洋丈(阪大)
   (1) 新世代ネットワークで変わるICT研究
       下條真司 (NICT)
各国のネットワーク研究の現状を紹介。日本では今後どちらの方向にいくのか。
 ●一般講演1:仮想マシン(1)[14:35~15:45]70分      座長:光来健一(九工大)
   (2) 仮想マシンモニタによる透過的ネットワークブート方式 【若手優秀論文賞】
       表 祐志,品川 高廣,加藤 和彦(筑波大)
ストレージのみを集中管理した環境を作るのが目的。 ネットワークブートを透過的にするために、デバイス類はパススルー、仮想ディスクだけはトラップして ネットワークディスクで提供、ということ。SACSISのポスターでみたような。ATA over Ethernet.
ネットワークドライバは、パススルーなのに、ATAの転送も食わせるので、ここが一番大変そう。 ブート前とブート後で挙動が違うらしい。
 
   (3) 準パススルー型仮想マシンモニタへのマルウェア検出機能の拡張 (S)
       Tran Truong Duc Giang,大山 恵弘(電通大),忠鉢 洋輔,
       品川 高廣,加藤 和彦(筑波大)
 
アンチウィルスソフトをBitvisorレベルでやる、というはなし。VMMでやるという話はたくさんあるのだけど、 これは、ハイパーバイザ型なところが違うとうのこと。
 ●一般講演2:分散システム[16:05~17:05]60分      座長:高野了成(産総研)
   (4) DTS: Broadcast-based Content-aware TCP Connection Handover
       Fujita Hajime,Ishikawa Yutaka(The University of Tokyo)
   (5) データストリーム処理系System SとHadoopの統合実行環境 (S)
       松浦 紘也,雁瀬 優(東工大),鈴村 豊太郎(東工大/IBM)

2010年6月1日火曜日

SACSIS

分散メモリ向け並列言語XcalableMPコンパイラの実装と性能評価
 李 珍泌, 朴 泰祐, 佐藤 三久(筑波大)
OpenMPと並列フォートランを混ぜたような言語。グローバルビューとローカルビュー があり、グローバルビューだけでもほとんどのプログラムをかけるが、書き切れない部分をローカルビューで補うという機構。ローカルビューとグローバルビューの連携をどう記述するのかが、聞いていてもよくわからなかった。

柔軟かつ直観的な記述が可能なジョブ並列スクリプト言語Xcrypt
 平石 拓, 安部 達也, 三宅 洋平, 岩下 武史, 中島 浩(京大)
バッチキューイングシステムのフロントエンドとなるスクリプト言語。と言っているが、単なるRubyのライブラリである。スクリプト自体のチェックポインティングのことを考えると、素直になんらかのワークフロー言語を使うべきだと思う。

QuickCheckを用いるモデルベーステスト実行のためのMapReduce型テストフレームワークの提案
 生田 裕樹, 日下部 茂(九大)
乱数でテストケースを生成し、プログラムをチェックする、モデルチェッキングにHadoopのMapReduceを利用する試み。アプローチは興味深いが、並列プログラムの挙動の解析としては物足りない。結果は32コアで14倍程度の並列化効率しか得られていないが、計算の種類を考慮すると、直感的にはもっと並列化効率が高くて然るべきである。

MPI-Adapter: 異なるMPI実装間でバイナリ互換を実現するインタフェイスアダプタの設計と評価
 住元 真司, 成瀬 彰, 久門 耕一(富士通研), 安井 隆(日立), 鴨志田 良和, 松葉 浩也, 堀 敦史, 石川 裕(東大)
複数のクラスタをMPIで連携させる際に問題になるのは、それぞれのクラスタが往々にしてベンダ固有のMPIライブラリを利用していることである。MPIにはバイナリインターフェイスが定義されていないので、MPIライブラリを連携して動作させることは非常に難しい。この研究では、各MPI実装のヘッダファイルから自動的に情報を抽出してアダプタを生成することで、異なるMPI実装を連携した実行を可能としている。

マルチコアPCクラスタ向けAll-to-all通信アルゴリズムの提案と評価
 成瀬 彰, 中島 耕太, 住元 真司, 久門 耕一(富士通研)
マルチコアPCクラスタでMPI通信を行うと、隣接するコアの発行する通信との干渉によって性能が低下する。この論文は、性能低下の原因を解析し、低下しないようスケジューリングする方法を提案している。ちなみに、最優秀論文賞の一つであった。

リングトポロジーによる MPI-IO 書込の高速化
 堀 敦史, 太田 一樹, 鴨志田 良和, 松葉 浩也(東大), 安井 隆(日立), 住元 真司(富士通研), 石川 裕(東大)
クラスタ上のMPIプログラムが共有ディスクにデータを書き込む際に、同時に書き込みを行うと、シークが頻発するため性能が極端に低下する。ROMIOは、リング状にデータを転送しつつマージしていくことにより、シークを減らし、書き込みスループットを最大化する。
これ、おもしろい。

2010年5月12日水曜日

クラウド研究会@青山オラクル

浅海さん:
クラウドアプリのモデリング

大規模になり、同期通信は現実的でなくなるので、非同期になる。
したがってキューのような構造が重要。

メッセージフローという抽象化。ScalaのDSLで書いたモノを
自動的にコードに変換する。Yahoo pipesのようなイメージ

感想:DSLは超読みづらい。あれでいいとは思えない。単純な構造は
書けるだろうけど、複雑な構造は難しそう。
マイクロソフト 砂子さん:
Azureのアップデート


  シンクフレームワーク

  Azure SQL - Azure SQL間、 SQL Server  - Azure SQL間、
  Azure SQL - クライアントアプリ間で データをシンクする
  汎用フレームワーク。これはすごい。
  シンクが効率的にきれいに実装されているなら、シンクのみを
  ベースにアプリを作ったっていいぐらいだ。

2010年5月6日木曜日

CUDA講習会

いまさらで恥ずかしいが、東工大で行われたCUDAの講習会に行ってきた。 CUDAはnVidiaのGPGPU(汎用GPU)向け開発環境の名前。CやFortranでGPGPU プログラムができる。

ユーザは、GPGPU上で実行される「カーネル」と呼ばれるコードを書く。 このカーネルを、大量のスレッドで同時並列に実行する事で、並列実行が 行われる。面白いのは、多量に実行するスレッドを2段階に階層化すること。 スレッドグループがコアに割り当てられるので、コア単位の並列度を稼ぐには スレッドグループを増やさなければならない。 個々のスレッドグループは一つのコア上で実行される。このときメモリアクセス のレイテンシを隠蔽するために、SMT的な並列実行が行われるので、 ここにも複数のスレッドを割り当てておかなければ効率が落ちる。

スレッドグループ内からのみアクセスできるローカルメモリと呼ばれる メモリがあり、これをうまく使うことで、大幅に高速化が可能。 今後はローカルメモリに変わって普通のキャッシュが導入されるとのこと。 この辺の最適化が不要になるので、さらに使いやすくなるだろう。

印象的なのは、CUDAの開発環境の完成度。コンパイルと実行が、ほとんど普通の CPUと同じようにできる。カーネルとホストプログラムを一つのファイルに書けたり、 a.outが一つのファイルになるのも、地味だが 非常に重要なポイント。プログラミングモデルも、単純で並列に 親しみのないユーザにもわかりやすくてよい。この程度の作業で 数倍-数十倍の高速化ができるのなら、やってみたくもなる。

ただ、今後のGPGPUの行く末がちょっと気になる。この種のアクセラレータが 今後主流になるのはいいとして、開発コストをGPUユーザに負わせるモデルが どこまで持続可能だろうか。ハイエンドGPUのユーザ層は先細りだし、 今後のGPUはプロセッサ内蔵の、よりカジュアルなものに移行していくだろう。 そうなったときにGPGPUの開発コストはHPCユーザが負わなければならない。 その場合のGPGPUの価格は、どのくらいになるんだろうか。

2010年1月29日金曜日

OS研究会@札幌 2010/1/27,28

2010年1月27日(水)
■仮想化(1) [13:30-14:45]
(1) ARMアーキテクチャ用仮想マシンモニタの実装
   鈴木章浩,追川修一
非特権センシティブ命令をスタティックに置き換えているところと, ページをつかわないでドメインでメモリ保護をさせるところが 面白いところ,なのかな?
(2) 仮想マシンのオーバヘッドおよび負荷評価方法の提案
   金田典久,飯塚剛,金木佑介
仮想計算機に統合する際のサイジングのお話.負荷予測? 統合前の負荷を調べておく.負荷シミュレータ.シミュレーションっていうか, 実機使ってるなあ...たしかに「負荷」をシミュレートしているだけなのか.
(3) XenにおけるPCI Passthroughの性能評価
   渡邉和樹,永島力,茂田井寛隆,片山吉章,毛利公一
PCI Passthrough と準仮想化を比較. 「遅延」とかいうのはおかしいよな. Domain0での実行が速すぎる.ちゃんと計測できていないんじゃないかとしか 思えない. 対象がディスクとか1GNICだと,ディスクが律速で,あまり差がでない.もっと速い 10GNICとか,GPGPUだと面白いんじゃないか?
■OS実装法 [15:05-16:20]
(4) OCamlによるOSの実装
   井上翔大,大山恵弘
OCamlでOSを実装.もちろん,ハードウェアに直接触る部分は Cのasm文で書いている.実装の完成度はまだまだだが,今後が 楽しみ.
(5) 異なるOpenCL実装を接続可能にするHybrid OpenCLの構築
   青木亮,追川修一,土山了士,中村孝史
他のノードのOpenCLデバイスをリモートで利用することのできるライブラリ の提案.複数のノードのOpenCLデバイスを同時に使うことで 高並列の実行が期待できるほか,各ノードがことなるOpenCLデバイスを持つ ような,ヘテロ環境にも対応できる.
おもしろいが, なんでHybridというのかイマイチわからん.なにとなにのハイブリッドなのか? 評価は1対1でしかやっていないので,1対多になったときの性能は不明. 1対1ではそれなりの性能が出ているらしい.今後のe-science cloud でGPUを使う,とか言うときにちょっと面白いかも.
(6) スクリプティング言語によるカーネル拡張
   井出真広,中田晋平,倉光君郎
konoha というJavaっぽいスクリプト言語でLinuxのモジュールを書く, というはなし.デモでは失敗していたが,まあそれはご愛敬. ランタイムをカーネルモジュールとして実装し,そこで実行する. konoha がCの構造体を比較的簡単に参照できるようになっているのがミソなのか.
1月28日(木)
■メモリ管理 [10:00-11:15]
(7) イーサネット接続SSDによるコンピュータのメモリ拡張
   鈴木順,馬場輝幸,飛鷹洋一,樋口淳一,加美伸治,内田智士,高橋雅彦,菅原智義,吉川隆士
express etherを使って,ioDriveをリモートから使ってswapを高速化. 現状だとPCIを1対1でつかうことになってあまりうれしくないが, 将来的には,共有できるようになるらしい.それなら面白いかも.
(8) ゼロコピー通信処理を可能にする実メモリ交換機能の提案
   門直史,田端利宏,谷口秀夫
Tender話.ページをスワップする機能を使って,ユーザランドと カーネルランド間での転送をサボる. ただし, ページ全体がスワップされちゃうので,実際には 受信時にはページにアラインメントされた領域を確保しなければ ならないから,pin downするのと大して変わらないおうに見える.
(9) 省メモリのためのメモリアクセス解析手法の提案と実装
   壬生亮太,高橋雅彦,菅原智義
組込機器でメモリアクセスをトレースしてリアルタイムで可視化する.
■並列・分散処理 [11:30-12:20]
(10)範囲検索と複数属性のデータの処理に適応した分散データストア
   川上大輔,松井俊浩,齋藤彰一,津邑公暁,松尾啓志
KVS を2つつかって,検索性と複数要素の格納を両立させる と言う話し.インデックスを別のKVSに作っている,ということなのか. 完成度は低そう.
(11)yass: yet another simple storage
   荒川淳平,笹田耕一,竹内郁雄
PHPで作ったストレージ.orz-DHT意外にもそんなモノがあるとは. 完成度高そう.マウントもできるらしい.
■仮想化(2) [13:30-14:20]
(12)SMPを活用したPrimary/Backupモデルによるリプレイ環境の構築
   川﨑仁,追川修一
SMP上でVMを時間差実行.イベントをバッファリングしてから食わせてやることで, 時間差で全く同じように実行させる.で,それをカーネルパニックしたときなどに 検出する.
(13)仮想マシンモニタを用いたVPN障害への透過的な対応手法
   松橋洋平,品川高廣,加藤和彦
クラウドへのVPN接続をVMM で管理することで,ゲストに対して透過に耐故障性を付与する.
■プロセス管理 [14:35-15:50]
(14)ライブラリ実装したプログラム実行速度調整法における処理の均一性の評価
   境講一,田端利宏,谷口秀夫,箱守聰
ライブラリでプログラム実行をスロットリング.cgroupとかで できてしまいそうで微妙.
(15)EDFスケジューリングにおけるDVFSを用いたCPU省電力化手法
   林和宏,並木美太郎
DVFS 制御による省電力.周期タスクで予測をいれることでより 効率的に制御できる,というところがミソ.
(16)プロセスグループ別LSMのためのLSMフレームワーク拡張
   中田晋平,倉光君郎
linux container で利用されている機能を用いて,セキュリティ機構を拡張.

2010年1月21日木曜日

GNU Emacsにおける暗号化機能の刷新

    
GNU Emacsにおける暗号化機能の刷新
上野 乃毅
コンピュータ ソフトウェア Vol. 26 (2009) , No. 4 
EmacsのPGP実装を入れ替えるのに,オープンソフトウェアコミュニティでどういう苦労をしたか,という話し.タイトルと内容がちょっとずれているような.

Comsysで聞いたTOMOYO LINUXをカーネルにマージする話しと似ている.しかしなあ,この話しこそ,ブログでもいいような.まあ,論文っていうのはもともとそんなもんなのかもしれない.