Skip to content

30分で試せる分散並列プログラミング Linda (起動編)

 慶應SFCの増井俊之教授が、「いやー、全世界プログラミングの実装はとりあえずLindaっての使ってるんですがこれが超絶簡単なんですよー」

 というので、マジですかそれは、と思い、ストックホルムのホテルでちょっと試してみましたよ。

 基本的には橋本商会のページがわかりやすいんですけど、そもそもLindaがどんな感じで実行されるのかぜんぜん実感がもてなかったので、とりあえずローカルで動かしたい、というニーズは満たされず、自分でやってみました。

 まず、Lindaとは何かというと、並列プログラミング言語だそうなのですが、もうこの時点で半数の人は置いてけぼりになる感じがします。

 まあ確かに厳密な定義はそうなのですが、僕のイメージではLindaはプログラミング言語といよりはむしろRESTとかに近い。つまり「プログラムとプログラムの間でデータを美味い具合にやりとりするための仕組み」です。

 もともとLindaは1980年代にイェール大学で生まれたそうですが、最近までいろいろな言語の上に実装されながらもイマイチ活用されてきませんでした。

 それがRubyで実装され、さらにはJavaScriptから簡単に呼び出せるようになったということで、増井先生によれば「HTTPさえ話せればなんでもできる簡単で嬉しい分散環境なのだ」ということだったので、やってみようかなと思いました。

 橋本商店のページでは、Herokuや橋本商店さんのサーバーを使うようになっていたんですけど、飛行機の中で遊んだりすることを考えるとローカルにサーバーを立てたい。しかしその方法がよくわからん、どういうことなんだ、ということで一通り混乱したため、一応みんなが試せるようにメモを残しておきます。

 まず、LindaのRuby/JS実装で遊ぶには、linda-baseという、サーバー環境が必要です。

 とりあえずこれを落っことしてきましょう。
 →https://github.com/shokai/linda-base

 また、こいつをインストールするのにbrewというパッケージマネージャが必要なので、これも落としてきましょう。
 →http://brew.sh

 brewをインストールするのは凄く簡単で、Macのコンソールから

$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)"

 と打ち込むだけです。
 途中、スーパーユーザーパスワードを要求されるので画面の指示に従って下さい。

 その後、linda-baseのインストールの項目にある通りに、brewしてgemしてbundleすること。bundleするときはコンソールからlinda-baseのディレクトリーにいかないとダメですよ

 これで、memcachedを実行してbundleを実行すると、Linda-baseサーバーが立ち上がります。やったぜ

 しかしサーバーが立ち上がっただけではLindaを使えないので使う側もインストールする必要があります。

 それがLinda-rocketioで、Sinatraのrocketio上にLindaを実装したものだそうです。
 まあ正直、実装手段とか名前に書かなくても説明文に書いてくれればいいのに、要するにLindaをRubyやJavaScriptから楽しく使うためのツールですよ。

 これのインストールは実に簡単で、

$ gem install sinatra-rocketio-linda

 とやるだけです。

 これをやっておくと、とりあえず

$ linda-rocketio write -tuple ‘["say","hello"]‘ -base http://example.com -space test

 でLindaサーバに’["say","hello"]‘というタプルを送ることが出来、また別の端末から

$ linda-rocketio read -tuple ‘["say","hello"]‘ -base http://example.com -space test

 とやると、そのタプルを受け取ることができます。やったぜ!

 実際にLinda-baseサーバを起動して、Lindaのタプルを送ったり受け取ったりの模様をGyazoGIFでアニメにしたのでご確認ください。

 さあ次回はJSから触ってみたいぞ!

このエントリーをはてなブックマークに追加
はてなブックマーク - 30分で試せる分散並列プログラミング Linda (起動編)
Post to Google Buzz
Share on GREE

Related posts:

  1. OCamlをJavaScriptに変換しちゃうjs_of_ocamlをMacにインストール!
  2. 関数型ウィンドウマネージャ「XMonad」を使いこなそう
  3. enchant.jsがCoffeeScriptで記述可能に! enchant.coffee登場!

Facebook comments:

Post a Comment

Your email is never published nor shared. Required fields are marked *
*
*