Rubyコアコミッター笹田耕一さん解説 Ruby3のための新しい並列実行モデル Guild #RubyKaigi #RubyKaigiA
guildはforkより軽くてthreadより重い実行単位っぽい。そして突然のmove semantics! #rubykaigiA
2016-09-08 14:53:50聞き逃した気がするけど、別のGuildって同じプロセス内で作ってもGVM独立しててIOとか以外も並列処理できる前提の話でいいんですよね… #rubykaigi #RubyKaigiA
2016-09-08 14:56:16Encourage "Safe" and "Easy" programming っていいなぁ。 #rubykaigi #rubykaigiA
2016-09-08 14:57:22Threadとの違いはわかったけど、Forkとの違いはどんなもんなんだろ #rubykaigi #rubykaigiA
2016-09-08 14:57:32Guildっていう名前といい、Object単位で受け渡しする点といい、Rubyistに優しいメンタルモデルなのが良いと思う。 #rubykaigiA
2016-09-08 14:57:49RustにおけるOwnershipモデルをConcurrencyの世界に適用することによって、ロックのこととか考えなくて済むようになってハッピー、という理解でいいんでしょうか>< #RubyKaigi #RubyKaigiA
2016-09-08 14:57:53やっぱり Guild モデルだと Guild 間の Communication cost はそれなりにあるんだろうな。ケースバイケースで選んでいく、と #rubykaigi #rubykaigiA
2016-09-08 14:58:06既存のThreadと比較すると、Threadでは共有の可変オブジェクトを見つけるのが難しかったが、Guildでは可変オブジェクトは共有されないので安全。その分オーバーヘッドがかかるが、moveによってチューニング可能。 #rubykaigi #rubykaigiA
2016-09-08 14:58:39#rubykaigia コピーのアプローチでも、今度は扱うデータ量自体が増えるとパフォーマンスへの影響も増えるのか
2016-09-08 14:59:46Guildのアイディア、スレッド実行に限らず分散プログラミングに応用できそうな雰囲気がするなぁ。データ共有に制限を持つなら、Erlangのプロセスみたいに別ノードに置けそう。 #rubykaigi #rubykaigiA
2016-09-08 15:01:46“オブジェクト"を渡すというところと、実際に管理される"Ruby Object”を渡すというところで「メタプログラミングRuby」的な知識が要求されるのでGuild対応のgem実装する上では今より作者に負担がかかるかもね #rubykaigiA
2016-09-08 15:03:54