2008年07月

    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    

Technorati

Technorati search

» ここにリンクしているブログ

2007年02月24日

量子コンピュータが依存する量子の性質

光子が2重スリットを通り抜ける際に

(1) 光子がどちらのスリットを通ったかがわかるような仕組みがある場合
干渉縞ができない。

(2) どちらのスリットを通ったかわからない場合
干渉縞ができる。

ということだが、量子力学では
(1)の波動関数は片方のスリットを通った場合のフーリエ級数で
(2)の波動関数は片方のスリットを通ったものともう片方のスリットを通ったものを重ね合わせたフーリエ級数
で表す。
どちらも結局測定装置のどこで観測されるかは不定で、波動関数からわかるのはどのあたりで測定されるかの確率だけてある。

どちらも観測される範囲はそれほど違わない、ただ
(2)の場合観測されない場所が観測範囲内に[||||||||||]の|で示す場所のように点在する
ということだ
(1) [________]
(2) [||||||||||]
こんな感じ

そして量子コンピュータにとって肝心なのは、
光子が観測されるまでは、それぞれの波動関数が示す確率にしたがった可能性をすべて持っているということ。
それから、量子は互いにエンタングルメントな関係になりうるということである。

因数分解に関する量子コンピュータを使ったshoreのアルゴリズムは、量子がもつこの2つの性質を利用する。

2007年01月28日

量子エンタングルメント(Quantum entanglement)

光子の2重スリットによる干渉縞実験で説明した
光子Bの偏光状態を観測することで、光子Aがどちらのスリットを通過したかが確定し
干渉縞が観測されなくなる現象での
光子Aと光子Bとの関係を量子もつれの状態(エンタングル状態)と表現する。

光子Bの偏光状態と光子Aの偏光状態とが互いに相関を持つような状態は1980年代に入り実験で確認されている。(アスペの実験:二つの光子間の距離は10メートルで確認された)
その後の追試で何キロも離れた状態で確認されている。

このようにエンタングル状態にある光子間では、光子Bの偏光状態を測定すれば、光子Aの偏光状態が確定する。
腑に落ちないが、これはエンタングル状態の性質として理解するしかない。
量子コンピュータではこの性質を利用することになる。

またこの性質は我々観測者の時間的な前後に関係なく現れることが
2002年ブラジルのミナス・ジェライス大学でステファン・ウォルボーンらの実験によって確認された。
こちらにその論文がある。

つまり、光子Aがスリットを通り抜けて検出器1で検出された後に光子Bを検出しても変わらない(干渉縞は現れない)ということである。
観測者の時間関係には関係なく、エンタングル状態にある光子間で影響を与え合っていることになる。
ややこしい話だが、これもエンタングル状態の性質としてとらえるしかないことが実証された。
ということである。


2007年01月24日

光量子は2重スリットのどちらを通り抜けるのか

光源として秒間千個程度の光子レーザを考える。
レーザを結晶に当てて相互作用で偏光状態に相関を持った2つの光子AとBを作り出す。
片方は垂直方向に偏光し、もう一つは水平に偏光するようにする。
こうした相関関係にある光子同士は離れていても量子的に影響を及ぼしあうことがわかっている。

そして光子の偏光状態も検出できる検出器を2つ用意する。検出器1と2と呼ぶこととする。

光子Aは検出器1に向かい、Bは検出器2に向かうとする。
検出器1の前に適切な間隔で2重スリットの壁を置く。

相当数光を当て続ければ検出器1に干渉縞が現れる。

ここまでは予想される出来事だ。今は何と干渉したのかは考えない。
光子はどちらのスリットを通ったのかわからない状態で検出される。
その場合、長く実験を続けると検出器に干渉縞が現れる。

ここで、それぞれのスリットの前に偏光フィルタを置く。
片方は垂直方向の変更を右回りに、水平方向の変更を左回り変えるフィルタ
もう一方は垂直方向を左回りに、水平方向を右回りに変えるフィルタとする。
そうすると光子Aがスリットを通る前にどちらの偏光状態であったかがわかれば、
検出した偏光状態からどちらのスリットを通ったかがわかる。

光子Bを検出器2で偏光が垂直か水平か検出してやれば、光子Aが光子Bと分かれたときの
偏光状態がわかり、どちらのスリットを通ったのか決定できる。

しかし、そうするといつまで実験を続けても検出器に干渉縞は現れない。

それどころか検出器2までの距離を検出器1までの距離より長くしても結果は変わらない。
光子Bが検出されるより前に光子Aはスリットのある壁を通り抜け、検出されたとしてもだ。

続く

2007年01月18日

Round2:Core2計測中ですが

計測結果(これ)を見る限り、PentiumMとCoreはほとんど同じでSSEの部分をCoreで強化しただけのように見えます。Core2も計測途中ですが同じようにSSE以外はそれほど変更されていない?のかなと思えます。

Athlon系もAthlon64でSSEが大幅に強化されただけで、FPUはほとんど同じ?という印象です。

そしてAthlon64とCoreを比べてみて思うのは、Cによるコード(特にアルゴリズムどおりすなおに書いたもの)がAthlon系分が悪いということです。

Cコードでも工夫すれば速くなることを示していますが、このあたりがベンチマーク結果でCore系に差を空けられている要因かもしれません。(同一動作周波数で見た場合)

まだ公開していませんが、Round1:OrbitやRound3:FFT(非公式)の測定からも
Athlon64とCore系は同一動作周波数でほぼ同等の能力を持っているように思えます。

最近秋葉で催されるAMDとIntelの対決でお互い似たようなCPUですといって自社CPUの優位性を表立って述べないのは、実はこのあたりの事情かもしれません。

しかし、Cで普通に書いたコードや一般のベンチマーク結果からは、Core系が1ランク上という評価になります。

市販の動画エンコーダではCore2のほうが確かに速いですから。
最もWMV化しようと思ったらどんなマシン使っても夜間バッチ(エンコード時間はだいたい映像時間の3倍)になります。

2007年01月13日

干渉縞の図

正確にはこうですかね。


2007年01月11日

Round2 Intel Core 全充

GenuineIntel(Core 1666MHz)

Signature : 06E8
FPU MMX KNI CMOV
秒数はエントリーの実行にかかる時間です
====================
File : r2kazu.dll
Creator Signature : Iwata, Kazunari. 1999.Jun.27
x87 Code 9.18E+001 mS 1529 cycle
x87 pairring 1.43E+002 mS 2385 cycle
x86 Fixed 1.16E+002 mS 1932 cycle

Round2 Intel Core くろさん

GenuineIntel(Core 1666MHz)

Signature : 06E8
FPU MMX KNI CMOV
秒数はエントリーの実行にかかる時間です
====================
File : R2KURO.dll
Creator Signature : KUROI. 1999.NOV.17
SSE (SoA) 4.13E+001 mS 688 cycle

Round2 Intel Core 酔漢さん

GenuineIntel(Core 1666MHz)

Signature : 06E8
FPU MMX KNI CMOV
秒数はエントリーの実行にかかる時間です
====================
File : R2HORIE.DLL
Creator Signature : Horie, Seiichi. 1999.Sep.7
OoO FPU 8.21E+001 mS 1368 cycle
InO FPU LT=3 1.02E+002 mS 1699 cycle
InO FPU LT=2 1.01E+002 mS 1678 cycle
InO FPU Straight 8.90E+001 mS 1483 cycle

2007年01月10日

Round2 もうひとつのPentium4

GenuineIntel

Signature : 0F41
FPU MMX KNI CMOV
秒数はエントリーの実行にかかる時間です
====================
File : R2URURI.dll
Creator Signature : うるり 2000/01/05
C言語 SDKコード(VC6Pro Blend) 5.28E+002 mS 15850 cycle
C言語 一時変数使用 1.50E+002 mS 4501 cycle
C言語 ループ展開 9.59E+001 mS 2878 cycle
x87 6.77E+001 mS 2031 cycle
x87 (with fxch) 6.97E+001 mS 2090 cycle
x87 (SOA)(OoO) 4.81E+001 mS 1444 cycle
SSE (SOA) 1.51E+001 mS 452 cycle
SSE (SOA)(OoO) 1.32E+001 mS 397 cycle
MMX (16bit fixed) 2.56E+001 mS 767 cycle
MMX (16bit fixed)(SOA) 1.73E+001 mS 520 cycle

GenuineIntel

Signature : 0F41
FPU MMX KNI CMOV
秒数はエントリーの実行にかかる時間です
====================
File : r2dante.dll
Creator Signature : Dante 1999.10.30
ループ展開 VC++6.0/BLEND 9.33E+001 mS 2800 cycle
ループ展開 VC++6.0/for P6 9.28E+001 mS 2783 cycle
ループ展開 IC++4.0/for P6 9.74E+001 mS 2922 cycle
ループ展開 IC++4.0/for P5 1.06E+002 mS 3194 cycle
ループ展開(v0~v3) VC++6.0/BLEND 7.82E+001 mS 2345 cycle
ループ展開(v0~v3) VC++6.0/for P6 7.97E+001 mS 2390 cycle
ループ展開(v0~v3) IC++4.0/for P6 7.33E+001 mS 2198 cycle
ループ展開(v0~v3) IC++4.0/for P5 8.18E+001 mS 2455 cycle
ループ構造逆転 VC++6.0/BLEND 8.75E+001 mS 2625 cycle
ループ構造逆転 VC++6.0/for P6 8.74E+001 mS 2623 cycle
ループ構造逆転 IC++4.0/for P6 1.30E+002 mS 3913 cycle
ループ構造逆転 IC++4.0/for P5 2.20E+002 mS 6611 cycle

Round1 もうひとつのPentium4

Signature : 0F41(Pentium4 3000MHz)
FPU MMX KNI CMOV
秒数はエントリーの実行にかかる時間です
====================
File : R1URURI.dll
Creator Signature : うるり 1999/08/30
VC6 Pro. Generated Code(from SDK) 6.60 sec. 198
C言語 で最適化 6.21 sec. 187
FPU で最適化 5.37 sec. 161
FPU で最適化(with fxch) 5.65 sec. 170
SSE(SISD) で FPU を置き換え♪ 2.59 sec. 78
SSE(SIMD) で 3DNow!(SIMD) を置き換え♪ 2.85 sec. 86
SSE(SIMD) で最適化♪ 3.14 sec. 94