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 2024-12-10

ヒント

分散並列の機能を追加して、さてこれでラズパイ・クラスタマシンを作る・・・という段になって問題に気が付きました。製作コストです。いくらラズパイが安いとはいえラズパイ4は1万円くらいします。これを30台となる電源やハブなどいれたら50万円くらいにはなりそうです。さて、どうしたものか?

reddit/prolog英語版に投稿しておいたらコメントをいただきました。各マシンのコアを活かす方法です。ラズパイといえども4コアをもったARMアーキテクチャーが搭載されています。インテルやAMDのデスクトップなら最低でも6コアは積んでいます。マルチスレッドあるいはマルチプロセスにすればこれらを活かすことができます。

実績

マルチスレッド、マルチプロセスについては既に拙作のEasy-ISLispで実装済です。なかなかに苦労したのですが、そのときの経験を活かすことができます。N-Prologも基本的にはEasy-ISLispと作りは似ています。応用できるはずです。マルチスレッドでスレッドセーフにすることと、L3キャッシュでうまくヒットするようにコンパイルコードを工夫することがミソです。

イメージ図

分散並列、マルチスレッド、マルチプロセスをフルに駆使すれば次のようなネットワークがわりと安価に可能になります。

para.png

富豪的プログラミング

1980年代、ICOTが活躍していた時代において並列マシンは高価でした。そのためかCSPにより並列機能を有効にしようとAND並列、OR並列に苦心していたようです。

csp1.png

csp2.png

一方で現在では汎用PCの性能は当時の専用マシンを軽く凌駕しています。それらを手あたり次第にネットワーク接続すればかなりの並列性能を出せるはずです。Prologの基本構文を維持したシンプルな並列機能を持たせます。バックトラックも有効に使えます。これで何か新しい発見がないかとワクワクしております。

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?