数理解析研究所講究録 1295 巻 2002 年 29-34

29

GAP パッケージ ParallelGAP の計算実験
宮本泉 (Izumi Miyamoto)’
山梨大学工学部 (Yamanashi Univ. )群計算を中心とする代数的数式処理ソフトウェアパッケージ GAP[5] のシェアパッケージ ParGAP (Parallelを使用した並列/分散計算実験の報告です。 特に、楕円曲線法による整数の素因数分解で新$\mathrm{G}\mathrm{A}\mathrm{P}/\mathrm{M}\mathrm{P}\mathrm{I})[4]$記録の結果が得られました。実験環境は、筆者の所属するコンピュータ・メディア工学科の教育用パソコン
75 台です。 授業・演習で学生が使用するのが用途ですから、 重たいプロセスが長時間走っていることは稀で、プロセスの優先度を十分下げても並列計算実験をすることは可能ですが、 もちろん本来の使用目的の妨げにならないように注意して使用する必要があります。 また、 その様な環境ですから、普通の 10OBaseLANの通信網である上に、学生の使用状況によってネットワークカ坏安定な状態になることも考えられます。実際、本実験では、 小さい場合の問題を使った試行実験では計算が完了しても、本来の目的のための実験では、原因を特定できないまま、途中でプロセスが死んでしまった場合が多々ありました。 さらに、セキュリ
テイを考慮すると、 ネットワークによる接続には障壁を高くしておかなければなりません。 しかし、 これはネットワークを利用した並列計算には困難をもたらします。 コンピュータシステムを設計した業者が設定して、 学科のシステム管理者も認識していない障壁も中にはあったようです。

並列計算の場合は、 通常、 通信が安定していて切れないことが前提条件となりますが、 本環境ではそれは保証されません。 しかし、 多くのコンピュータ設備は、 上に述べたような状況になっていると思います。
したがって、 本実験の目的は、 このような一般的な状況で行う並列/分散計算の経過の報告とそのような状況に対処する工夫の紹介、適した並列アルゴリズムの研究にあります。実験にあたっては、 計算機システムの目的を考えて、 システム管理者に本実験のために便宜を図ることは依頼しないようにしました。
は Linux です。 プロセスの実行に使用しているパソコンは Pentium III,
, Memory$800\mathrm{M}\mathrm{H}\mathrm{z}$$256\mathrm{M}\mathrm{B},$$\mathrm{O}\mathrm{S}$は、計算時間の限度が CPU time で 60 分、使用可能メモリ IOOMB の制約がありましたが、 これはユーザーで変更可能でしたので、計算時間の限度は適宜延長しました。 メモリに関しては、 Window System 関係
で半分近くが常時使用されていますので、増やすことは実際的に無理なばかりかでなく、 むしろ、 自粛して$\mathrm{X}$

使用する必要があると思われます。

を使用しています。並列計算ソフトウエアパツケージのマニュアルで、 一番重
ネットワーク接続には点が置かれているのが接続に関する注意書です。 学科の計算機室の教育用システムでは比較的簡単に並列計$\mathrm{s}\mathrm{s}\mathrm{h}$算パッケージが動くようになったのですが、研究室のサーバーマシンと計算機室のマシンを使用する設定でデーモンの設定はシステム管理者の管轄ですから、許される範囲の接続はまだ動かないのが現状です。
を利用して実験を行っています。特に、子プロセスで計算に長時間かかり返信がないと通信が切れるように設定されています。 その時間制限は 10 分程度になっているようです。 これに対処するために、 ParGAP から本来の計算プログラム以外に 5 分間隔程度に定期的に短い文字列を echo する外部プログラムを起動させています。 この文字列はウインドウ画面には表示されますが、 ParGAP のプログラムの送受信する内容に$\mathrm{s}\mathrm{s}\mathrm{h}$は含まれないことを利用しています。

花木彰秀氏と筆者は共同でコンピュータによるサイズの小さなアソシエーションスキームの分類をしてきました $[6, 7]$ これを並列/分散計算で行うことが本実験の動機です。 アソシエーションスキームを生成す.

’izumi@esi yamanashi.ac$.\mathrm{j}\mathrm{p}$

IV-1

30
るプログラムの最新バージョンは花木氏による$\mathrm{C}$-プログラムです。本実験のアソシエーションスキームの計算は、 花木氏のプログラムを改造した上で ParGAP をインタフェースとして使用して並列計算を行っています。 しかし、 現状では通常の計算を越える新しい結果は得られていません。

この実験における新しい計算結果は、 楕円曲線法を使用した整数の素因数分解です。 アソシエーション
スキームの分類は答えをすべてもれなく、 あるいは、 答えは一つもないことを求めるというタイプの問題です。 この様な問題では、 並列計算のプロセスが途中で死んでしまった場合、 再度の計算を途中の段階から始めるのは困難です。 チェックポイントを設定して継続計算を可能にしても、答えの信頼性が低くなることは避けられません。 これに比較して、 答えを一つでも、 あるいは、 なるべく多く見つければ良いというタイプの問題では、 プロセスの中断に対する管理は楽になります。 計算実験を、 まず、 後者のタイプの問題で行うことを考えて素因数分解を取上げました。楕円曲線法の素因数分解プログラムは P. Zimmermannの GMP-ECM[9] を使用し、 ParGAP をインタフエースとして各マシンに計算を実行させました。

1

アソシエーションスキームの計算に対して、(cf. [1]) の隣接行列のサイズ
relahon mat 加 を $A=0A_{0}+1A_{1}+2A_{2}+\cdots+dA_{d}$ で定める. n=|X|、すなわち、行タリ
をアソシエーションスキームの order という。 アソシエーションスキームの構成は、可能な relation matrixの各行各列の 1 の個数は一定で、 それを : とおくをバックトラック法により作ることにより行います。
集合 $X$ 上のアソシエーションスキーム$(X, \{R_{i}\}_{0\leq i\leq d})$$A_{0},$$A_{1},$$\cdots,$$A_{d}$$A_{i}$$x$$A_{:}$と、 relation matrix $A$ は各行各列に$v_{i}$個の$\mathrm{i}$$v$を含む行列になります。 アソシエーションスキームの構成プ

で定まる番号の列 $[1^{*}, 2^{*}, \cdots, d"]$ です。入力の前者は整数 $n-1$ の分割になります。 一つの order を固定して考えるとき、代数的組合せ論などにより、 可能な入ログラムへの入力は $[v_{1}, v_{2}, \cdots,v_{d}]$ と条件$A_{i}\cdot={}^{t}A_{i}$カパターンの個数を減らすように工夫しますが [7]、 それでもかなりの個数になります。 したがって、 ここで考えられる並列/分散計算は.

order を固定して、 可能な入カパターン毎に別のマシンで計算する。

・入カパターンを固定して、 バックトラック法の計算を並列化する。

2 通りがあります。前者の場合は並列計算として工夫することは取立ててありませんが、通常の計算では時間がかかりすぎて実際上できないときでも答えを得ることができる可能性があります。本実験ではまずこの方法から始めました。入カパターン 1477 個の order 24 の場合の実験経過の概要は下の通りです。
の24 次のすべてのパターンの並列計算実験
Mon Jul 23 15:25:12 JST 2001””,
1master”master $->$ slave2 ,$->\mathrm{s}\mathrm{l}\mathrm{a}\mathrm{v}\mathrm{e}\mathrm{l}$$\mathrm{I}\prime 2$”

5master $->$ slave5 ”,(中略)$\mathrm{t}$

’1422

1379

master$->\mathrm{s}\mathrm{l}\mathrm{a}\mathrm{v}\mathrm{e}28\mathrm{I}’$”1424

slave23
master $->$ slave23

’1351
”1384

slave48
slave2”$\mathrm{t}$$3’|$$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$

,

$’|$

, (実時間で 3 秒かか, ている)

,

4 ”,

3 ”,

(中略)

”1472

slave16$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$132 ”,
IV-2

31
slave21$\mathfrak{l}11477$

142 ”,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$”1476 slave20
186 ”,
間始 Mon Jul 23 15:25:12 JST 2001$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$終 7 Mon Jul 23 17:33:30 JST 2001

今までのアソシエーションスキームの分類計算から、ごく小数の場合で非常に長時間を要していることがわかっています。 したがって、 第二の方法のバックトラック法の並列化が必要になります。 アソシエーショ
ンスキームの構成は深さ優先によるバックトラック法により行っています。 具体的には、 辞書式順序を定めて relation matrix を順に構成していきます。 relation matrix の第 1 行は辞書式順序により定まりますので、 $(2, 3)$ 成分から始めて $(2, n)$ 成分へ、 さらに、 $(3, 4)$ 成分と進んで可能な値のすべてを決めて調べていきます。 このことから、 途中までの計算データはすべて relation matrix に書かれていることになります。

並列計算するために、 上のバックトラック法で適当な行数を決めて、 その行までの relation matrix をすべて構成します。 これが並列化の前処理になります。 次に、 構成された relation matrix の残りの行の部分をそれぞれを別々のマシンで計算します。下の計算は入カパターン $[11, 11]$ , $[2, 1]$ の場合に、先に 5 行目までのすべての relation matrix 164 個を計算したのちに並列計算を行った結果です。 この場合の通常の計算に要する時間は 40 分弱です。

, [2, 11 の並列計算
23 次の一つの入カパターン(バックトラック法を行列 5 行目までで実行、 得られた 164 個の行列を並列計算)”6 master $->$ slave6 ,$\mathrm{E}11,111$$’|$$|\prime 10$$|\prime 2$

master$->\mathrm{s}\mathrm{l}\mathrm{a}\mathrm{v}\mathrm{e}\mathrm{l}0’|$,master $->$ slave2 1’.

中略

“160

$\mathrm{s}\mathrm{l}\mathrm{a}\mathrm{v}\mathrm{e}60$“152 slave63“164 master$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$0”,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$0,$->\mathrm{s}\mathrm{l}\mathrm{a}\mathrm{v}\mathrm{e}48$”163 master“134 slave38“81 slave7$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$|\prime 103$

slave58”100 slave47
中略“31 slave31

slave43“32 slave32$|\prime 96$

start :
end:”,$->\mathrm{s}\mathrm{l}\mathrm{a}\mathrm{v}\mathrm{e}37\prime\prime$,$2^{\prime 1}$,

6,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$6,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$6,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$119”$ ,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$155”$ ,$->\mathrm{m}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{e}\mathrm{r}$$215”$ ,$\mathrm{T}\mathrm{h}\mathrm{u}\mathrm{J}\mathrm{u}126$

10:53:29 JST 2001
JST 2001$\mathrm{T}\mathrm{h}\mathrm{u}\mathrm{J}\mathrm{u}12610:57:11$

実験からわかるように、バックトラック法による探索木のバランスがとれていないため、 ここでも、 ごく少ない場合に長時間を要しています。 これ以上の工夫は通信回数が増えることなどから障害が起こって、成功しませんでした。 出力は数十、 数百の行列になる場合もありますが、多くの場合は一つも得られません。
多くの行列が出力される場合は通信量が問題になり、 多くの一つもない場合では短時間計算が終って一斉に返信が来ることが障害になっているかも知れません。

IV-3

32
2

楕円曲線法による素因数分解

楕円曲線 $by^{2}=x^{3}+ax^{2}+x$ を利用した整数の素因数分解法で、 曲線の係数を変えて何回も素因数分解を試みる方法です。 アルゴリズムはもう少し工夫されていますが、 まだわからない素因数を法として考えた曲線上の点の成す群の位数が適当に bound として定めた数以下の素数および素数ベキの積であることを期待します。 この bound を大きくとれば分解の成功する確率は高くなりますが、 計算時問およびメモリー使用量も増えます。 bound はこのことを考慮して適当に定めれば、 毎回変える必要はありません。 曲線の係数はプログラムが乱数で定めますので、 毎回同じ入力で計算をすることになります。
したがって、並列/分散計算をするまでもなく、 それぞれのマシンで繰返し計算するシエルプログラムを
バックグラウンドで動かしておけば良いのですが、 (75 台のマシンでこの様に実行することが現実的かどうかは別として) 一般的計算機システムにおける並列計算の実験用問題として、 ParGAP[4] を使って各マシンに GMP-ECM[9] の計算実行の指令を出す、各マシンから計算結果を受取る、素因数分解が成功していれば計算は終 7、失敗の場合は再度、計算実行の指令を出す、 という方法で行いました。 また、 出力も簡単な計算データのメッセージに、成功したときには因数が追加されるだけですので、通信への負荷は非常に軽くなっています。

素因数分解した整数に関するデータは、下にまとめた通りです。楕円曲線法では、分解の困難さは素因数の大きさによります。楕円曲線法による素因数分解記録では、 ここで得られた 10 進 55 桁の素因数は、約 2年ぶりに前の記録を越える新記録になりました (cf. [2])。
素因数分解した整数(112 桁)$(629^{\wedge}59-1)/(628*36537729662842124950382971*13274814114538692574828847)$

素因数 (55 桁)

7230880127526821693925059508972082952702133004552346281
商 (57 桁)599055788512257114593036852972837566170071937294830361923
実験時間
trial

$*\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}$:$*\mathfrak{h}$28000 Inn *55CPU-min $=1000$ CPU-days( $1000/75=$ 約

2 週間 X 合計)$\mathrm{B}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{d}\mathrm{l}=45,000,000$

si 騨 a$=267937500$ (係数のための舌 L 数の値)
Group order $=7230880127526821693925059512516755420711283207114558464$$=2^{\wedge}10*3*13*103*151*1123*12619*15649*26249*404197*4742809$$*25268183*41286269351$ (by P. Zimmermann)
注: 素因数分解した整数は三島さんのホームページ [8] の cyclotomic number からです。

what’s$\mathrm{n}\mathrm{e}\mathrm{w}/\mathrm{h}\mathrm{i}\mathrm{s}\mathrm{t}\mathrm{o}\mathrm{r}\mathrm{y}/\mathrm{e}\mathrm{r}\mathrm{r}\mathrm{a}\mathrm{t}\mathrm{a}$(August19, 2001)

Masaki Ukai
なを、この方面の記録としては、一番強力と考えられている Special Number Field Sieve 法を使った Cabal
グループによる 233 桁の分解 [3] で、 2000 年 11 月に、総計約 2 万 CPU-time の計算で得られた結果があります。 楕円曲線法による伊豆さんの結果もあります (cf.[2])。
毎回の計算の概要は下のようになりましたが、 まとめると、計算時間や使用メモリーに制限のあることを知らずに bound の設定を大きくしすぎた失敗計算約 40,000 回の後に、 約 28,000 回の計算で素因数分解に$(59 629 (13274814114538692574828847) (\mathrm{C}138))\mathrm{B}\mathrm{y}$$(\mathrm{A}\mathrm{u}\mathrm{g}\mathrm{u}\mathrm{s}\mathrm{t}03,2001)$

成功しました。 この計算回数は並列計算で行った楕円曲線法素因数分解の計算回数の合計であって、下に報告するように、並列計算は何回も途中で止まってしまい、 正常に終了することは稀でした。

IV-4

33
終了時間

開始時間
$\mathrm{T}\mathrm{h}\mathrm{u}$$\mathrm{A}\mathrm{u}\mathrm{g}$Limitl$23$$14:19:54$ JST 2001 Thu Aug 23 16:44: 08 JST (約 1 時間 20 分)
Curves: $=150$ (=-Q-+算する曲線数); (正常終了)$(=\mathrm{B}\mathrm{o}\mathrm{u}\mathrm{n}\mathrm{d}\mathrm{l}):=100,000,000j$

Curve no. 34 failed:3601 (秒Curve no. 5 failed UNIX-time :3602
Curve no. 11 failed UNIX-time :3601$\mathrm{U}\mathrm{N}\mathrm{I}\mathrm{X}_{-}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}$Curve no. 149 failed
Curve no. 150 failed
Curve no. 146 ailed

UNIX-time :3713
UNIX-time :3624 (最後の曲線)
UNIX-time :4903$\mathrm{f}$Thu$\mathrm{A}\mathrm{u}\mathrm{g}2320:01:23$

実時間)

JST 2001

Aug 25 00:19 (約 24 時間)

Limitl: $=100,000,000j$ Curves: $=15,000j$

Curve no. 2071$\mathrm{f}$ailedCurve no. 2072 failed: 3602UNIX-time :3602$\mathrm{U}\mathrm{N}\mathrm{I}\mathrm{X}_{-}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}$(約 2000 曲線の$\equiv-+\mathrm{Q}$

算で途中終了)以下、 同様に、 Limitl $:=100,000,000j$ Curves $:=15,000j$ の人力 (こ途中終了。
Sat Aug 25 10:35: 18 JST 2001 Aug 27 12:53 (約 50 時間 20 分)

Sep 316:04 (約 6 日 5 時間 20 分)
Mon Sep 319:32:56 JST 2001 Sep 405:46 (約 9 時間)(出力テスト)Sep 418:56:21 JST 2001 Tue Sep 419:56:24 JST 2001
その後の実験も、 Limitl: $=120,000,000$ など大きすぎて失敗 算

Tue Aug 28 10:46: 50 JST 2001$\mathrm{T}\mathrm{u}\mathrm{e}$$\equiv+\mathrm{p}\wedge$$\mathrm{T}\mathrm{u}\mathrm{e}$Sep420:27:27 JST 2001

Wed Sep 12 15:57:35 JST 2001
(約 7 日 19 時間 30 分)(計算トラブル?、 正常終了)

Sep 17 21:56 (約 4 日 11 時間 20 分)
Sep 18 19:31: 39 JST 2001
Sep 18 19:55 ??(約 25 分)
Sep 18 20:09: 38 JST 2001 Thu Sep 20 16:06:03 JST 2001 (約 1 日 20 時間)

Thu Sep 13 10:24: 35 JST 2001$\mathrm{T}\mathrm{u}\mathrm{e}$$\mathrm{T}\mathrm{u}\mathrm{e}$(計算トラブル、 正常終了)

Curve no. 24000 failed by 57 cruxlO UNIX-time :014:38:25$\mathrm{T}\mathrm{h}\mathrm{u}$Sep 20 20:07: 50 JST 2001

Sep 21 11:13 (約 15 時間)

以上の約 40,000 curves では、 時間超過で毎回の楕円曲線法の計算が途中 1 時間で打ち切りになっていた

Limitl$(=\mathrm{B}1)$が大き過ぎた。 その他の障害もあり、 計算が完了できたのは、 下の約 28,000 curves。

Fri Sep 21 11:27:22 JST 2001
Limitl: $=40,000,000$ ;Sep 25 18:04 (約 4 日 6 時間 30 分)

Tue Sep 25 18:14:43 JST 2001

Oct605:22 (約 10 日 11 時間)

Limitl: $=45$ , 屋屋 0 , 000;Sat Oct

611:54:11 JST 2001Sat Oct

616:52:25 JST 2001 (約 5 時間)(正常終了)[278 (Curve no.),$\prime\prime \mathrm{G}\mathrm{M}\mathrm{P}-\mathrm{E}\mathrm{C}\mathrm{M}4\mathrm{c}-\mathrm{m}0,$

by p. Zimmermam (Inria) , 16$\mathrm{D}\mathrm{e}\mathrm{c}$$1999,$

with contributions

from T. Granlund, P. Leyland, C. Curry, A. Stuebinger, G. Woltman,$\mathrm{J}\mathrm{C}$.

$\mathrm{M}\mathrm{e}\mathrm{y}\backslash$rignac, A. Yamasaki , and the invaluable help from P.L. Montgomery. Input
1V-5$\backslash$$\mathrm{n}\backslash$34
umber is $43317005964331904510847913706691432470379967594254048423963696266\backslash$$36518589015401914361387760450667957626053058363$ ( $112$ digits) Using
0000, $\mathrm{B}2=43295692440,$ polynomial
Step 1took
for 269164894 muls,
for 589347784 muls, 3 gcdexts Step 2 took$\mathrm{B}1=4500\backslash$$\mathrm{x}^{\wedge}1,$$2603480\mathrm{m}\backslash$$\mathrm{s}\mathrm{i}\mathrm{g}\mathrm{m}\mathrm{a}=267937500$$973400\mathrm{m}\mathrm{s}$$\mathrm{s}$$1\backslash$86285 gcdexts $****’**’*’$ Factor found in step 2: $7230880127526821693925059\backslash$508972082952702133004552346281F0und probable prime factor of 55 digits:$30880127526821693925059508972082952702133004552346281$ Report your$72\backslash$$\mathrm{p}\mathrm{o}\mathrm{t}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{i}\mathrm{a}\backslash$$1$

champion to Richard Brent$<\mathrm{r}\mathrm{p}\mathrm{b}@\mathrm{c}\mathrm{o}\mathrm{m}\mathrm{l}\mathrm{a}\mathrm{b}.\mathrm{o}\mathrm{x}.\mathrm{a}\mathrm{c}.\mathrm{u}\mathrm{k}>(\mathrm{s}\mathrm{e}\mathrm{e}\mathrm{f}\mathrm{t}\mathrm{p}://\mathrm{f}\mathrm{t}\mathrm{p}.$comlab.

$\mathrm{o}\mathrm{x}\backslash$txt) Probable prime$\backslash$cofactor 599055788512257114593036852972837566170071937294830361923 has 57$\backslash$$.\mathrm{a}\mathrm{c}.\mathrm{u}\mathrm{k}/\mathrm{p}\mathrm{u}\mathrm{b}/\mathrm{D}\mathrm{o}\mathrm{c}\mathrm{u}\mathrm{m}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{s}/\mathrm{t}\mathrm{e}\mathrm{c}\mathrm{h}\mathrm{p}\mathrm{a}\mathrm{p}\mathrm{e}\mathrm{r}\mathrm{s}/\mathrm{R}\mathrm{i}$digits$\prime\prime$

chardo.

$\mathrm{B}\mathrm{r}\mathrm{e}\mathrm{n}\mathrm{t}/\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{s}.$]参考文献[1] E. Bannai and T.
$\mathrm{j}\mathrm{a}\mathrm{m}\mathrm{i}\mathrm{n}/\mathrm{C}\mathrm{u}\mathrm{m}\mathrm{m}\mathrm{i}\mathrm{n}\mathrm{g}\mathrm{s},$[2] R. Brent, http:Algebraic Combinatorics$\mathrm{I}\mathrm{t}\mathrm{o},$$1984$$//\mathrm{w}\mathrm{w}\mathrm{w}.$$\mathrm{I}:$

Association Schemes, Menlo Park,$\mathrm{C}\mathrm{A}:$

Ben-

.

comlab.

html,$\mathrm{o}\mathrm{x}.\mathrm{a}\mathrm{c}.\mathrm{u}\mathrm{k}/\mathrm{o}\mathrm{u}\mathrm{c}\mathrm{l}/\mathrm{w}\mathrm{o}\mathrm{r}\mathrm{k}/\mathrm{r}\mathrm{i}\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{r}\mathrm{d}.\mathrm{b}\mathrm{r}\mathrm{e}\mathrm{n}\mathrm{t}/\mathrm{f}\mathrm{a}\mathrm{c}\mathrm{t}\mathrm{o}\mathrm{r}\mathrm{s}.$$\mathrm{f}\mathrm{t}\mathrm{p}://\mathrm{f}\mathrm{t}\mathrm{p}.\mathrm{c}\mathrm{o}\mathrm{m}\mathrm{l}\mathrm{a}\mathrm{b}.\mathrm{o}\mathrm{x}.\mathrm{a}\mathrm{c}.\mathrm{u}\mathrm{k}/\mathrm{p}\mathrm{u}\mathrm{b}/\mathrm{D}\mathrm{o}\mathrm{c}\mathrm{u}\mathrm{m}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{s}/\mathrm{t}\mathrm{e}\mathrm{c}\mathrm{h}\mathrm{p}\mathrm{a}\mathrm{p}\mathrm{e}\mathrm{r}\mathrm{s}/\mathrm{R}\mathrm{i}\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{r}\mathrm{d}.\mathrm{B}\mathrm{r}\mathrm{e}\mathrm{n}\mathrm{t}/\mathrm{c}\mathrm{h}\mathrm{a}\mathrm{m}\mathrm{p}\mathrm{s}.\mathrm{t}\mathrm{x}\mathrm{t}$[3] ”The Cabal”, ftp://ftp.cwi.nl/pub/herman/SNFSrecords/SNFS-233[4] G. Cooperman,$\mathrm{h}\mathrm{t}\mathrm{t}\mathrm{p}://\mathrm{w}\mathrm{w}\mathrm{w}.\mathrm{c}\mathrm{c}\mathrm{s}.\mathrm{n}\mathrm{e}\mathrm{u}.\mathrm{e}\mathrm{d}\mathrm{u}/\mathrm{h}\mathrm{o}\mathrm{m}\mathrm{e}/\mathrm{g}\mathrm{e}\mathrm{n}\mathrm{e}/\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{a}\mathrm{p}.$html[5] The GAP Group, $GAP-Groups,$ Algorithms, and Programming,
Lehrstuhl
Mathematik, RheinischTechnische Hochschule, Aachen, Germany and School of Mathematicaland Computational Sciences, Univ. St. Andrews, Scotland, 1997.
$Version\mathit{4},$$\mathrm{D}\mathrm{f}$$\mathrm{W}\mathrm{e}\mathrm{s}\mathrm{t}\mathrm{f}\dot{\mathrm{a}}\mathrm{l}\mathrm{i}\mathrm{s}\mathrm{c}\mathrm{h}\mathrm{e}$[6] A. Hanaki. Data of association schemes, published at$\mathrm{u}.\mathrm{a}\mathrm{c}.\mathrm{j}\mathrm{p}/\mathrm{a}\mathrm{s}/$$\mathrm{w}\mathrm{w}\mathrm{w}(1999\sim):$http://kissme.shinshu-.

[7] A. Hanaki and I. Miyamoto, Classification of association schemes with 16 and 17
KyushuJ. Math. 52 (1998) 383-395. Classification of association schemes with18 and 19 vertices, Korean J.
Comp.
Math. 5 (1998) 543-551. Classification of association schemes of order up to 22, Kyushu
J. Math. 54 (2000) 81-86.
$ve\hslash ices,$$\mathrm{A}\mathrm{p}\mathrm{p}.$[8] H. Mishima, http://www.asahi-net.or.jp/KC2H-MSM/cn/index.htm[9] P. Zimmermann, http:$//\mathrm{w}\mathrm{w}\mathrm{w}.$loria.

$\mathrm{f}\mathrm{r}/\mathrm{z}\mathrm{i}\mathrm{m}\mathrm{m}\mathrm{e}\mathrm{r}\mathrm{m}\mathrm{a}/\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{o}\mathrm{r}\mathrm{d}\mathrm{s}/\mathrm{e}\mathrm{c}\mathrm{m}\mathrm{n}\mathrm{e}\mathrm{t}.$1V-6html