[Go to BBS]
All articles in a thread
SubjectPowerMacG5におけるEmittance関数の異常
Article No569
Date: 2008/02/22(Fri) 12:00:06
ContributorKAMADA Susumu
最新のSAD amorita-snapshot-1410(ないし1400) および main trunk Ver.1.0.10.2.3b3について、PowerMacG5 および MacPro(共にOSはLeopard)を使って、コンパイル最適化レベルを変え(O1、O2、O3)たbench2.sad計算を行いました。

amorita版およびmain trunkともに、PowerMacで最適化レベルをO2ないしO3にすると、掲示板No.531で報告されたEmittance関数の異常が発生します。PowerMacでも最適化がO1なら異常は生じません。また、MacProでは最適化レベルに依らず正常です。ただし、この異常はコンパイルが正常に出来たと見えるときにも生じるので、注意が肝要です。

ついでに、ベンチテスト結果を以下に示します。
PowerMacG5
main trunk Ver.1.0.10.2.3b3
O3*********** summary of the bench mark (Emittance関数異常)
Function Test 5.044121205806732
Optics Test4.802573680877686
Tracking Test6.287909507751465
Matching Test4.323827743530273
Overall Score (smaller is faster): .28066386282444
O2*********** summary of the bench mark (Emittance関数異常)
Function Test 5.467290878295898
Optics Test5.111445903778076
Tracking Test6.45134449005127
Matching Test4.608053207397461
Overall Score (smaller is faster): .298619879853158
O1*********** summary of the bench mark (Emittance関数正常)
Function Test 5.389197111129761
Optics Test5.404562473297119
Tracking Test6.639682769775391
Matching Test4.923868179321289
Overall Score (smaller is faster): .30506539841493

amorita-snapshot-1410
O3*********** summary of the bench mark (Emittance関数異常)
Function Test 4.985274076461792
Optics Test5.040345191955566
Tracking Test6.354860305786133
Matching Test4.559568405151367
Overall Score (smaller is faster): .284892563308988
O2*********** summary of the bench mark (Emittance関数異常)
Function Test 4.680088832974434
Optics Test4.902889728546143
Tracking Test6.382680892944336
Matching Test4.410484313964844
Overall Score (smaller is faster): .274931258743718
O1*********** summary of the bench mark (Emittance関数正常)
Function Test 4.897918179631233
Optics Test5.348365783691406
Tracking Test6.595748901367188
Matching Test4.722843170166016
Overall Score (smaller is faster): .290231243840286

MacPro
main trunk Ver.1.0.10.2.3b3
O3*********** summary of the bench mark (Emittance関数正常)
Function Test 1.993904992938042
Optics Test2.195190906524658
Tracking Test2.70978307723999
Matching Test2.025275230407715
Overall Score (smaller is faster): .119664024384249
O2*********** summary of the bench mark (Emittance関数正常)
Function Test 2.02665202319622
Optics Test2.163325309753418
Tracking Test2.71235179901123
Matching Test1.980002880096436
Overall Score (smaller is faster): .119666952817213
O1 データなし

amorita-snapshot-1400
O3*********** summary of the bench mark (Emittance関数正常)
Function Test 1.802499912679195
Optics Test2.178307890892029
Tracking Test2.690665245056152
Matching Test2.00189733505249
Overall Score (smaller is faster): .114488231993857
O2*********** summary of the bench mark (Emittance関数正常)
Function Test 1.823985017836094
Optics Test2.171120166778564
Tracking Test2.685569286346436
Matching Test1.994616031646729
Overall Score (smaller is faster): .114795980176755
O1*********** summary of the bench mark (Emittance関数正常)
Function Test 1.887088060379028
Optics Test2.197711944580078
Tracking Test2.798625946044922
Matching Test1.976710319519043
Overall Score (smaller is faster): .11756658695993

SubjectRe: PowerMacG5におけるEmittance関数の異常
Article No570
Date: 2008/02/22(Fri) 17:57:23
ContributorAkio Morita
> 最新のSAD amorita-snapshot-1410(ないし1400) および main trunk Ver.1.0.10.2.3b3について、PowerMacG5 および MacPro(共にOSはLeopard)を使って、コンパイル最適化レベルを変え(O1、O2、O3)たbench2.sad計算を行いました。
>
> amorita版およびmain trunkともに、PowerMacで最適化レベルをO2ないしO3にすると、掲示板No.531で報告されたEmittance関数の異常が発生します。PowerMacでも最適化がO1なら異常は生じません。また、MacProでは最適化レベルに依らず正常です。ただし、この異常はコンパイルが正常に出来たと見えるときにも生じるので、注意が肝要です。
>
たぶん、前後のスレッドを見ていない人やメールでのやり取りを知らない人のためにも
o PowerMacG5で不具合が確認されたコンパイラの種類とバージョン
や、可能ならば
o PowerMacG5で不具合の起こらないコンパイラの種類とバージョン
と、正常な出力と異常な出力の区別の仕方をまとめておかないと、単に
「コンパイラの生成するコードは常に正しいわけではないので注意しよう」 (*)
という一般論になってしまいます

少なくとも、自分でコンパイラを動かす人間(開発者やテスター)は、
(*)を心の隅に置いておく必要が有ると思います。
# もちろん、たいていは自分で書いたコードの方がまずいのですが、コンパイラと
# 言えども人間が書いてるので間違えは有ります(Cの方が、自分自身を
# コンパイルできる程度には常に試験されてるという意味で信頼できるかも...)

SubjectRe: PowerMacG5におけるEmittance関数の異常
Article No571
Date: 2008/02/22(Fri) 18:38:10
ContributorKAMADA Susumu
森田さんの指摘に従って、bench2.sadを走らせたときの、この問題に関する異常・正常の判別法を示します。下記に示す異常例では、まずEmittance関数が(Stable->0)を返していますが、正常例では(Stable->1)を返します。チューン、エミッタンスなど他の値も異なり、その結果ダイナミックアパーチャサーベイのスコア値も異なります。
異常が起きる条件は、現時点では、ソースコードのバージョン、コンパイラーのバージョン、コンパイル時の最適化レベルに依存していると思われますが、その具体的な組み合わせ例は、掲示板メイルNo.547およびこのスレの先頭メイルNo.569(gcc-4.2.3を使用)に掲載されています。

(異常例)
!!! Tracking Test !!!!!!!
t0=TimeUsed[]
Out[89]:= 9.786788940429688
RFSW RADCOD
e=Emittance[SaveEMIT->True]
Out[92]:= {(Stable->0),(Tunes->{.473400441522577,-.080201969698293,.014705021871626}),
(EnergyLossU0->841899.7213531686),(RfVoltageVc->6669375.3984872019),(EquilibriumPosition->.011867380966062),
(MomentumCompaction->-1.403804127233E-4),(OrbitDilation->0),(BucketHeight->.036967246823032),
(HarmonicNumber->5120.0673440583533),
(OrbitAtExit->{-1.438960475901E-8,1.4926806081698E-7,-1.149340649167E-9,-2.953604874793E-7,-1.628530284763E-5,
-6.051358483954E-7}),
(DampingRate->{-1.166678143986E-4,-6.868884666713E-5,-2.379273779416E-4}),
(Emittances->{1.9488174206712E-8,1.710775906227E-12,2.4066694093961E-6}),(MomentumSpread->7.4485803830364E-4),
...

DynamicApertureSurvey[{{0,50},{0,50},Table[i,{i,-16,16,4}]},60,Output->6];
Maximum number of particles =63
Range Xmin: 0.000 Xmax: 50.000
(Ymin: 0.000 Ymax: 50.000)
Zmin: -16.000 Zmax: 16.000
Display: 100 turns/character
NZ 0----!----1----!----2----!----3----!----4----!----5
-16.00 19 ************000000000000000000000000000000000000000
-12.00 22 ***************000000000000000000000000000000000000
-8.00 27 ********************0000000000000000000000000000000
-4.00 30 ***********************0000000000000000000000000000
0.00 35 ****************************00000000000000000000000
4.00 28 *********************000000000000000000000000000000
8.00 24 *****************0000000000000000000000000000000000
12.00 23 ****************00000000000000000000000000000000000
16.00 18 ***********0000000000000000000000000000000000000000
NZ 0----!----1----!----2----!----3----!----4----!----5
Score: 226
Print[" \n******* Tracking Test CPU used = ",tt=TimeUsed[]-t0," sec\n"];

******* Tracking Test CPU used = 6.382680892944336 sec

(正常例)
!!! Tracking Test !!!!!!!
t0=TimeUsed[]
Out[89]:= 10.454879760742188
RFSW RADCOD
e=Emittance[SaveEMIT->True]
Out[92]:= {(Stable->1),(Tunes->{-.479421175902911,.080308293114144,-.013943132315795}),
(EnergyLossU0->841899.7213531686),(RfVoltageVc->6669375.3984872019),(EquilibriumPosition->.011867380966062),
(MomentumCompaction->1.2621060911708E-4),(OrbitDilation->0),(BucketHeight->.038987234772971),
(HarmonicNumber->5120.0673440583533),
(OrbitAtExit->{-1.438960475901E-8,1.4926806081698E-7,-1.149340649167E-9,-2.953604874793E-7,-1.628530284763E-5,
-6.051358483954E-7}),
(DampingRate->{-1.202615376996E-4,-1.202642601542E-4,-2.404876932114E-4}),
(Emittances->{1.8596069727679E-8,9.871436841646E-13,2.3689782900565E-6}),(MomentumSpread->7.3883322459107E-4),
...

DynamicApertureSurvey[{{0,50},{0,50},Table[i,{i,-16,16,4}]},60,Output->6];
Maximum number of particles =63
Range Xmin: 0.000 Xmax: 50.000
(Ymin: 0.000 Ymax: 50.000)
Zmin: -16.000 Zmax: 16.000
Display: 100 turns/character
NZ 0----!----1----!----2----!----3----!----4----!----5
-16.00 20 *************00000000000000000000000000000000000000
-12.00 23 ****************00000000000000000000000000000000000
-8.00 28 *********************000000000000000000000000000000
-4.00 30 ***********************0000000000000000000000000000
0.00 35 ****************************00000000000000000000000
4.00 31 ************************000000000000000000000000000
8.00 26 *******************00000000000000000000000000000000
12.00 23 ****************00000000000000000000000000000000000
16.00 19 ************000000000000000000000000000000000000000
NZ 0----!----1----!----2----!----3----!----4----!----5
Score: 235
Print[" \n******* Tracking Test CPU used = ",tt=TimeUsed[]-t0," sec\n"];

******* Tracking Test CPU used = 6.595748901367188 sec