PRP3.exeのバグ 投稿者:higa 投稿日:2004/09/13(Mon) 23:56 No.242 | |
|
こんばんは、higaです.
特に素数探索連携掲示板で素数探索をしている人への連絡です. 先程、PRP3.exeで 20030919*2^3027-1 20030919*2^14437-1 20030919*2^14577-1 を検査したところ、非素数と判定されました. しかしながらproth.exeで確認すると素数であることが分かりました. さらに悪いことに、 20030919*2^46257-1 をPRP3.exeで探索したときには、 Bit: 128/46282, ERROR: ROUND OFF (0.5) > 0.40 Possible hardware failure, consult the readme file. Continuing from last save file. というメッセージを残して探索が止まりました.
他のPCでも再現するのか気になるところです.
[私の環境] ・Pentium4 2.8Ghz(Hyper-ThreadingはOFF) ・Windows2000 ・prp3.exe 更新日時(2004年8月2日 16:23:32)
間違いであれば良いのですが・・・
|
| Re: PRP3.exeのバグ Mat - 2004/09/14(Tue) 07:50 No.243 | |
|
|
当方でも、その3つがnot primeと判断されました。 20030919*2^46257-1に関しては、普通にnot primeと走りましたが、 184448212:M:0:2:258 20030919 387 20030919 5757 20030919 5761 20030919 5775 20030919 5797 20030919 11424 20030919 11427 20030919 11428 20030919 11440 20030919 11445 20030919 11448 20030919 11451 20030919 11464 20030919 11472 ...と46257は、 Bit: 128/46282, ERROR: ROUND OFF (0.5) > 0.40 Possible hardware failure, consult the readme file. Continuing from last save file. Waiting five minutes before restrting. といった形で、止まってしまいました。
Celeron2.6GHz (SSE2あり) Windows2000です。
|
| Re: PRP3.exeのバグ Mat - 2004/09/14(Tue) 07:52 No.244 | |
|
|
>20030919*2^46257-1に関しては、普通にnot primeと走りましたが、 というのは誤りです。間違えて20030919*2^46257+1を走らせてしまいました。
|
|
こんにちは
higaさん、報告ありがとうございます。 一応、Woltman氏に上記現象についてメールで報告して、 再現性のチェックと原因について解答をお願いしました。 (ちゃんと届いたかどうかは良く分からないので不安ですが。)
私はSSE2対応CPUパソコンを所有していないため、上記の 現象の確認はできないのですが、一つ気が付いたのは、 higaさんのテストを実施した数はproth primeではなくて、-1 とついている形式の数である、という点です。 ひょっとすると、この形式の数の場合特有の問題かも しれません。例えば、k*2^n-1という形式で同様の問題が頻発する ようであれば、その可能性は高いと思います。
私もたいしたことは言えないのですが、とりあえずは Woltman氏の返答を待ちましょう。
ただ、k*2^n+1という形式の場合、今までのPRP3のログを見る 限りは、OLD64で示される剰余下位64bitの数値はみな旧来のPRP と同じ値を示していたので信頼性はかなりあるものと思っていました。
47*2^n+1プロジェクト参加者において、もちろんこれが気に なる方は、予約済みの範囲については、計算を一時停止しても、 また継続しても結構です。各人の判断に任せます。 ただ、新規の予約についてはしばらくはPRP3ではなく、 Ver2台以前のものでテストを実施されるようお願いします。
Woltman氏の返答が得られた場合は、それについて こちらで公開させていただきます。
|
| Re: PRP3.exeのバグ turbo - 2004/09/14(Tue) 14:05 No.246 | |
|
|
20030919*2^3027-1 前後を詳しく調べてみると、 n=2916-3243 にて PRP.exe と PRP3.exe のログの値が異なっていました。 n=2916 はちょうど PRP3.exe における FFT のサイズの切り替わり点でしたので 他の報告例についても調べてみたところ n=387, 5757, 11424 も切り替わり点直後のようです。
|
| Re: PRP3.exeのバグ nohara - 2004/09/15(Wed) 02:12 No.247 | |
|
|
turboさん、調査ありがとうございます。
Woltman氏からはまだ返事を頂いていません。
とりあえず、信頼性が気になる可能性があるのは、FFT要素数が変化する 近辺と考えてよさそうですね。 ただ、意外なのは、Round off誤差が0.5を超えてエラーとなるのはFFT要素数の設定が少なすぎる場合に生じると考えているので、 FFT要素数が増えた直後と思われる領域で問題が発生するのが 少し奇妙に感じます。 計算を実施する際の具体的なFFT lengthはいくつと表示されるでしょうか。
また、PRP3にはRound off checkingという項目があります。 これをonにして計算させた場合はどのようになるか、どなたか 調査していただけるでしょうか。
よろしくお願いします。
なお、higaさんの書き込みでは明示してありませんが、 20030919*2^46257-1は素数です。
|
| Re: PRP3.exeのバグ Mat - 2004/09/15(Wed) 04:13 No.248 | |
|
|
Options→Round off checkingにチェックを入れてみましたが、 指数3027 14437 14577は素数でなかったと判断し、 指数46257では、 Bit: 17/46282, ERROR: ROUND OFF (0.5) > 0.40 Possible hardware failure, consult the readme file. Continuing from last save file. で止まってしまいました。
|
| Re: PRP3.exeのバグ higa - 2004/09/15(Wed) 04:13 No.249 | |
|
|
>FFT要素数が増えた直後と思われる領域で問題が発生するのが >少し奇妙に感じます。 > 計算を実施する際の具体的なFFT lengthはいくつと表示されるで>しょうか。
私が報告したもので調べてみました。 (非素数と判定されるもの) 20030919*2^3027-1 FFT length 320 20030919*2^14437-1 FFT length 1536 20030919*2^14577-1 FFT length 1536 (エラーがでるもの) 20030919*2^46257-1 FFT length 5K
>また、PRP3にはRound off checkingという項目があります。 >これをonにして計算させた場合はどのようになるか、どなたか >調査していただけるでしょうか。 これも20030919*2^46257-1で試しました、 Bit: 259/46285, ERROR: ROUND OFF (0.421875) > 0.40 Possible hardware failure, consult the readme file. Continuing from last save file. エラーの時に出るメッセージの値が厳密になっていました。 非素数という判定はそのままです。
(参考データ) ・20030919*2^n+1の1 < n < 100000の範囲の素数に対して PRP3を実行したところ、全て素数と判定されました。
・20030921*2^n-1とkの値を少し変えた場合には、同様の バグがでました。
k*2^n-1の形だけのバグのような気がしてきました. そういえば以前にあったPRP3のバグも3*2^234760-1の探索で ROUND OFF error が出たというものだったようです。 ---
>なお、higaさんの書き込みでは明示してありませんが、 >20030919*2^46257-1は素数です。 ああ!そういえばまだこの値は日付素数ランキングへ報告して いませんでした。 個人的な記念日の日付素数なので、皆様なにとぞお見逃し下さい(^^; 前の報告から1週間たって10個/週の制限が解除されたので、 データのある場所に行ったときに急いで報告メールを出します。
|
| Re: PRP3.exeのバグ nohara - 2004/09/15(Wed) 05:49 No.250 | |
|
|
みなさん、調査ありがとうございます。
k*2^n+1の場合は問題となるケースは少なそうなので、47*2^n+1 プロジェクトでの計算はこのまま継続することにしましょう。 (turboさん、事後承諾になってしまいますが、許してください) ので、上の私の書き込みは取り消して、今後も47*2^n+1 プロジェクトご協力のほどよろしくお願いします。
ただ、計算誤差の問題は今後も少し確認していきたいと 思っています。例えば、FFT要素数切り替わり近辺のところで、 旧来のPRP.exeで再チェックをするなど。 (ふるいが一段落したらでいつ実施するかは未定ですが)
あと、216091さんが、Geneferのプログラムを紹介されて いたところで、Round offエラーが発生した場合は自動的に 合成数と判定されるよう、プログラムの仕様となっていました。 PRP.exeも同様ではないかと推測しています。
それにしても、レスポンスが早くて驚いています(笑)。
|
| Re: PRP3.exeのバグ nohara - 2004/09/15(Wed) 15:35 No.251 | |
|
|
信頼性チェック情報について
PRP3における信頼性チェックの結果です
s-yamaさんより 7*2^804534+1 is a probable prime. 7*2^811230+1 is a probable prime. 21*2^856865+1 is a probable prime. 17*2^824451+1 is a probable prime. 25*2^966414+1 is a probable prime. 3*2^727699-1 is a probable prime. 220033*2^719731-1 is a probable prime.
との結果を頂きました。ありがとうございました。
また、7*2^n+1系列で、sushiさんとSamidoost氏の 結果を比較したところ、二人ともチェックしている 候補について、Res64/OLD64の結果はすべて一致 しています。
これらの結果からも、PRP3の信頼性はほぼ問題ないと 考えられます。
|
| Re: PRP3.exeのバグ nohara - 2004/09/16(Thu) 02:25 No.252 | |
|
|
noharaです。
Woltman氏より返信を頂きました。 短いので、ここに全文を転載します。
(ここより) Hi,
At 10:07 PM 9/13/2004 +0000, tnohara7 wrote:
>He tested numbers with form 20030919*2^n-1, and >n=3027,14437,14577 and 46257 they are prime actually, >(He and I confirmed with Proth.exe and so on) > >But PRP3.exe had indicated they are not prime respectively.
I'm working on fixing two bugs. These affect k values between 7 and 9 digits. As far as I know, all other k values should be OK.
Regards, George (ここまで)
>がついている部分は私が送信したメッセージの引用です。
要約すれば、kが7桁から9桁の範囲の場合、エラーが発生する ことがあり、そのためのバグ修正を実施している最中とのこと。 これ以外のk値では問題ないだろう、とのことです。
47*2^n+1プロジェクトの対象数ではWoltman氏からも O.K.とお墨付きを頂いたということで、これからも よろしくおねがいします。
|
| Re: PRP3.exeのバグ Mat - 2004/09/16(Thu) 03:56 No.253 | |
|
|
ありがとうございます。 kが7桁〜9桁で、+1の場合はどうなんでしょうね。
|
| Re: PRP3.exeのバグ nohara - 2004/09/16(Thu) 04:28 No.254 | |
|
|
Matさん、 言い出した人がチェックするというのはどうでしょうか。
結果、待っています(笑)。
|
| 確かに(笑) Mat - 2004/09/17(Fri) 03:03 No.256 | |
|
| Re: PRP3.exeのバグ nohara - 2004/09/18(Sat) 06:53 No.257 | |
|
|
Matさん、データありがとうございます。 higaさんの書き込みで、+1の場合は全く問題が無いと思っていましたが、Matさんのデータを少し調べてみたので報告します。
まず、 19960809*2^19+1ならびに19960809*2^21+1はいずれも素数です。 Proth.exeで素数判定が間違うのは、上記の2数はk>2^nとなっており、 Proth素数の条件から外れているためです。 よって、この点はPRP3は問題ありません。
PRP3ではRES64とOLD64という2つのログを表示します。 OLD64の値はVer2.**以前のPRP.exeでのRes64と同じ値になるよう になっています。
例えば、 PRP2では 19960809*2^54+1 is not prime. Res64: 6D169D7F2E4992C4 PRP3では 19960809*2^54+1 is not prime. RES64: 245CDF2A64C330ED. OLD64: 6D169D7F2E4992C4
よって、単に素数をちゃんと求められるかだけではなくて、 合成数と判定された場合でも、そのログを調べることで、 PRP3と旧バージョンのPRPと動作比較を行なうことができる のです。
Matさんのupされたデータでn<50000までの比較を行なった ところ、4181候補中、4180候補では素数、非素数の判定 ならびに合成数と判定された場合のRes64の値とOLD64の 値は一致していました。 しかし、n=36853の場合だけは prp2 : Res64 3B50A678099EB22E 19960809*2^36853+1 is not prime. Res64: 3B50A678099EB22E
prp3 : OLD64 5315853C69860F91 19960809*2^36853+1 is not prime. RES64: 71072C6978820532. OLD64: 5315853C69860F91
のように、Res64とOLD64の値が一致していません。
これから推測すると、+1のケースは-1のケースよりも 判定がおかしくなるケースはまれであるが、全く問題が 無いわけでは無い、ということがいえます。 (いやな結果だ)
しかし、私はPRP3を動作確認するすべが無いので、情報は 皆さんから教えていただくものが全てです。感謝しています。
|
| Re: PRP3.exeのバグ Mat - 2004/09/18(Sat) 08:47 No.259 | |
|
|
再度PRP3で走らせてみましたが、 やはりRES64: 71072C6978820532. OLD64: 5315853C69860F91となりました。
再度prp2.3.0で、19960809*2^36853+1を走らせてみたところ、 今度は、Res64: 5315853C69860F91となりました。 試しに100回19960809*2^36853+1を走らせたり、 36811から36861まで11ループほど走らせてみたりしましたが、 全てRes64: 5315853C69860F91となりました。
|
| Re: PRP3.exeのバグ nohara - 2004/09/18(Sat) 17:20 No.260 | |
|
|
とすると、結局は+1の場合は現状は問題なしとなりそうですね。
何故前回の記録がこの場合だけ異なっていたのか。 たまにあるのは、ソフトではなく、PC側の不良動作で 結果がおかしくなることがあるかもしれません。 私の経験ではかなり昔にpfgw.exeでよく熱暴走などで、 夏限定でそのような現象が発生しました。このときは、 stepが最後のbitまで行かずに、途中で終了してしまい、 全然異なるRes値を返して終了する、というものです。
pfgwのログでは処理時間も記録されるので、周辺のnより 短い処理時間の結果があることでこのような異常が 見つけられるのですが、prpにはこのような結果は 処理中の画面には表示されますが、ログには残らない のが難点ですね。
|
| Re: PRP3.exeのバグ higa - 2004/09/28(Tue) 17:41 No.275 | |
|
|
現在配られているバージョンの PRP3.exe は上記のバグが 改善されているようです. 9月17日に修正されたようです(私は長い間気づきませんでした).
これで日付素数(kの桁数が8桁)で探索する場合でもPRP3.exe を安心して使えるようになりました.
[テスト] バグの影響を受けていた以下の素数について修正後のPRP3.exe でチェックしました. 20030919*2^3027-1 20030919*2^14437-1 20030919*2^14577-1 20030919*2^46257-1
上記の素数は全てprobable primeと判定され,エラーに よって処理が止まることもありませんでした.
[URL] PRP3.exeについて書いていました. http://www.mersenneforum.org/showthread.php?p=36185
|
| Re: PRP3.exeのバグ nohara - 2004/09/29(Wed) 07:45 No.276 | |
|
|
higaさん情報ありがとうございました。 SSE2対応CPUのパソコンが欲しくなってきましたが、 無駄遣いできないので困っています。
SSE2無し版のPRP3の登場を待ちます。 Woltman氏によればコーディング中とのことですが...。
|
|