『G*ワークショップ「非同期並列なG*」+JGGUG総会 #jggug』に参加してきた。
今回は、 @shinyaa31 さんが裏番組の『リーダブルコード − 忘れてもいいコードを書こう。』に参加してきた #devlove
に行ってたので、超一流のレポート職人がいない ><。
こちらも負けずに、“暑かった”ので、その様子をまとめてみた。
G*ワークショップ「非同期並列なG*」+JGGUG総会 #jggug
場所は、NTTソフトウェア品川本社 太陽生命品川ビル25Fセミナールーム
去年の7月に初めてG*ワークショップに行った時もここだった。
去年の今頃は、G*ワークショップに初めて参加するにあたって、ぼっち対策に、ネタを多数書いてたな。
G*ステッカー入手!!
これにて今回のG*ワークショップの任務終了
まだまだあるようだから、今後もJGGUGイベントで配布されるだろう。
Groovyポロシャツ来てるの僕と @mike_neck さんだけ。
運営スタッフ誰も着てないw
今回着ないでいつ着るんだろう(^_^;)
9/1のG*ワークショップ福岡か?
(モデル: 今回はいなかった @irof さん)
GroovyCSPによる並行処理 @csp_occam さん
- JSCPを踏まえてGroovyCSPを説明する
GParsとの関連
- Composable asynchronous functions
- Fork/Join abstraction
- Actor programming model
- Dataflow concurrency constructs
- CSP
- Agent - an thread-safe reference to mutable state
- STM (Software Transactional Memory)
- CSPのライブラリを理解することで、GParsの大半を理解するとこができる。
- Dataflow concurrency construts はCSPのサブセット。
CSPとは
- 歴史
- 1978年:Tony Hoareによって発表された、並行の動作を記述する仕様記述言語
- 1981年:CSPモデルに基づく並行プログラミング言語 occamとして実装された
- CSPは、40歳を超えた方はピンと来るかもしれない
- (おっさんだらけのG*ワークショップにぴったり!・・・なのか?)
- ヨーロッパでは、多くの大学で講義されて、コンピュータサイエンスなかんでは大きな柱になっている。
- 一方日本では・・・
- 並行処理ののなかでも必ず出てくる
- プロセス指向 vs オブジェクト指向
GParsで問題解決
- マルチスレッドの問題をいくら議論しても解決しない!!
- マルチスレッドには見切りをつけた
- 懸命な選択である
- https://www.ibm.com/developerworks/jp/java/library/j-gpars/
JCSPのクラス
Class = Skip Stop |Channel(One2One/One2Any/Any2one/Any2Any) |ShardChannel |NetChannel |Sequence |Parallel |PriParllel |Alternative |CSTimer |Guard |Barrier |Bucket |Crew | |JSCP NET |Mobile |NetBarrier
NetChannelのクラス
LANに接続された、PCが何台あり、その場合に各PCにPeer to Peer にchannelを張る1種のデーモン
CNS | -----+---------+---------+---------+--------- | | | P0 P1 P2
P0⇔P1、P0⇔P2、P1⇔P2 でチャネルが使える
JSCPのデモ
- キーボード、マウスの割り込み、etcの割り込みのチャネルがある
- マウスのポインタでビューポイントが移動するpure Java で球体のアニメーション
- CPU 100% にもかかわらず、割り込みが入って状態が変わって、計算しなすので、アニメションが止まらず動き続けられる
GroovyCSPのクラス
JSCPにGroovyをラッピングしてるので、ほぼ同じ。
- 構造
+----------+ | JCSP | +----------+ | Gpars | +----------+ | Groovy | +----------+ | JavaVM | +----------+ | OS | ++---------+
JSCPには、独自のスケジューラーがある。
OSに依存しない、そのためデモのようにCPU 100%でも切り替わることができる。
GroovyCSPの環境設定
gpars*.jar、jscp*.jarが、Groovy2.0の中に含まれている。
サンプルとPDFが用意されているが
JCSPが分からないさっぱりわからない。
一歩入りこめば、楽しいことが書いてある。
設計方法
- CPSモデルはDFD、FSM、ステーチャート、UMLなどの動作モデルを記述することができる
- モデル検査器を使えば、モデルの検証ができる。
- CSPモデル言語のoccam/C++CSP/JSCPなどでコーディング
- CSPモデルの実装言語
- occam-π
- C++CSP
- JCSP
- GroovyCSP
- CSPモデルの実装言語
-
- マイクロプロセッサ
- Transputer
- マイクロプロセッサ
プロセスとチャネルの基本構造
ch ch ch → P → Q →
PとQの間のチャネルだけ同期
それ以外は非同期
非同期にセンサーから入って、シンクロナイズして、ネットワークに非同期に出力
P|[ch]Qの意味
!は送信、?は受信を表す
プロセス、P、Qが共にreadyの状態になった時に通信が行われる。
状態遷移で記述
n P → Q
イベントで、PからQへ遷移する。スケジューラーでスイッチングする
JCSPによる記述
chan Send → Read
コードはメモれないな。。。
公演中に @mike_neck さんが試してて、もうブログにまとめてるので、そちらを参考に。
JGGUG G*ワークショップ行ってきた
GroovyCSPによる記述
Groovyの場合は、Listの構造を持って、SendとReadを入れるところが異なる。
- Pipe
Sned →Pipe →Pipe Pipe→Pipe→Read
- プロセスの階層化
+----------------------+ Send →| Pipe → Pipe → Pipe | → Read +----------------------+
3つのパイプをまとめる
- バケツリレー
- 携帯→プリンター印刷 みたいなのをパイプライン化。
- 同期型チャンネルでないと難しい
- 双方向パイプ
→ → Pipe ← ←
- Farming
- デモでやったRayTracing
- MapReduce
- Farmingの構造によく似ている
- SelectRead
- 先に到着したものをが選択され、その後にすぐにチャンネルoutへ出力
総会 @yamadamasaki さん
iPadをプロジェクターに繋いだ瞬間、漢を見たw
- 全国(主に、東京、名古屋、大阪で)イベント26回
- JGGUG 287名 +62名
- 個人サポータ募集
- (運営スタッフではなく)サポートスタッフ募集
- 予定
- 夏サミにブース出展
- [http://codezine.jp/devsumi/2012/social:title=Developers [Social Enterprise] Summit 2012]
- 9/1 G*ワークショップ福岡
- 合宿
- 外タレを呼んでカンファレンス!!
- 夏サミにブース出展
- JGGUG G*Magazine 最新号(5号)
- JGGUG G*Magazine PDF版
- JGGUG G*Magazine epub版
- (epubは、まだ10 USERS しか購読していない、懇親会参加者より少ないってどいうこと ヽ(`Д´)ノプンプンって懇親会で某名古屋の会社の社長が・・・)
開催予定のセッションの1つ、「デルファイのアポロ神殿にて祈るドルフィン夢見るままに待ちいたり 〜Vert.xのちょっとした話〜」は、
講演者の回避できない事情により、差し替え。次回以降のリベンジに期待。
僕は、JJUG CCCは参加してないから、差し替わった内容でもよかった。
Grails/Groovyの開発活用術 NTTソフトウェアのとりくみ (JJUG CCCの再演) @uehaj さん
- JJUG CCCでも知名度は100%近くだったが、実際に業務使っている人はちらほら、今回も使ってる人はちらほら。
- NTTソフトウェアは、Grails推進室を設置して、Groovy、Grailsをは普及にとりくみます キリッ
- Groovy、Grailsの説明欲しい人。
- ノ(1人)
- どんなことが知りたいですか?
- ノ(1人)
- なぜGroovy/Grailsか?
- 従来通りの「人月ビジネス」モデルの限界
- そこで、Ruby on Rails ですよ (違っ
- 従来通りの「人月ビジネス」モデルの限界
- Ruby on Railsに移行しようとすると、移行コストは無視できない。教育コスト、開発要員の確保、etc
- そこで、Grails/Groovyですよね。
- Groovyのよいところ、人間の思考論理で書くことができるとこ。
- 何かをするのに、forループなど書きたくないだよ!
- Grails Plugin の紹介
- ビュー、サポートスクリプト、テストを含むことができる。
- Groovy/Grailsをなんでも適用したいいものではない。適したプロジェクトで採用すれば効果が大きい。
- Groovy/GrailsならScala/Play Frameworkに比べて、断絶のない、地続きの移行できる
聞けなかった質問。
「適したプロジェクト」をどうやって判断、見極めて行くんだろう。
usign Grails since 2006 (再演) + Grails 2.1 @tyama さん
Slideshareには見当たらず。
- こんなところでは、Grailsを使ってはだめ
- 1人月は30人で1日だ!
- 要件が見えていないのに、見積もりだけ決まってる
- コードかけいない or 長いことコードを書いていない上司がいる
- 天下り開発
- 詩人
- もし、そのようなプロジェクトで活用するなら
Graisl2.1の話は、ブログ参照
Grails 2.1.0 GA リリース!
早く、はてな−スター付けないと名古屋支部長にシメられるよ。
- Grails 3.0 (2013年)でGradle対応
- Grails2.1で、ivyを外して、mavenの叩きなおし
- grails create-pom com.nycompanyでpom.xml生成
- Java 7では動かない。さっき自分がハマった。
- mavenの話をするときは・・・知ってる人が少なくて・・・辛い・・・
- grails wrapper で、wrapperフォルダとrgailswとgrailsw.batが生成される(gradle wrapperじゃないよ、grails wrapperだよ)
- 名古屋に来た大阪の人(kiy0taka)がおかしなことばっか言うんですよ。
- (終了の合図が出たが)そんなことでは終了しないよ!!
@csp_occam さん 濃い発表を、ピンチヒッターの@uehaj さん @tyama さん 役に立つ、面白い発表をありがとうございました。
運営・サポートスタッフのみなさん、毎回お疲れ様です。
内容におかしながあれば指摘してください。特にCSPについて。
コメント、トラックバック、はてブ、Twitter @orange_clover宛 で、お願いします。
座席表
G*ワークショップ
[twitter:@bikisuke]
[twitter:@csp_occam]
[twitter:@earu]
[twitter:@gantawitter]
[twitter:@grimrose]
[twitter:@kazuchika]
[twitter:@kimukou2628]
[twitter:@kiy0taka]
[twitter:@mike_neck]
[twitter:@mkawax]
[twitter:@nobeans]
[twitter:@notexy]
[twitter:@orange_clover]
[twitter:@prototechno]
[twitter:@tamatamatamata]
[twitter:@tetsuonatom]
[twitter:@tetsurokitahara]
[twitter:@toby55kij]
[twitter:@tyama]
[twitter:@uehaj]
[twitter:@yamadamasaki]
[twitter:@yamap_55]
[twitter:@yamkazu]
[twitter:@ysnryn]
[twitter:@yusukey]
どこに座ってたか分からなかった人。
[twitter:@masteryupa]
[twitter:@morozumi_h]
[twitter:@hnorihiro]
[twitter:@_y_u_]
座席表でアイコンを移動してもらえるとうれしい。
懇親会
〲ʓ━Ʊ"━な人とƱ"━ʓ〲Ʊ"〲Ʊ"
togetter
Ustream
上り回線の都合で解像度を下げたようなので、資料の文字を読むのはつらい。
GroovyCSP
http://www.ustream.tv/recorded/23798122
http://www.ustream.tv/recorded/23798179
http://www.ustream.tv/recorded/23798216
http://www.ustream.tv/recorded/23798277
http://www.ustream.tv/recorded/23798346
http://www.ustream.tv/recorded/23798409
http://www.ustream.tv/recorded/23798511
http://www.ustream.tv/recorded/23798558
http://www.ustream.tv/recorded/23798634
http://www.ustream.tv/recorded/23798668
ドキュメント
書籍
山田 正樹、山本 剛、上原 潤二、永井 昌子、杉山 清美、杉浦 孝博、笠原 史郎、香月 孝太、福岡 竜一、伊堂寺 北斗
価格: ¥ 3,780
価格は記載時点のものです。購入前にAmazonでご確認ください。