1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

新たな目標 分散型並列Lispへの道

Last updated at Posted at 2024-06-16

bandicam 2024-06-16 15-19-24-449.jpg

挑戦の続き

先日、私はEasy-ISLisp ver4.0をリリースして目標を達成したと思いました。しばらく好きな音楽をやったり、プラモデルを作ってのんびりしようと思っていました。しかし、竹内先生のCELISのことが頭から離れません。竹内先生たちは分散型のCELISでパズルを解いていました。そして1990年代の研究であるコネクションマシンのCM-1のことを知りました。とても興味深いものでした。分散型のLispに挑戦したいと思いました。

bandicam 2024-06-16 15-18-02-271.jpg

分散型並列Lisp

通信回線を使って複数台のパソコンを接続します。親Lisp機からスレッドを使って分解した計算を子Lisp機に送信して計算を依頼します。

dp1.png

TCP/IP

通信回線についてはTCP/IPを利用します。C言語のライブラリが充実しています。これを利用します。

子機

Lisp起動時に-nオプションを与えます。起動するとサーバーのように動作します。親Lisp機からの計算依頼を受け付け、evalして、通信回線を介して返答します。

dp2.png

親機

親機において子機のIPアドレスを与えなければいけません。

(dp-create ip0 ip1 ip2 ... ipn) 

という拡張関数を用意します。これにより子機のIPアドレスを与えるとともにソケットを準備します。

ファイル転送

計算しようとするプログラムは親機に保管してあります。(load fn) 関数により親機のメモリ空間にロードするとともに通信回線を利用して子機にも転送します。

dp3.png

# マルチコアをフル活用
親機、子機ともにマルチコアですのでこれらをフルに活かします。現在の安価なパソコンでも6コア程度はもっています。3台あれば3*6=18コアを利用することができます。マルチコア、マルチスレッドもフルに活用します。

dp4.png

目標

ver5.0においてこれらを達成したいと考えています。並列は興味深いです。私の新たな目標です。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?