2.3.2. 半古典分子動力学計算を用いたコンピュータ性能の測定
上智大学

南部 伸孝

1. 概要
古典力学を基に分子の運動（粒子の運動）を記述する分子動力学シミュレーション（Molecular
Dynamics simulation）が生体関連の分野で頻繁に利用され，最近では分子機械の解明等までも利用されている。特にそこで活躍されている数値計算法として速度ベルレ（Velocity-Verlet）法があるが，エネルギーの誤差が比較的大きい。一方，分子機能自体が量子現象に起因する場合もある。その場合
は，分子の運動を古典論ではなく，量子論あるいは半古典論に基づき数値的に求めなければならない。
ところが，計算精度の低い速度ベルレ法では破たんするため，より高精度な積分法を用いる必要が出てくる。
本計測では，ベンチマークプログラムとして古典トラジェクトリを半古典論に基づく経路積分法により量子効果を取り入れるため，Gray らが提唱する高精度な 4 次のシンプレクティック積分法[Brewer, Hulme, Manolopoulos, J. Chem. Phys. 106, 4832-4839 (1996)の Appendix を参照] を用いた方法で実施した。また，【補足資料】(1)に実際のコードの一部を添付する。
2. 測定
測定を実施した計算機の CPU 型番は以下の 9 種類である。Intel と AMD と IBM が入り乱れた順
番となっているが，リリースされた年代に沿って順番を振っていることから，年代とともに見ていただきたい。測定は 3 回実施し，その平均値を値とした。
①AMD Athlon™ 64 Processor 3500+②AMD Athlon™ 64 X2 Dual Core Processor 4400+③Intel® Pentium® 4 3.4GHz④Intel® Xeon® 5160 3.0GHz（富士通 Primergy, PG）⑤IBM Power5 1.9GHz （日立 SR11000 J1 ノード）
⑥Intel® Itanium2-p9000 1.6GHz（富士通 Primequest, PQ）⑦Quad-Core AMD Opteron™ Processor 2346 HE @ 1.8GHz⑧Intel® Core™2 Duo CPU E6850 @ 3.00GHz⑨Dual-Core AMD Opteron™ Processor 2214 HE @ 2.2GHz
また，使用したコンパイラは以下の通りである。
1. 富士通製 Fujitsu Fortran Driver
Version 2.0 P-id: T05097-03(Sep. 5 2007 17:37:52)
2. 日立製最適化 FORTRAN90
V01-05
3. Intel® Fortran Compiler forIntel® EM64T-based
applications, Version 9.1
4. The Portland Group, Inc. pgf90
6.0-4 64-bit target on x86-64
Linux
3. 結果と考察
詳細なコンパイラオプション，計測経過時間等は【補足資料】(2)に列挙するので，それを参照されたい。ここでは，幾図 1．非並列コンパイラの結果

つか特徴的に部分を取り上げて，結果を紹介する。まず，非並列コンパイルの結果を図 1 に示す。横軸は，使用したコン
パイラのメーカーであり，例えば「⑥富士通(オ)」は富士通のコンパイルを使うが，オプションを最適化したものである。
具体的な結果であるが，非非並コンパ
イルと非並列実行の基，最も計算時間の短かったのは，Itanium2 の CPU 上でIntel コンパイラを用いた場合であった。
50 秒弱であり，並列計算結果を含めても2 番目である。②は AMD であるが，③のIntel との差異があまり見られない。
但し，
AMD では Portland 製を利用した方が良さそうである。一方，③と④はともに Intelの CPU であり混ぜて比較すると，型番が違うので明言はできないが，コンパイラの性能において富士通 vs. Intel は大差なしと思われる。
次に，それぞれのマシンを固定し，コンパイラ性能を比較する。図 2 は AMD
Athlon の Dual Core の CPU である。東工大がみんなのスパコンとして導入した
CPU より古い CPU であるが，結果の通り全く並列性能向上が見られない。その一方，Intel を除き，悪化も見られず，その性能を保持している。多分，オプションを選んでも全く並列化されなかったためだと思われる。

図 2．AMD 上における並列コンパイラ性能

図 3．Intel Xeon 上における並列コンパイラ性能

図 3 は Intel Xeon（別名：Nehalem コア）上での性能である。特に 1 ノード，4コアまで共有メモリー型のマシンであることから，4 コアまで並列性能が期待できる。
結果は，ご覧の通り，スレッド数が増えると悪化するのが分かる。そこで，最適オプ
ションを富士通さんに選んで頂いくことにする。図 2 の結果と同様，自動並列を止める方向に動いていることがわかる。残念であるが，利用者からみた場合，悪化しなくなることも重要な要素なので，このコード
では，自動並列が期待できないと考えるべきかもしれない。
図 4 は日立 SR11000 上での性能である。
もちろん，CPU は IBM Power5 であるが，図 4．日立 SR11000 上における並列コンパイラ性能
4 コアで最短の 38.550 秒を記録した。ハードとソフトの同調性が見られる。日本は，
ソフトウェアの開発において昔から才能がないようなことを言われているが，ゲームソフトとこのコ
ンパイラの性能は，日本が誇るソフトウェアと自負すべきである。
（富士通さん，頑張ってください！

お願いします。また，可能だと期待しております。）
図 5 は Intel Intanium2 上での性能である。特に 1 ノード，64 コアまでの共有
メモリー型マシンであることから，64 コ
アまで並列性能が期待できる。（気をつけなければならないことは，使用した計算機
が SGI 社製 Altix 等とは異なり，物理的に共有メモリー型のマシンである。
つまり，論理型の共有メモリー型マシンではない。）傾向は明らかに図 3 と同じである。
並列性能が全く期待できない。そして，図3 と比較するとかなり悪化する。無理に，共有メモリー型マシンを作成したのかもしれない。また上述と同様に，富士通の最適なオプションを選ぶと，悪化しなくなったが，性能の向上は見られない。

図 5．Intel Itanium2 上における並列コンパイラ性能

その後，⑦，⑧，⑨のマシンでも富士通の最適なオプションを選べば，悪化せず。Intel は悪化し，Portland は富士通の最適なオプションと同様な傾向を示す結果となった。
最後に，自動並列化という視点でのハイライトを図 6（本文の最後に掲載）に示す。
4. まとめz 最短だったのは，日立コンパイル＆SR11000 モデル J1 上で，4CPUcore を用い並列実行した結果（38.550 秒）であった。1CPUcore の時が 113.329 秒から考えると自動並列化が機能しているように感じられる。
z 2 番目に短かったのは，49.978 秒を記録した Intel コンパイラ Version 9.1 を用いた非並列コンパ
イル＆富士通 Primequest 上での非並列実行であった。この値には少し驚いている。何故だろうか？
z 富士通さんが新たに行ったチューニングのうちオプションのみ使い再計測を行った。PG では約30%，PQ では約 50%（ただし，並列実行可能なバージョンを用いたとき）の性能向上がみられた。
また，どちらも並列実行時に性能向上が見られないが，悪化がなくなった。
（AMD バルセロナでもそうかもしれない。）一方，以前のオプションでは悪化が見られた。オプションの説明をお願いしたい。
z 日立コンパイラ以外，自動並列性能がかなり悪いことが分かる．Many cores の時代が間近に迫っていることを考えると早急の対応が求められる。
z AMD のバルセロナは，富士通さんのコンパイラだと Portland Group を抜いているが，デュアルコアのオプテロンやアスロン 64X2 だと遅くなる。特異な命令を使っているのだろうか？ 一方，512K のキャッシュは少なすぎる。Molpro を使った大行列の固有値問題では話にならない。
Gaussian でも同様，困ったものだ。
5. 謝辞
これまで約 16 年間以上，分子科学の分野においてスーパーコンピュータの管理および調達に携わってきた。振り返ると，日立 S820, M682（2CPU）から始まり, SR2201, SR8000, SR11000, SR16000,
NEC SX-3, SX-4R, SX-5, SX-7, 富士通 VPP5000, PrimeQuest, IBM SP2, SGI Origin 2000,
Origin2800, Altix3700, Altix4700 等まで相手に奮闘してきた気がする。余談だが，UNIX システムは
DEC VAX-11/750, SONY NEWS 830 から利用し，恐らく日本で初めてインターネットを利用した研

1000

800

600

400

200

0
1コア
2コア
4コア

⑥ Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通
コンパイラ） -Free -x100 Kpreex,predicate=2,noprefetch,mfunc=2,parallel,ilfunct"

1200

南部伸孝

⑥ Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通
コンパイラ） -Free -Kfast,parallel_strong -Qt -Et"

1400

平成 22 年 3 月末

⑥ Intel(R) Itanium2-p9000 CPU 1598MHz "ifort9.1 mcpu=itanium2-p9000 -mtune=itanium2-p9000 parallel -par_threshold0 -static"⑤ SR11000 Power5 1cpu-core "f90 -64 -Oss parallel"④ Intel(R) Xeon(R) CPU 5160 @ 3.00GHz "frt（富士通コンパイラ） -Kpreex,noprefetch,mfunc=2,parallel -x100 static"④ Intel(R) Xeon(R) CPU 5160 @ 3.00GHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -Qt -Et"

④ Intel(R) Xeon(R) CPU 5160 @ 3.00GHz "ifort9.1 -O3-msse3 -parallel -par-threshold0 -static"⑨ Dual-Core AMD Opteron(tm) Processor 2214 @2.2GHz "frt (富士通コンパイラ) Kpreex,noprefecth,mfunc=2,parallel -x100 -static"⑨ Dual-Core AMD Opteron(tm) Processor 2214 @2.2GHz "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=levels:5 fast -tp k8-64"⑦ Quad-Core AMD Opteron(tm) Processor 2346 HE @1.8GHz "frt (富士通コンパイラ) Kpreex,noprefecth,mfunc=2,parallel -x100 -static"⑦ Quad-Core AMD Opteron(tm) Processor 2346 HE @1.8GHz "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=levels:5 fast -tp k8-64"

経過時間(秒)究者の一人だと思う。朴さんには学生時代とてもお世話になった。そして縁があり，平成 21 年の春，
上智大学 理工学部 物質生命理工学科に異動した。大学では，白衣を着て何とあの南部が実験の授業をやっている。ある意味，スーパーコンピュータから離れた立場となったが，実験研究者が実験装置に工夫をするように，理論研究者がコンピュータを意識してプログラムを開発することは，とても大切なことだと考えている。その一方，ここに至るまで様々な方々にお世話になった。この場をお借りして感謝申し上げる。ありがとうございました。

図 6．様々なマシンと各社がリリースするコンパイラの自動並列化性能

【補足資料】(1) 測定に用いたコード（4 次のシンプレクティク積分法）! We use 4th order Gray sypmlectic integrator [JCP v106 p4832 (1997)]! Coordinate integration coefficientsa(1) = 0.5*(1.0 - 0.57735026918962576450914878050196)*m_traj%tstep
a(2) = 0.57735026918962576450914878050196*m_traj%tstepa(3) = -0.57735026918962576450914878050196*m_traj%tstep
a(4) = 0.5*1.57735026918962576450914878050196*m_traj%tstep! Momentum integration coefficientsb(1) = 0.0b(2) = 0.5*1.07735026918962576450914878050196*m_traj%tstepb(3) = 0.5*m_traj%tstepb(4) = -0.5*0.07735026918962576450914878050196*m_traj%tstep! Make forward in time step for clasical trajectory! Trajectory, monodromy matrixes and action are calculated! simultaneosly to use advantage of local data cash
time = m_traj%tstep*m_traj%it
ActionStep = 0.0
do k = 1, 4
! Data at q_{k-1}if(b(k) /= 0.0) thencall tr_CashRightHandSides(m_traj, time)! v_p = p_{k-1} -> p_{k}do i = 1, NUM_OF_DOF
m_traj%v_p(i) = m_traj%v_p(i) + b(k)*m_traj%c_force(i)enddo! From now v_q = q_{k-1}, v_p = p_{k}, time = t_{k-1}
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_dtmp(i, j) = 0.0
do m = 1, NUM_OF_DOF
m_dtmp(i, j) = m_dtmp(i, j) && - m_traj%c_hess(i, m)*m_traj%m_QP(m, j)
enddo
enddo
enddo
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_traj%m_PP(i, j) = m_traj%m_PP(i, j) + b(k)*m_dtmp(i, j)
enddo
enddo
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_dtmp(i, j) = 0.0
do m = 1, NUM_OF_DOF
m_dtmp(i, j) = m_dtmp(i, j) && - m_traj%c_hess(i, m)*m_traj%m_QQ(m, j)
enddo
enddo
enddo
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_traj%m_PQ(i, j) = m_traj%m_PQ(i, j) + b(k)*m_dtmp(i, j)
enddo
enddo
endif
! Calculate action step
dtmp = 0.0! Get kinetic energy
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
dtmp = dtmp + m_traj%v_p(i)*m_traj%v_p(j) && *pes_GetKineticMatrix(i, j)
enddo
enddo
if(b(k) /= 0.0) then
ActionStep = ActionStep + a(k)*dtmp - b(k)*m_traj%c_pot
else
ActionStep = ActionStep + a(k)*dtmp
endif! v_q = q_{k-1} -> q_{k}do i = 1, NUM_OF_DOF
v_dtmp(i) = 0.0
do j = 1, NUM_OF_DOF
if(i == j) thenv_dtmp(i) = v_dtmp(i) && + 2.0*m_traj%v_p(i)*pes_GetKineticMatrix(i, i)
else
v_dtmp(i) = v_dtmp(i) && + m_traj%v_p(j)*pes_GetKineticMatrix(i, j)
endif
enddo
enddo
do i = 1, NUM_OF_DOF
m_traj%v_q(i) = m_traj%v_q(i) + a(k)*v_dtmp(i)enddo! From now v_q = q_{k}, v_p = p_{k}, time = t_{k-1}
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_dtmp(i, j) = 0.0
do m = 1, NUM_OF_DOF
if(i == m) thenm_dtmp(i, j) = m_dtmp(i, j) && + 2.0*pes_GetKineticMatrix(i, m)*m_traj%m_PP(m, j)else
m_dtmp(i, j) = m_dtmp(i, j) && + pes_GetKineticMatrix(i, m)*m_traj%m_PP(m, j)
endif
enddo
enddo
enddo
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_traj%m_QP(i, j) = m_traj%m_QP(i, j) + a(k)*m_dtmp(i, j)
enddo
enddo
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_dtmp(i, j) = 0.0
do m = 1, NUM_OF_DOF
if(i == m) thenm_dtmp(i, j) = m_dtmp(i, j) && + 2.0*pes_GetKineticMatrix(i, m)*m_traj%m_PQ(m, j)else
m_dtmp(i, j) = m_dtmp(i, j) && + pes_GetKineticMatrix(i, m)*m_traj%m_PQ(m, j)
endif
enddo
enddo
enddo
do i = 1, NUM_OF_DOF
do j = 1, NUM_OF_DOF
m_traj%m_QQ(i, j) = m_traj%m_QQ(i, j) + a(k)*m_dtmp(i, j)
enddo
enddo
! Time update time = t_{k}time = time + a(k)if(k == 4) time = m_traj%tstep*(m_traj%it + 1)
enddo

(2) 詳細なコンパイラオプション及び計測経過時間

機種

分子動力学プログラム（自作）① AMD Athlon(tm) 64 Processor 3500+ "ifort9.1-O3 -msse2"① AMD Athlon(tm) 64 Processor 3500+ "pgi 6.0-4 64bit pgf -O3 -fast -tp k8-64"② AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "ifort9.1-O3 -msse2"

経過時間
(秒)
159.02989.921181.043② d0" & "setenv OMP_NUM_THREADS 2"

AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "ifort9.1-O3 -msse2 -parallel -par_threshol

237.762② AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "pgi 6.0-4 64bit pgf95 -O3 -fast -tp k8-64"

84.761

AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=level

83.529AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=level

88.225

AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "frt (富士通コンパイラ) -Kpreex,noprefecth,

96.620AMD Athlon(tm)64 X2 Dual Core Processor 4400+ "frt (富士通コンパイラ) -Kpreex,noprefecth,

97.170Quad-Core AMD Opteron(tm) Processor 2346 HE @ 1.8GHz "pgi 6.0-4 64bit pgf95 -O3 -Mcon

114.180

Quad-Core AMD Opteron(tm) Processor 2346 HE @ 1.8GHz "pgi 6.0-4 64bit pgf95 -O3 -Mcon

115.700

Quad-Core AMD Opteron(tm) Processor 2346 HE @ 1.8GHz "pgi 6.0-4 64bit pgf95 -O3 -Mcon

114.710Quad-Core AMD Opteron(tm) Processor 2346 HE @ 1.8GHz "frt (富士通コンパイラ) -Kpreex,n102.300

Quad-Core AMD Opteron(tm) Processor 2346 HE @ 1.8GHz "frt (富士通コンパイラ) -Kpreex,n104.310Quad-Core AMD Opteron(tm) Processor 2346 HE @ 1.8GHz "frt (富士通コンパイラ) -Kpreex,n102.210Dual-Core AMD Opteron(tm) Processor 2214 @ 2.2GHz "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=l86.530Dual-Core AMD Opteron(tm) Processor 2214 @ 2.2GHz "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=l85.690Dual-Core AMD Opteron(tm) Processor 2214 @ 2.2GHz "pgi 6.0-4 64bit pgf95 -O3 -Mconcur=l86.510Dual-Core AMD Opteron(tm) Processor 2214 @ 2.2GHz "frt (富士通コンパイラ) -Kpreex,nopref

96.180Dual-Core AMD Opteron(tm) Processor 2214 @ 2.2GHz "frt (富士通コンパイラ) -Kpreex,nopref

99.120⑨ ecth,mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 4"

Dual-Core AMD Opteron(tm) Processor 2214 @ 2.2GHz "frt (富士通コンパイラ) -Kpreex,nopref

98.290③ Intel(R) Pentium(R) 4 CPU 3.40GHz "ifort9.1 -O3 -msse2"③ Intel(R) Pentium(R) 4 CPU 3.40GHz "ifort9.1 -O3 -msse3"

88.807② s:5 -fast -tp k8-64" & "setenv NCPUS 1"② s:5 -fast -tp k8-64" & "setenv NCPUS 2"② mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 1"② mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 2"⑦ cur=levels:5 -fast -tp k8-64" & "setenv NCPUS 1"⑦ cur=levels:5 -fast -tp k8-64" & "setenv NCPUS 2"⑦ cur=levels:5 -fast -tp k8-64" & "setenv NCPUS 4"⑦ oprefecth,mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 1"⑦ oprefecth,mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 2"⑦ oprefecth,mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 4"⑨ evels:5 -fast -tp k8-64" & "setenv NCPUS 1"⑨ evels:5 -fast -tp k8-64" & "setenv NCPUS 2"⑨ evels:5 -fast -tp k8-64" & "setenv NCPUS 4"⑨ ecth,mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 1"⑨ ecth,mfunc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 2"

78.825④

Intel(R) Xeon(R) CPU 5160 @ 3.00GHz "ifort9.1 -O3 -msse3 -parallel -par-threshold0 -static"& "setenv OMP_NUM_THREADS 1"

89.800④Intel(R) Xeon(R) CPU 5160 @ 3.00GHz "ifort9.1 -O3 -msse3 -parallel -par-threshold0 -static"& "setenv OMP_NUM_THREADS 2"

287.730④

Intel(R) Xeon(R) CPU 5160 @ 3.00GHz "ifort9.1 -O3 -msse3 -parallel -par-threshold0 -static"& "setenv OMP_NUM_THREADS 4"

343.050@ 3.00GHz "frt（富士通コンパイラ） -Free -Kfast -Qt -Et"

75.232

Intel(R) Xeon(R) CPU 5160

@ 3.00GHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -86.670Intel(R) Xeon(R) CPU 5160

@ 3.00GHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -194.640

Intel(R) Xeon(R) CPU 5160

@ 3.00GHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -461.120④ Intel(R) Xeon(R) CPU 5160

④ Qt -Et" & "setenv OMP_NUM_THREADS 1"④ Qt -Et" & "setenv OMP_NUM_THREADS 2"④ Qt -Et" & "setenv OMP_NUM_THREADS 4"

Intel(R) Xeon(R) CPU 5160

@ 3.00GHz "frt（富士通コンパイラ） -Kpreex,noprefetch,mfunc=2,

58.590Intel(R) Xeon(R) CPU 5160

@ 3.00GHz "frt（富士通コンパイラ） -Kpreex,noprefetch,mfunc=2,

58.640Intel(R) Xeon(R) CPU 5160

@ 3.00GHz "frt（富士通コンパイラ） -Kpreex,noprefetch,mfunc=2,

58.730④ parallel -x100 -static" & "setenv OMP_NUM_THREADS 1"④ parallel -x100 -static" & "setenv OMP_NUM_THREADS 2"④ parallel -x100 -static" & "setenv OMP_NUM_THREADS 4"
Intel(R) Core™2 Duo CPU E6850@ 3.00GHz "ifort9.1 -O3 -msse3 -parallel -par-threshold0 -s

77.900Intel(R) Core™2 Duo CPU E6850@ 3.00GHz "ifort9.1 -O3 -msse3 -parallel -par-threshold0 -s

101.600

Intel(R) Core™2 Duo CPU E6850@ 3.00GHz "frt（富士通コンパイラ） -Kpreex,noprefetch,mfu

59.980⑧ nc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 2"Intel(R) Core™2 Duo CPU E6850@ 3.00GHz "frt（富士通コンパイラ） -Kpreex,noprefetch,mfu

58.600⑤ SR11000 Power5 1cpu-core "f90 -64 -Oss -parallel" & "setenv HF_PRUNST_THREADNUM 1"

113.329⑤ SR11000 Power5 1cpu-core "f90 -64 -Oss -parallel" & "setenv HF_PRUNST_THREADNUM 4"

38.550Intel(R) Itanium2-p9000 CPU 1598MHz "ifort9.1 -mcpu=itanium2-p9000 -mtune=itanium2-p90

49.978Intel(R) Itanium2-p9000 CPU 1598MHz "ifort9.1 -mcpu=itanium2-p9000 -mtune=itanium2-p90

148.610

Intel(R) Itanium2-p9000 CPU 1598MHz "ifort9.1 -mcpu=itanium2-p9000 -mtune=itanium2-p90

661.780⑥ 00 -parallel -par_threshold0 -static" & "setenv OMP_NUM_THREADS 4"

Intel(R) Itanium2-p9000 CPU 1598MHz "ifort9.1 -mcpu=itanium2-p9000 -mtune=itanium2-p90

1340.150⑥ Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -Kfast -Qt -Et"

170.916⑧ tatic" & "setenv OMP_NUM_THREADS 1"⑧ tatic" & "setenv OMP_NUM_THREADS 2"⑧ nc=2,parallel -x100 -static" & "setenv OMP_NUM_THREADS 1"⑥ 00 -static"⑥ 00 -parallel -par_threshold0 -static" & "setenv OMP_NUM_THREADS 1"⑥ 00 -parallel -par_threshold0 -static" & "setenv OMP_NUM_THREADS 2"Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -248.665

Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -902.400

Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -Kfast,parallel_strong -1290.110

Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -x100 -Kpreex,predicat

150.560

Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -x100 -Kpreex,predicat

131.770

Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -x100 -Kpreex,predicat

132.110

Intel(R) Itanium2-p9000 CPU 1598MHz "frt（富士通コンパイラ） -Free -x100 -Kpreex,predicat

132.350⑥ Qt -Et" & "setenv OMP_NUM_THREADS 1"⑥ Qt -Et" & "setenv OMP_NUM_THREADS 2"⑥ Qt -Et" & "setenv OMP_NUM_THREADS 4"⑥ e=2,noprefetch,mfunc=2,ilfunct"⑥ e=2,noprefetch,mfunc=2,parallel,ilfunct" & "setenv OMP_NUM_THREAD 1"⑥ e=2,noprefetch,mfunc=2,parallel,ilfunct" & "setenv OMP_NUM_THREAD 2"⑥ e=2,noprefetch,mfunc=2,parallel,ilfunct" & "setenv OMP_NUM_THREAD 4"