2015年3月12日木曜日

DaDianNao: A Machine-Learning Supercomputer

DaDianNao: A Machine-Learning Supercomputer

Yunji Chen1, Tao Luo1,3, Shaoli Liu1, Shijin Zhang1, Liqiang He2,4, Jia Wang1, Ling Li1, Tianshi Chen1, Zhiwei Xu1, Ninghui Sun1, Olivier Temam2

  • Micro-47 のベストペーパー
  • そのうち誰かがやるだろうと思われていた、DNNをASICで作る、という話。
  • ただし、今のところまだ実物を作っているわけではない。28nm,0.9Vで作った場合をシミュレートしている。606MHzで動作。
  • 基本的には、CNNはメモリフットプリントが小さいのでオンチップメモリに乗る。外部通信は少ない。のでASICで作れば速くなるだろうから作った、ということ。
  • GPUよりも450.65倍速く、消費電力は 150分の1。
  • 分類フェーズだけでなく、学習フェーズもサポート。IBMのチップは前者だけ。
​

2014年10月16日木曜日

OSv—Optimizing the Operating System for Virtual Machines

ここからダウンロード。
うわさの OSv。このペーパーを読んで何が驚いたかって、”v”が下付きではなく上付きだったこと。えー、そうなの??スライドとかでも、上付きになってるの見たこと無いけど。。
  • 単一アプリをラッピングしてIaaS上で動かす軽量OS。JavaVMが最初のターゲットだったが、今は色々動く。
  • C++でスクラッチから書かれている。
  • プロセスは一個だけしか動かないが、スレッド的に複数のアプリを動かすことが実は可能。ただしメモリは共有される。
  • それどころか、アプリとカーネルの間でもメモリ空間は共有。というか、基本的にカーネルとユーザランドの区別が無い。アプリにOS機能を直接リンクするイメージに近い。
  • 1秒で起動するとのこと。
  • 用途はアプライアンスだろうか。
  • 直接の対抗馬はコンテナ技術か。コンテナよりはきっちりアイソレーションできそう。マイグレーションとの相性も良さそう。コンテナもマイグレーションできるそうだが、プロセスマイグレーションの経験から行くと、VMマイグレーションとは比較にならないほど面倒なので。
​

2014年7月16日水曜日

DBToaster: Higher-order Delta Processing for Dynamic, Frequently Fresh Views

DBToaster: Higher-order Delta Processing for Dynamic, Frequently Fresh Views

Yanif Ahmad, Oliver Kennedy, Christoph Koch, Milos Nikolic,

Peoc. of VLDB 2012 pp.968-979, 2012
  • DBアクセスを高速化する方法としてview を構築しておく方法がある。
  • しかし、頻繁に書き換えられるDBではviewの書き換えが多発する。
  • これをIncremental にやることで解決する。
  • 具体的には差分を意味するΔview も持っておき、データ入力でこのΔを変更する。
    そしてΔを使って元のviewを変更する、というように再帰的にやるらしい。
  • ストリームシステムSPYよりも圧倒的に速いという結果。というかこのSPYは
    妙に遅い??
​

2014年7月11日金曜日

Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing

Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing

Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker, Ion Stoica
Proc. of NSDI’12, 2012
  • UCBのチーム
  • Resilient Distributed Datasets というものを提唱。これはFlume JavaのPCollectionとほぼ等価に見える。
  • lineage (家系)という概念を導入。要するにどのようにしてそのデータセットが計算されたかの履歴。いつでも再計算できるようにしてFTを実現。これだとiteration があると大変なことになるので、適宜スナップショットを併用する。
  • Spark 上に実装。
  • Iterative なジョブでHadoopと比較している。
​

2014年7月10日木曜日

Presto SQL Engine

Hadoop Conference Japan 2014 のTD古橋さんによるPrestoのお話

参加するつもりだったのだけど、変な会議のせいで参加できなかったhadoop conferenceでの講演資料がアップされていた。ありがとうございます
  • SQLエンジン。HDFSに対して処理を行うだけでなく他のSQL的にアクセスできる
    DBに対するラッパとしても機能する。
  • アーキテクチャとしては、複数のWorkerをCoordinator が束ねる。CoordinatorはリクエストのSQLを解析してプランニングを行い、個々のWorkerに行なうべき動作を指示する。Workerはコネクタプラグインを介して、バックエンドのDBにアクセスする。
  • workerでの処理はオンメモリ。メモリに乗らないものは扱えない。
  • プラグイン
    • Javaでかく
    • Hive,Cassandra, JDBCがすでに用意されている。
    • SchemeとRow を提供する機能があればよい。
  • Prestogres
    • PrestoのフロントエンドはSQLになっているのだが、ここにアクセスさせる
      アダプタを書くのが面倒
    • Postgresqlをフロントエンドに持つことで、アダプタ実装を回避。
    • 枯れたPostgresql用のアダプタでアクセスできる。
​

2014年7月6日日曜日

apache S4

論文

  • S4: Distributed Stream Computing Platform
    Leonardo Neumeyer, Bruce Robbins, Anish Nair, Anand Kesari
    Proceedings of the 2010 IEEE International Conference on Data Mining Workshops, Pages 170-177, 2010
  • Performance Evaluation of Yahoo! S4: A First Look
    Chauhan, J; Chowdhury, S.A. ; Makaroff, D.
    Proc of .P2P, Parallel, Grid, Cloud and Internet Computing (3PGCIC), 2012 Seventh International Conference on
    pp. 58-65, 2012

所感

  • 2010年にYahooが発表したフレームワーク。その後apacheに移管されたが、あまり話を聞かない。
  • ストリーム処理を連続したイベントの処理として考え、イベントをノードが投げ合う。イベントを受け取ったノードはイベントを作成して送出する。
  • KVペアをベースにキーで分散先を指定して投げつけるというつくり。キーが同一であれば一つのノードに行くはずなので、そこで集計処理ができる。つまりシャッフル相当のことがこれで実現できている。なので基本的にはMapReduce ができる。
  • ただし一つのキーに対するreduce 的処理を分散して実行する事はできない。これはHadoopでも一緒だが。
  • そもそも、統計的に処理をすることを前提としているので、イベントを落とすことをなんとも思っていない。負荷が上がるとどんどん落とすつくり。まあ、それでいい場合も多かろう。
  • 2010年に論文を読んだ時の印象としては、かなりプリミティブで負荷分散とかうまくいかないだろうなあ、というかんじだった。性能もなかなかくるしそう。FTについてもあまリ考えていないのかなと。
  • 2つめの論文は評価論文。でも台数も少ないし、ワークロードもスタティックでデータのロスレートを見るというぐらいであまリ参考にならない。
​

2014年7月5日土曜日

docker meetup #3

概要

  • 日時 6月4日 @日経ホール 19−22時
  • 参加者数 240名? なんと2時間で枠がうまったという。。たまたまTwitterを見ていて気がついてよかった。
  • NII 横山先生もいらしていた。
  • コンテナ+スタッカブルファイルシステムというどこかで聞いた技術。コンテナのレポジトリがあるというのがポイントなのか。

講演

通常発表

  • 19:00 @philwhln - Orchestration Tools
    さまざまな周辺技術の紹介?
    焦点がよくわからなかった。
    stackato というPaaSを作っているのだが、独自のLXCレイヤを捨てて
    dockerに移行したとのこと。
  • 19:30 @stanaka - Dockerでデプロイ&モニタリング(仮)
    はてなのCTO。
    • コンテナのなかからcpu usageとかをとると、基本的にホスト全体の値が取れてしまってコンテナの数値が取れない。なので、基本的には、ホストの方で、cgroup のお作法にしたがって、やればよい。/sys/fs/cgroup/xxxx/ を見ればいろいろな情報が取れる。
    • デプロイに関してはdocker hub を使って、自動ビルド。さらにwebhook とhubotで自動起動までできそう。
    • Mackerel という社内ツールの紹介。名前はサーバ→鯖から。ロールと言う単位でホスト群を一括管理。
    • 20:00 @mainyaa - Dive into Dockerネットワーク
      トップゲートの方。dockerでクラスタ的なものを作る際のネットワーク設定のオプションには次の3つぐらいがある。
    • -link
      ホスト内ネットワーク。IPを調べるのが面倒とのことだが、自動化すればいいので特に問題にならないだろうと思う。複数ノードに展開はできない。
    • host network
      いわゆるブリッジ。セキュリティ的にいかがなものか。isolation にならない。
    • open vswitch
      GREトンネルでホスト間にも使える。ある意味一番簡単。
    • 20:20 @deeeet - Flynn(仮)
      OSS のPaaSであるFlynnの紹介。HEROKUっぽい。EC2などの上に、独自のPaaSを展開することができる。コンテナを Docker Hubにあげておき、自動的にデプロイさせるとのこと。どんな言語でも対応できるというのが強みか。

    21:00 LT(1人5分)

  • @mopemope - How to Impl lib swarm backend
  • @peryaudo - Docker+CoreOS+GCEで自動スケール分散レイトレ
    タイトル通り。
  • @kzys - Porting Docker to FreeBSD
    これも。まだできてない。Jailでやるとのこと。
  • @nasunom - perfomance Evaluation of Docker
    横山先生と一緒にやっているというかた。外注か。AUFSのwrite が遅いので気をつけましょう。というのが結論か?
    • @y_matsuwitter
      gunosyの方。docker file がモノリシックなので、同じようなものをたくさん書かなければならなくて大変。ということで、複数のサブファイルをマージするツールを作成したとのこと。
      しかし、docker fileってそこまで頑張っちゃうものなんだろうか。shef をきどうするだけ、とかいう感じのほうが良かったりしないのか。本番環境もdockerにするというのなら別だが。。

調べること

  • etcd
  • consul
  • mesos
  • core OS
  • libswarm
  • hubot
  • fleet
  • surf ? serf?
​