気が付けば(2006/2/19)

PCを新調して選手権の準備をしている自分がいた。 何かに没頭していないとあれこれ変な考えを起こしてしまうので、 開きなおって取り組むしかない。 初めてづくしである。"options SMP"を付けてのカーネル再構築。 topコマンドではCカラムに動作プロセッサの番号が表示。 ベンチマークのループプログラムを2つ同時に投げても、 1つ投げたときと同じ時間で返ってくるし(当り前といえばそれまで なのだが)。以下はdmesgの頭部分。
Copyright (c) 1992-2005 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
	The Regents of the University of California. All rights reserved.
FreeBSD 6.0-RELEASE #0: Sun Feb 12 12:58:10 JST 2006
    root@foobar:/usr/src/sys/amd64/compile/hogehoge
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ (2412.37-MHz K8-class CPU)
  Origin = "AuthenticAMD"  Id = 0x20f32  Stepping = 2
  Features=0x178bfbff
  Features2=0x1
  AMD Features=0xe2500800,LM,3DNow+,3DNow>
  Hyperthreading: 2 logical CPUs
real memory  = 2147418112 (2047 MB)
avail memory = 2066046976 (1970 MB)
ACPI APIC Table: 
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
 cpu0 (BSP): APIC ID:  0
 cpu1 (AP): APIC ID:  1
(以下略)
そして64bitOS、FreeBSD/amd64。LP64ということで、 i386時分にlongを32bit決め打ちしていた点を手直し。さて、 肝心のプログラムのほうは、最近、飛び利き更新の無駄な呼び出しを 見付けて排除したため、合法手生成が2,3割速くなった。 シングルスレッドプログラムはAthlonXP/3000+と比べて 3割くらい速く動作するので、昨年の選手権と同じ幅&深さでの対局が、 正味3,4割速く終わるようになった。残念ながら、 マルチスレッド化は今年の選手権には間に合わないだろう。 それよりもLANプロトコル対応など、やることがいっぱいある。 昨日と今日の2日間でどうにかLANプロトコルが動くようになったが、 対局条件の吟味、中断対応、任意局面からの再開対応、 などはまだである。大掛かりな変更には着手しずらいので、 細かな改良をきっちり盛り込んでいきたい。 今年は1次予選が大変なことになりそうだ。 なんとか4勝3敗ですべりこみたい。
Taikou Yamada (t-yamada _at_ ceres.dti.ne.jp)