Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

新しい分散実行の仕組み PROCESS WARPについて

3,020 views

Published on

CMU #31の発表資料です。
関連サイト http://www.processwarp.org/

Published in: Technology
  • Be the first to comment

新しい分散実行の仕組み PROCESS WARPについて

  1. 1. 新しい分散実行の仕組み PROCESS WARPについて 伊藤 祐司 2015/8/15 Creators MeetUp #31
  2. 2. 子供の頃のコンピュータ像 MATRIXの世界 Ironmanの凄いユーザインタフェース 攻殻機動隊の電脳空間 サマーウォーズのOZ
  3. 3. 今のコンピュータとなんか違う reynermedia @ flickr より https://www.flickr.com/photos/89228431@N06/
  4. 4. もっと何かあるじゃろ? 分散コンピューティング インターネット, SETI@home, BOINC, Googleの中(多分) 並列コンピューティング スパコン, グリッドコンピューティング, Hadoop, Spark 分散エージェント(特許の関係で下火になったらしい) セカイカメラ, セカンドライフ, Minecraft Oculus, HoloLens
  5. 5. 近いような遠いような…
  6. 6. 何が違うのだろう? 計算能力を持つ端末の境界を意識する必要がない クライアント・サーバの区別はなく端末全部で1つ の空間 動作中のアプリケーションが空間に「ある」 上記の仕組みがインフラとして誰でも使える
  7. 7. 作ろう!
  8. 8. PROCESS WARP 端末の境界を意識せずCPU, メモリを共有する プロセスのライブマイグレーション 分散共有メモリ 上記機能を実現するための仮想マシン
  9. 9. PROCESS WARP 分散実行のインフラ・プラットフォーム化 特定の処理に特化しない汎用処理系 LLVM-IRを読み込んで実行 → C/C++, Python, 他 → 実装言語はそのまま, 実行環境が変わる
  10. 10. PROCESS WARP CPU, メモリ以外のホストマシンの機能を利用 ホストマシンのAPIを呼び出す機能(FFI) スマートフォンから位置情報を取得 PC画面に表示する
  11. 11. 使ってみる
  12. 12. 現在オンラインで公開しているものと versionが違います(devel-threadブランチ) 同一プロセスのスレッドが異なるマシンで動作 タイミングによってクラッシュ アプリケーションが終了できない
  13. 13. 準備 アカウントを作る https://prev.processwarp.org/ ネイティブクライアントをコンパイル http://www.processwarp.org/docs/2015/06/20/ja-required_install.html $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/processwarp/ processwarp/master/install/darwin.sh)" プログラムをコンパイル $ CPLUS_INCLUDE_PATH=<コンパイル場所>/include/libc clang++ -O2 -emit- llvm -c -fno-exceptions -fno-vectorize <C++プログラム> $ llvm-dis <C++プログラム>.bc
  14. 14. サンプルプログラム #include <stdio.h> #include <stdlib.h> #include <pthread.h> char* ret = "a"; static void *thread_func(void *vptr_args) { int i; for (i = 0; i < 20000; i++) { printf(" b [%d]n", i); } return (void*)ret; } int main(void) { int i; pthread_t thread; void* retval; if (pthread_create(&thread, NULL, thread_func, NULL) != 0) { return EXIT_FAILURE; } for (i = 0; i < 10000; i++) { printf("a [%d]n", i); } if (pthread_join(thread, &retval) != 0) { return EXIT_FAILURE; } printf("ret %016llx %16llxn", (unsigned long long)ret, (unsigned long long)retval); return EXIT_SUCCESS; }
  15. 15. 制限事項 C/C++のみ(C++の例外は使えない) LLVM 3.5 CUIのみ(かなり頑張るとOpenGLはうごく) APIは少し 特にファイルアクセスや通信はチョット… Windowsは試していない, スマートフォンはブラウザからのみ 色々足りていない (m´・ω・`)m ゴメン…
  16. 16. 役に立つわけ? 中央サーバ(ハードウェア)が死んでもサービスは継続 Wikipediaの計算資源を利用者みんなで負担 個人の計算資源の相互利用 年間PC 2~3億台, スマートフォン12億台, サーバ1000万台出荷 Wikipeiaは1000台 通信回線の節約 サーバまでのホップ数の低減 = バックボーンの負荷低減
  17. 17. まとめ 世界はかなり変わる!
  18. 18. PROCESS WARPについて Webサイト http://www.processwarp.org/ https://prev.processwarp.org/ GitHub https://github.com/ processwarp MITライセンス
  19. 19. 自己紹介 伊藤 祐司 低レイヤー(C/C++, OS, API/ABI, 高速化) バックエンド(Ruby, Java, SQL, フレームワーク作成) アルゴリズム(テキストマイニング, 解析, GA, AI) GitHub llamerada-jp facebook ito.yuuji blog http://llamerad-jp.hatenablog.com/
  20. 20. 資料 PC出荷台数とか Gartner Says Worldwide PC Shipments Declined 5.2 Percent in First Quarter of 2015 http://www.gartner.com/newsroom/id/3026217 Samsung Reasserts Its Global Lead in Smartphone Shipments with a Renewed Focus on Lower-Cost Smartphones in the First Quarter of 2015, Says IDC http:// www.idc.com/getdoc.jsp?containerId=prUS25589215 Gartner Says 2013 Worldwide Server Market Grew 2.1 Percent in Shipments, While Revenue Decreased 4.5 Percent for the Year http://www.gartner.com/newsroom/id/ 2671315 サーバ台数とか Wikimedia Grid Report http://ganglia.wikimedia.org/latest/
  21. 21. 以上 ありがとうございました

×