Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2009-01-11

Getting Started in *LISP (20)

| 21:11 | Getting Started in *LISP (20) - わだばLisperになる を含むブックマーク はてなブックマーク - Getting Started in *LISP (20) - わだばLisperになる

3.6 Configuration Operators

これまでpvarの扱い方をみてきたが、今度は、pvar全体の規模や形を設定する方法を学ぶとのこと。

これには *cold-boot を使用する。

3.6.1 Defining the Initial Grid Configuration - *cold-boot

64x64x64プロセッサを使用する場合は、

(*cold-boot :initial-dimensions '(64 64 64))

;=> 1 ; チュートリアルでは8192になっているが…
;  (64 64 64)

とする。

現在の設定は*current-cm-configuration*や、*number-of-processors-limit*で確認できる

*current-cm-configuration*
;=> (64 64 64)

*number-of-processors-limit*
;=> 262144

なるほど、なるほど。

チュートリアルにはシミュレータの場合は、遅くなるので8x8x8位にしておきましょうという注意書きがあるのですが、当時から20年位経過しているということもありどの辺くらいまで行けそうなのか試してみました。

0-9の値をプロセッサにランダムに割り振った後で、全体をソートします。

(*cold-boot :initial-dimensions '(100 100 100))

(time (sort!! (random!! 10) '<=!!))
;>>
;(SORT!! (RANDOM!! 10) '<=!!) took 5,060,747 microseconds (5.060747 seconds) to run 
;                    with 2 available CPU cores.
;During that period, 4,920,000 microseconds (4.920000 seconds) were spent in user mode
;                    20,000 microseconds (0.020000 seconds) were spent in system mode
;1,122,322 microseconds (1.122322 seconds) was spent in GC.
; 32,000,336 bytes of memory allocated.
; 2,523 minor page faults, 0 major page faults, 0 swaps.
;#<PVAR SORT!!-RETURN :GENERAL  *DEFAULT-VP-SET* (100 100 100)>

以上、Clozure CLですが、100万プロセッサの設定でも壊れたりはしないようです。