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?

分散並列Prologで巡回騎士問題

Last updated at Posted at 2025-07-31

製作中

ラズパイクラスタマシンを作っています。ラズパイ4Bをまずは4台クラスタ接続します。

bandicam 2025-07-31 17-26-16-813.jpg

親機にはラズパイ400を使います。うまくいったら将来的には8機の子機になる予定です。子機はそれぞれProlog専用の子機として機能します。

実験課題

巡回騎士問題の計算を題材にと思っています。8方向分を並列計算できます。クラスタマシンの評価にちょうどぴったりです。コードは前回の記事で掲載したとおりです。

今のところWSL2上のN-Prologでコンパイルして下記のとおりです。

bandicam 2025-07-31 17-30-32-965.jpg

比較相手としてはProlog世界の横綱、SWI-Prologです。

bandicam 2025-07-31 17-30-40-564.jpg

さすがに高速です。

で、N-Prologで8並列分散で動作するとおそらく7倍程度は高速化するはずです。そうすると7秒台を出せるはずです。これはSWIの9秒台を超えることとなります。

第五計画の続き

GHCは並列をとりいれるためにバックトラックを放棄しました。当時の非力なマシン、そして現在のようなTCP/IP通信がまだまだなかった時代です。GHCはその当時の技術を背景に設計されたのだと思います。しかし、あれから40年以上経過しました。当時とは比べ物にならないハードウェアが安価に入手可能です。

第五計画は失敗だったというのが定説です。でも、それは本当でしょうか?
納得がいかない私はコツコツと挑戦しています。

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?