2019/08/26
第4回 HPC-Phys 勉強会@理研R-CCS, 神戸

大規模並列化角転送行列繰り込み群を用いた古典スピン系の臨界現象解析
Icosahedron model: HU, Okunishi, Krcmar, Gendiar, Yunoki and Nishino, Phys. Rev. E 96, 062112 (2017).
Dodecahedron model: HU, Okunishi, Yunoki and Nishino, in preparation.

上田宏 (理研R-CCS)

問題点と求められる仕様
ハミルトニアンの直接的取り扱い
メリット：数値的に厳密デメリット：計算コスト 𝒪𝒪 exp 𝑁𝑁「京」でも最大 48 qubitsComput. Phys. Commun. 237, 47 (2019)モンテカルロ法
メリット：計算コスト 𝒪𝒪 poly 𝑁𝑁
デメリット：負符号問題要求される仕様・ 計算コスト 𝒪𝒪 poly 𝑁𝑁 ＆ どのような系にも適用可能
・ 系統的に精度を改善でき、負符号問題にさらされない

解決策の1つ：テンソルネットワークの導入

TN• TN（テンソルネットワーク） ≒ テンソルの低ランク近似 ＋ エンタングルメントの考察（応用数理）（量子情報）（物性／統計物理など）

行列積／テンソルネットワーク形式の歴史（その１）

1941

1966

Kramers－Wannier 近似（Kramers,Wannier）
行列積状態【MPS】の出現

粗視化
角転送行列（Kadanoff） 【CTM】
樹状ネットワーク （Baxter）【TTN】の出現

1968

1995

1996

古典系

1971

DMRG
（西野）

1988

1989

1992

量子系
繰り込み群【RG】 VBS状態
MPS（Affleck,（Wilson）（Fannesら）
Kennedy,Lieb, Tasaki）
テンソル積状態【TPS】の出現

密度行列繰り込み群【DMRG】（White）
MPSの数値的変分計算

CTMRG（西野，奥西）行列積／テンソルネットワーク形式の歴史（その２）

2000

2007

2009

2012

2015

TPVP
（西野ら）

テンソルRG【TRG】（Levin, Nave）

Tensor-entanglement
Filtering RG【TERG】（Gu, Wen）

HOTRG（Xieら）

Tensor-network
Renormalization【TNR】（Evenbly, Vidal）

1999

2003

2004

積波動関数RG【PWFRG】
TPSの数値的変分計算（日永田, 奥西, 阿久津）Time-evolving
block decimation【TEBD】（Vidal）
量子情報分野の本格的参入

Projected entangled
iDMRG
multi-scalepair state（McCulloch）
entanglement【PEPS】（Verstraete, Cirac） renormalization
ansatz【MERA】(Vidal)臨界系を直接議論可能な
テンソルネットワーク

2006

2008

2019
最近の話題
機械学習
量子計算機

古典２次元模型の分配関数計算
𝑤𝑤𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 = 𝑙𝑙𝑖𝑖

W𝑘𝑘

𝐿𝐿 = 4 の時：𝑗𝑗

イジング模型の場合
𝑖𝑖, 𝑗𝑗, 𝑘𝑘, 𝑙𝑙 ∈ 1, −1𝐸𝐸𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 = −(𝑖𝑖𝑖𝑖 + 𝑗𝑗𝑗𝑗 + 𝑘𝑘𝑘𝑘 + 𝑙𝑙𝑙𝑙)
𝑤𝑤𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 = exp −𝐸𝐸𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 /𝑘𝑘𝐵𝐵 𝑇𝑇

分配関数：
𝑍𝑍 = ∑𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 𝑤𝑤𝑖𝑖𝑖𝑖𝑖𝑖𝑖𝑖 =演算コスト：𝑂𝑂 24
メモリコスト： 𝑂𝑂 24

W

𝑤𝑤𝒊𝒊𝒊𝒊 =𝑗𝑗14
𝑗𝑗13

𝑗𝑗12
𝑗𝑗11

𝑍𝑍 = ∑𝒊𝒊𝒊𝒊 𝑤𝑤𝒊𝒊𝒊𝒊

𝑖𝑖15

𝑖𝑖25

𝑖𝑖35

𝑖𝑖45

W 𝑗𝑗24 W 𝑗𝑗34 W 𝑗𝑗44 W
𝑖𝑖14
𝑖𝑖24
𝑖𝑖34
𝑖𝑖44

𝑗𝑗54

W 𝑗𝑗23 W 𝑗𝑗33 W 𝑗𝑗43 W
𝑖𝑖13
𝑖𝑖23
𝑖𝑖33
𝑖𝑖43

𝑗𝑗53

W 𝑗𝑗21 W 𝑗𝑗31 W 𝑗𝑗41 W

𝑗𝑗51

W 𝑗𝑗22 W 𝑗𝑗32 W 𝑗𝑗42 W
𝑖𝑖12
𝑖𝑖22
𝑖𝑖32
𝑖𝑖42

𝑖𝑖11

𝑖𝑖21

𝑖𝑖31

𝑖𝑖41

𝑗𝑗52愚直な実装： 演算コスト：𝑂𝑂 22𝐿𝐿(𝐿𝐿+1) = 𝑂𝑂 240
メモリコスト：𝑂𝑂 24

角転送行列の導入(1)
𝑐𝑐𝑖𝑖𝑖𝑖 =𝑖𝑖

W(1)
𝑝𝑝𝑖𝑖𝑖𝑖𝑖𝑖 =𝑗𝑗 ,演算コスト：𝑂𝑂 24 , メモリコスト： 𝑂𝑂 24(1)𝑟𝑟𝒊𝒊𝒊𝒊=𝑖𝑖12

W

𝑖𝑖22𝑖𝑖W𝑘𝑘𝑗𝑗

W 𝑗𝑗31

演算コスト：𝑂𝑂 24 , メモリコスト： 𝑂𝑂 23

1ℓ𝒊𝒊𝒊𝒊𝑖𝑖13=

W 𝑗𝑗22W

𝑖𝑖22
W

演算コスト：𝑂𝑂 25 ,メモリコスト： 𝑂𝑂 24

𝑗𝑗31

𝑖𝑖13

W

(2)

𝑐𝑐𝒊𝒊𝒊𝒊 =W

𝑖𝑖23

W

(4)

Ψ𝒊𝒊

=

W

W

W

W

W

W

W

W

W

W

W

W

W

W

W

W

W

W

演算コスト：𝑂𝑂 24 , メモリコスト： 𝑂𝑂 24

W 𝑗𝑗32
W 𝑗𝑗31

演算コスト：𝑂𝑂 26 , メモリコスト： 𝑂𝑂 24𝑖𝑖13

W𝑖𝑖23WW

演算コスト：𝑂𝑂 26 , メモリコスト： 𝑂𝑂 24𝑖𝑖33
WW𝑖𝑖43

𝑍𝑍 4 =演算コスト：𝑂𝑂 240 → 𝑂𝑂 26
メモリコスト：𝑂𝑂 24

計算のボトルネック
𝐿𝐿 = 2ℓの時：

𝑖𝑖ℓ,ℓ+1𝑖𝑖1,ℓ+1W

W𝑖𝑖ℓ+1,ℓ+1
W𝑖𝑖𝐿𝐿,ℓ+1
W近似を許してより大きな ℓ を取り扱う：
(ℓ)

(𝐿𝐿)

Ψ𝒊𝒊= 𝒊𝒊𝐿𝐿𝒊𝒊𝑅𝑅 =W

W(ℓ)

𝑐𝑐𝒊𝒊𝐿𝐿,𝒋𝒋

WW

演算コスト：𝑂𝑂 23ℓ , メモリコスト：𝑂𝑂 22ℓℓ𝑖𝑖1,ℓ+1ℓ𝑖𝑖ℓ,ℓ+1=(ℓ)

𝑐𝑐𝒋𝒋,𝒊𝒊𝑅𝑅ℓ𝑐𝑐𝒊𝒊,𝒋𝒋 ≈ ∑𝑚𝑚𝛼𝛼=1 𝑢𝑢𝒊𝒊𝛼𝛼 𝜆𝜆𝛼𝛼 𝑢𝑢𝒋𝒋𝛼𝛼

𝑍𝑍 𝐿𝐿≈ ∑𝑚𝑚𝛼𝛼=1ℓ𝜆𝜆𝛼𝛼4固有値問題／特異値分解𝑗𝑗ℓ+1,ℓ𝑗𝑗ℓ+1,1誤差: 𝜖𝜖 =ℓ∑2𝛼𝛼>𝑚𝑚 𝜆𝜆𝛼𝛼ℓ
𝑍𝑍 𝐿𝐿4角転送行列法繰り込み群[西野, 奥西, JPSJ, 1996]𝛼𝛼(ℓ)=WW𝑝𝑝𝛼𝛼𝛼𝛼𝛼𝛼 =𝛼𝛼𝛽𝛽𝑗𝑗𝛽𝛽𝑗𝑗

演算コスト：𝑂𝑂 𝑚𝑚 × 22ℓ+1 + 𝑚𝑚2 2ℓ+1(ℓ+1)

𝑐𝑐𝛼𝛼𝛼𝛼,𝛽𝛽𝛽𝛽 =𝛼𝛼𝛼𝛼𝑖𝑖

W

𝑗𝑗𝛽𝛽𝛼𝛼 ≡𝛼𝛼𝛼𝛼 ,演算コスト：𝑂𝑂 23 𝑚𝑚3
メモリコスト：𝑂𝑂 22 𝑚𝑚2≈𝛼𝛼𝛽𝛽𝛼𝛼𝑖𝑖

𝑗𝑗𝛽𝛽𝛼𝛼W𝑗𝑗 ≡𝛽𝛽𝑗𝑗

CTMRGの疑似コード0) Set 𝐖𝐖 = 𝑤𝑤𝑖𝑖,𝑗𝑗
Set 𝐏𝐏 = 𝑝𝑝𝛼𝛼,𝛽𝛽1≤𝑖𝑖≤𝑑𝑑 21≤𝑖𝑖≤𝑑𝑑 21≤𝛼𝛼≤𝑚𝑚1≤𝛽𝛽≤𝑚𝑚𝑚𝑚, 𝑝𝑝𝛼𝛼,𝛼𝛼′ +𝑚𝑚 𝑠𝑠−1 = 𝓅𝓅𝛼𝛼𝛼𝛼′ 𝑠𝑠

where 𝓅𝓅𝛼𝛼𝛼𝛼′ 𝑠𝑠 = 𝓅𝓅𝛼𝛼′ 𝛼𝛼𝑠𝑠Set 𝛀𝛀 = 𝛿𝛿𝛽𝛽,𝛽𝛽′ 𝜔𝜔𝛽𝛽 , 𝜔𝜔𝛽𝛽 ≥ 01) 𝐏𝐏 ′ =′𝑝𝑝𝛼𝛼,𝛽𝛽[ 𝑚𝑚 ≫ 𝑑𝑑 ]≔ 𝜔𝜔𝛼𝛼 𝑝𝑝𝛼𝛼,𝛽𝛽2) 𝐂𝐂 = 𝑐𝑐𝛽𝛽,𝛽𝛽′ ≔FUNC_CTMRG[𝐏𝐏, 𝐏𝐏 ′ , 𝐖𝐖]
3) Diagonalization: 𝐂𝐂 = 𝐔𝐔𝛀𝛀𝐔𝐔t
 Update 𝐔𝐔 = 𝑢𝑢𝛽𝛽,𝛽𝛽′ and 𝛀𝛀′′4) 𝐔𝐔′ = 𝑢𝑢𝛼𝛼,𝛽𝛽, 𝑢𝑢𝛼𝛼,𝛼𝛼′ +𝑚𝑚 𝑠𝑠−1

≔ 𝑢𝑢𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′5) 𝐂𝐂 ≔FUNC_CTMRG(𝐏𝐏, 𝐔𝐔′ , 𝐖𝐖)
6) 𝐏𝐏 ≔t

𝐔𝐔 𝐂𝐂 𝛼𝛼,𝛽𝛽7) go to 1)• EigenExa, 𝑤𝑤𝑠𝑠+𝑑𝑑 𝜎𝜎−1 ,𝑠𝑠′+𝑑𝑑(𝜎𝜎′ −1) = 𝓌𝓌𝑠𝑠𝑠𝑠𝑠𝑠′ 𝜎𝜎′•

BLACS•

Reshape by MPI_ALLTOALLVFUNC_CTMRG[𝐏𝐏, 𝐏𝐏 ′ , 𝐖𝐖]
1) 𝐋𝐋 ≔ 𝐏𝐏 t 𝐏𝐏 ′2) 𝐋𝐋′ =21≤𝛾𝛾≤𝑚𝑚ℓ′𝛾𝛾,𝑖𝑖,1≤𝑖𝑖≤𝑑𝑑 2′ℓ𝛼𝛼+𝑚𝑚𝛼𝛼 ′ −1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠 ′ −1

≔ ℓ𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −14) 𝑐𝑐𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −1≔ 𝑐𝑐𝑐𝛼𝛼+𝑚𝑚 𝛼𝛼′ −1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠′ −13) 𝐂𝐂′ ≔ 𝐋𝐋′ 𝐖𝐖
5) return 𝐂𝐂

行列の格納形式

Node:0

Node:3

Node:6Node:1

Node:4

Node:7

Node:2

Node:5

Node:8

1×1の2次元ブロックサイクリック分割例）𝑑𝑑 = 3, 𝑚𝑚 = 3 ノード並列数：3 × 3(Global view of 𝐋𝐋)(Local view of 𝐋𝐋)

置換操作： ℓ′𝛼𝛼+𝑚𝑚 𝛼𝛼′−1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠′−1(Global view of 𝐋𝐋′)

≔ ℓ𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −1(Global view of 𝐋𝐋)

置換操作： ℓ′𝛼𝛼+𝑚𝑚 𝛼𝛼′−1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠′−1(Global view of 𝐋𝐋′)

≔ ℓ𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −1
Node:0

Node:3

Node:6

Node:1

Node:4

Node:7

Node:2

Node:5

Node:8(Global view of 𝐋𝐋)

実現したい操作
Node:0

Node:3

Node:6

Node:0

Node:3

Node:6

Node:1

Node:4

Node:7

Node:1

Node:4

Node:7

Node:2

Node:5

Node:8

Node:2

Node:5

Node:8(Local view of 𝐋𝐋)(Local view of 𝐋𝐋′ )１）局所要素置換

Node:2

Node:0

Node:3

Node:6

Node:1

Node:4

Node:7

Node:2

Node:5

Node:8

To #７

To #3

Node:6

Node:7
To #８

To #1

Node:1
Node:6へ Node:4
Node:3へ
Node:0へ

To #4

To #2

Node:3
各ノード毎にTo #0

Node:0のように送り先のnode#にNode:5
Node:8
関して昇順になるように要素を作業配列に格納する。
（今回の例では省略可）(Local view of 𝐋𝐋)(Local view of 𝐋𝐋′ )２）MPI_ALLTOALLV
Node:0

Node:3

Node:6

Node:0

Node:3

Node:6

Node:1

Node:4

Node:7

Node:1

Node:4

Node:7

Node:5

Node:8

データは連続番地にしか格納できない（頭の位置は指定できる）

Node:2

Node:5

Node:8(Local view of work Mat.)

Node:2(Local view of work Mat.2)

３）局所要素置換
Node:0

Node:3

Node:6

Node:0

Node:3

Node:6

Node:1

Node:4

Node:7

Node:1

Node:4

Node:7

Node:2

Node:5

Node:8

Node:2

Node:5

Node:8(Local view of 𝐋𝐋′ )(Local view of work Mat.2)

CTMRGの疑似コード0) Set 𝐖𝐖 = 𝑤𝑤𝑖𝑖,𝑗𝑗
Set 𝐏𝐏 = 𝑝𝑝𝛼𝛼,𝛽𝛽1≤𝑖𝑖≤𝑑𝑑 21≤𝑖𝑖≤𝑑𝑑 21≤𝛼𝛼≤𝑚𝑚, 𝑤𝑤𝑠𝑠+𝑑𝑑 𝜎𝜎−1 ,𝑠𝑠′+𝑑𝑑(𝜎𝜎′ −1) = 𝓌𝓌𝑠𝑠𝑠𝑠𝑠𝑠′ 𝜎𝜎′1≤𝛽𝛽≤𝑚𝑚𝑚𝑚, 𝑝𝑝𝛼𝛼,𝛼𝛼′ +𝑚𝑚 𝑠𝑠−1 = 𝓅𝓅𝛼𝛼𝛼𝛼′ 𝑠𝑠

where 𝓅𝓅𝛼𝛼𝛼𝛼′ 𝑠𝑠 = 𝓅𝓅𝛼𝛼′ 𝛼𝛼𝑠𝑠

Set 𝛀𝛀 = 𝛿𝛿𝛽𝛽,𝛽𝛽′ 𝜔𝜔𝛽𝛽 , 𝜔𝜔𝛽𝛽 ≥ 01) 𝐏𝐏 ′ =′𝑝𝑝𝛼𝛼,𝛽𝛽[ 𝑚𝑚 ≫ 𝑑𝑑 ]≔ 𝜔𝜔𝛼𝛼 𝑝𝑝𝛼𝛼,𝛽𝛽2) 𝐂𝐂 = 𝑐𝑐𝛽𝛽,𝛽𝛽′ ≔FUNC_CTMRG[𝐏𝐏, 𝐏𝐏 ′ , 𝐖𝐖]
3) Diagonalization: 𝐂𝐂 = 𝐔𝐔𝛀𝛀𝐔𝐔t Update 𝐔𝐔 = 𝑢𝑢𝛽𝛽,𝛽𝛽′ and 𝛀𝛀′′4) 𝐔𝐔′ = 𝑢𝑢𝛼𝛼,𝛽𝛽, 𝑢𝑢𝛼𝛼,𝛼𝛼′ +𝑚𝑚 𝑠𝑠−1

≔ 𝑢𝑢𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′5) 𝐂𝐂 ≔FUNC_CTMRG(𝐏𝐏, 𝐔𝐔′ , 𝐖𝐖)
6) 𝐏𝐏 ≔t

𝐔𝐔 𝐂𝐂 𝛼𝛼,𝛽𝛽7) go to 1)• EigenExa•BLACS•

Reshape by MPI_ALLTOALLVMPI_ALLTOALLVを利用したテンソルのReshape の際に必要なリストを作成′FUNC_CTMRG[𝐏𝐏, 𝐏𝐏 , 𝐖𝐖]

1) 𝐋𝐋 ≔ ※テンソルのサイズが動的に変わる場合は
𝐏𝐏 t 𝐏𝐏 ′その都度リスト作成が必要
22) 𝐋𝐋′ = ℓ′𝛾𝛾,𝑖𝑖1≤𝛾𝛾≤𝑚𝑚1≤𝑖𝑖≤𝑑𝑑 2,′ℓ𝛼𝛼+𝑚𝑚𝛼𝛼 ′ −1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠 ′ −1

≔ ℓ𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −14) 𝑐𝑐𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −1≔ 𝑐𝑐𝑐𝛼𝛼+𝑚𝑚 𝛼𝛼′ −1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠′ −13) 𝐂𝐂′ ≔ 𝐋𝐋′ 𝐖𝐖5) return 𝐂𝐂

CTMRGの疑似コード0) Set 𝐖𝐖 = 𝑤𝑤𝑖𝑖,𝑗𝑗
Set 𝐏𝐏 = 𝑝𝑝𝛼𝛼,𝛽𝛽1≤𝑖𝑖≤𝑑𝑑 21≤𝑖𝑖≤𝑑𝑑 21≤𝛼𝛼≤𝑚𝑚

1≤𝛽𝛽≤𝑚𝑚𝑚𝑚, 𝑝𝑝𝛼𝛼,𝛼𝛼′ +𝑚𝑚 𝑠𝑠−1 = 𝓅𝓅𝛼𝛼𝛼𝛼′ 𝑠𝑠

where 𝓅𝓅𝛼𝛼𝛼𝛼′ 𝑠𝑠 = 𝓅𝓅𝛼𝛼′ 𝛼𝛼𝑠𝑠Set 𝛀𝛀 = 𝛿𝛿𝛽𝛽,𝛽𝛽′ 𝜔𝜔𝛽𝛽 , 𝜔𝜔𝛽𝛽 ≥ 01) 𝐏𝐏 ′ =′𝑝𝑝𝛼𝛼,𝛽𝛽[ 𝑚𝑚 ≫ 𝑑𝑑 ]≔ 𝜔𝜔𝛼𝛼 𝑝𝑝𝛼𝛼,𝛽𝛽2) 𝐂𝐂 = 𝑐𝑐𝛽𝛽,𝛽𝛽′ ≔FUNC_CTMRG[𝐏𝐏, 𝐏𝐏 ′ , 𝐖𝐖]
3) Diagonalization: 𝐂𝐂 = 𝐔𝐔𝛀𝛀𝐔𝐔t
 Update 𝐔𝐔 = 𝑢𝑢𝛽𝛽,𝛽𝛽′ and 𝛀𝛀′′4) 𝐔𝐔′ = 𝑢𝑢𝛼𝛼,𝛽𝛽, 𝑢𝑢𝛼𝛼,𝛼𝛼′ +𝑚𝑚 𝑠𝑠−1

≔ 𝑢𝑢𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′5) 𝐂𝐂 ≔FUNC_CTMRG(𝐏𝐏, 𝐔𝐔′ , 𝐖𝐖)
6) 𝐏𝐏 ≔t

𝐔𝐔 𝐂𝐂 𝛼𝛼,𝛽𝛽7) go to 1)• EigenExa, 𝑤𝑤𝑠𝑠+𝑑𝑑 𝜎𝜎−1 ,𝑠𝑠′+𝑑𝑑(𝜎𝜎′ −1) = 𝓌𝓌𝑠𝑠𝑠𝑠𝑠𝑠′ 𝜎𝜎′

•

BLACS

•

Reshape by MPI_ALLTOALLV

EigenExa, BLACSともに1×1の2次元ブロックサイクリック分割で実行
FUNC_CTMRG[𝐏𝐏, 𝐏𝐏 ′ , 𝐖𝐖]
1) 𝐋𝐋 ≔ 𝐏𝐏 t 𝐏𝐏 ′2) 𝐋𝐋′ =21≤𝛾𝛾≤𝑚𝑚ℓ′𝛾𝛾,𝑖𝑖,1≤𝑖𝑖≤𝑑𝑑 2′ℓ𝛼𝛼+𝑚𝑚𝛼𝛼 ′ −1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠 ′ −1

≔ ℓ𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −14) 𝑐𝑐𝛼𝛼+𝑚𝑚 𝑠𝑠−1 ,𝛼𝛼′ +𝑚𝑚 𝑠𝑠′ −1≔ 𝑐𝑐𝑐𝛼𝛼+𝑚𝑚 𝛼𝛼′ −1 ,𝑠𝑠+𝑑𝑑 𝑠𝑠′ −13) 𝐂𝐂′ ≔ 𝐋𝐋′ 𝐖𝐖
5) return 𝐂𝐂

EigenExa*http://www.r-ccs.riken.jp/labs/lpnctrt/assets/img/EPASA2014_dense_poster_ImamuraT_only.pdf

並列化CTMRGのベンチマーク計算＠京[sec.]

System: Icosahedron model (𝑁𝑁 = 12𝑚𝑚)

10,000 itr.
24 hours

For 𝑁𝑁 = 10000

For 𝑁𝑁 = 16000

まとめ 対称的な古典2次元模型に対するCTMRGを完全にMPI並列化
・ テンソル要素の入れ替え：MPI_ALLTOALLV・ 行列積：BLACS・ 対角化：EigenExa
 計算時間 𝑡𝑡, 行列次元 𝑁𝑁, 並列ノード数 𝑛𝑛 の間のスケーリング関係式の調査

𝐾𝐾𝑡𝑡 = 𝑁𝑁 𝐹𝐹 𝑛𝑛/𝑁𝑁
京の場合：𝐾𝐾 = 1.34

3−𝐾𝐾

3

𝑁𝑁 /𝑛𝑛∼ � 𝐾𝐾𝑁𝑁

3−𝐾𝐾𝑛𝑛/𝑁𝑁≪1𝑛𝑛/𝑁𝑁 3−𝐾𝐾 ≫ 1

まとめ 計算全体のボトルネック：CTMの固有値問題
内部自由度𝑑𝑑が大きいとき：Partial eigensolver のほうがお得になる
理由その１）必要な固有値固有ベクトルの個数は行列次元の1/𝑑𝑑
理由その２）反復解法の上手い初期ベクトルを与えられる可能性が高い
PWFRG【西野，奥西，1995】やiDMRG【McClloch, 2008】といった波動関数予測と同様の概念
 非対称な模型の場合：固有値問題→特異値分解