しげふみメモ


おもにIT関連について、気になったことや試してみたことをメモしておきます。
Linux, Firefox, Thunderbird, Blog, Google, Amazon, Affiliate, iPod, PC, English ...

PC

HPL(High-Performance Linpack)を試してみる その1 はじめに

はじめに

以前に、XeonでLINPACKベンチマークを手軽に実行する方法という記事を書きました。
1台のシステムであれば、簡単にLINPACKベンチマークを実行することができました。

しかし、1台だけでは限界があるので、複数台で実行できる HPL(High-Performance Linpack) を試してみました。
HPL - A Portable Implementation of the High-Performance Linpack Benchmark for Distributed-Memory Computers

TOP500 Supercomputing Sites では HPL が使われているので、これで TOP500 と比較することもできます。

以前に HPL についてちょっと調べたところ、実行するには色々なライブラリを揃えたり、コンパイルしたりと結構手間がかかりそうでした。
しかし、Intelからダウンロードできるバイナリを使えば、少し設定するだけで手軽に試すことができます。

この手順について数回に分けて書いてみます。
ただし、私は数値計算の専門家ではないので、勘違いや間違いなどがあるかもしれません。
おかしなところがあれば、コメントいただけると助かります。

実行環境

2x Dual-Core Intel Xeon 5272 3.40GHz, 6MB L2 cache, 1600MHz FSB, 16GB memory(8x2GB 800MHz FB-DIMM), SLES10 SP1 のシステム 8台を 4X DDR Infiniband で接続したもので試してみました。

実行結果

設定ファイル HPL.dat については後の記事で書きますが、とりあえず実行結果を載せておきます。
ちなみに、実際に試したのは2008年4月ごろなので、使用ソフトウェアのバージョンは今後の記事で紹介するものより古いです。新しいバージョンの方がよい結果が出ると思われます。

============================================================================
HPLinpack 1.0a  --  High-Performance Linpack benchmark  --   January 20, 2004
Written by A. Petitet and R. Clint Whaley,  Innovative Computing Labs.,  UTK
============================================================================

An explanation of the input/output parameters follows:
T/V    : Wall time / encoded variant.
N      : The order of the coefficient matrix A.
NB     : The partitioning blocking factor.
P      : The number of process rows.
Q      : The number of process columns.
Time   : Time in seconds to solve the linear system.
Gflops : Rate of execution for solving the linear system.

The following parameter values will be used:

N      :  120000 
NB     :     240 
PMAP   : Row-major process mapping
P      :       4 
Q      :       8 
PFACT  :   Crout 
NBMIN  :       4 
NDIV   :       2 
RFACT  :   Crout 
BCAST  :  1ringM 
DEPTH  :       1 
SWAP   : Mix (threshold = 60)
L1     : transposed form
U      : transposed form
EQUIL  : yes
ALIGN  : 16 double precision words

----------------------------------------------------------------------------

- The matrix A is randomly generated for each test.
- The following scaled residual checks will be computed:
   1) ||Ax-b||_oo / ( eps * ||A||_1  * N        )
   2) ||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  )
   3) ||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo )
- The relative machine precision (eps) is taken to be          1.110223e-16
- Computational tests pass if scaled residuals are less than           16.0

============================================================================
T/V                N    NB     P     Q               Time             Gflops
----------------------------------------------------------------------------
W11C2C4       120000   240     4     8            3359.40          3.429e+02
----------------------------------------------------------------------------
||Ax-b||_oo / ( eps * ||A||_1  * N        ) =        0.1004820 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_1  * ||x||_1  ) =        0.0129916 ...... PASSED
||Ax-b||_oo / ( eps * ||A||_oo * ||x||_oo ) =        0.0024256 ...... PASSED
============================================================================

Finished      1 tests with the following results:
              1 tests completed and passed residual checks,
              0 tests completed and failed residual checks,
              0 tests skipped because of illegal input values.
----------------------------------------------------------------------------

End of Tests.
============================================================================

342.9GFlops 出ました。
このシステムの理論ピーク性能は
3.4GHz * 4Flop/cycle * 4core * 8node = 435.2GFlops
なので、理論値の 78.7% 出ていることになります。

TOP500との比較

2008年11月のTOP500 の500位でも12テラフロップス以上なので、TOP500には遠く及びません。
コア数だけ見ても、今回試したものは32コアで、500位は1952コアと61倍もあります。
構成がある程度似ていそうなシステムとして、372位の Cluster Platform 3000 BL460c, Xeon 52xx 3.33 GHz, Infiniband と比較すると、コア数は1344で42倍、Rmaxは15290で約44.5倍です。
ということで、TOP500に入るには桁違いに大変そうだということがわかりました。

以下、続き予定です。

  • ダウンロードとインストール
  • MPDの起動
  • HPL.datの作成
  • とりあえず実行
  • HPL.datを変更してみる
このブログの関連記事

BullZip PDF Printerの設定メモ

PDFファイルを作成可能なフリーソフト「BullZip PDF Printer」 - GIGAZINE で紹介されていた Windows 用の Freeware BullZip PDF Printer を使ってみました。

いわゆる仮想プリンタドライバとしてインストールされるので、あらゆる「印刷」コマンドが実行可能なソフトからPDFファイルの作成ができるフリーソフトです。広告を表示するソフトやスパイウェアなどは含まれていないというのがポイントで、個人利用及び商用利用が可能。パスワードで保護されたPDFファイルや品質、プロパティ、透かしなどもサポートしています。

オプションを少し変更したのでメモしておきます。

日本語ファイル名でPDFにできるように

デフォルトでは、日本語のファイル名にならないので、オプションを変更。
「一般」タブの「PDFのファイル名」を以下に変更しました。

<desktop>\<basedocname>.pdf

作成者を空白に

デフォルトでは、PDFのプロパティで作成者として Windows のユーザー名が表示されます。
なんとなく嫌なので、空白に変更。
オプションの「ドキュメント」タブの「作者」を以下に変更しました。

<env:EMPTY>

<env:xx> で環境変数 xx が指定できますが、Windows で設定していない環境変数(例えば私の場合 EMPTY)を指定すれば空白にできます。

BullZip PDF Printer はとても便利なので、今後も使っていこうと思います。

このブログの関連記事

XeonでLINPACKベンチマークを手軽に実行する方法

時間があったので、ちょっとLINPACKベンチでもやってみようかな、と思いました。

LINPACKとは、数値演算ライブラリのひとつで、これを基にしたベンチマークがLINPACKベンチマークということです。
LINPACK - Wikipedia

LINPACK ベンチマークは、LINPACK に基づいたベンチマークプログラムである。Jack Dongarra が開発したもので、工学で一般的な線形方程式系を解く速度を測定するものである。このベンチマークはシステムの浮動小数点演算性能を測定するものである。
ちなみに、 TOP500 Supercomputing Sites では、LINPACKを高度に並列化した HPL(High-Performance Linpack) が使用されているそうです。

実際にやってみようと調べたところ、色々なライブラリを揃えたり、コンパイルしたりと結構手間がかかりそう。
[2008年 12/18追記]
少しの手間で試すこともできました。
HPL(High-Performance Linpack)を試してみる その1 はじめに
[追記ここまで]
でも、クラスタ構成ではなくて1台のシステムで実行するのなら、手軽に出来るものがありました。
以下のページの下の方の Download now のリンクからダウンロードできます。
Intel Math Kernel Library 10.0 - LINPACK

Windowsや Mac OS用もありますが、Linux用を試してみます。
クラスタ構成や、TOP500と比較する場合は、Intel Optimized MP LINPACK Benchmark 10.0 for Clusters を使う必要がありますが、 ここでは手軽に1台のシステムで実行するため、Intel Optimized (SMP) LINPACK Benchmark 10.0 を使います。

展開して linpack_10.0/benchmarks/linpack/ 以下のファイルをシステムに合わせて変更します。
今回は、2x Dual-Core Intel Xeon 5160 3.00GHz, 4MB L2 cache, 1333MHz FSB, 16GB memory(8x2GB 667MHz FB-DIMM), RHEL5 のシステム1台で試しました。
実行スレッド数は自動的に搭載コア数になるようなので、搭載メモリについて気にする必要があります。
(スレッド数を指定する場合は環境変数 OMP_NUM_THREADS を設定)
Intel 64 architectureの Xeon用のインプットファイルのサンプル lininput_xeon64 の problem sizes の最大値をメモリに合わせて変更します。
サンプルの場合、16GB(45000*45000*8)のメモリが必要です。
例えば、メモリが4GBのシステムで実行する場合、22000*22000*8 で 4GB以内なので、problem sizes の最大値を 22000辺りに変更します。
詳しくは linpack_10.0/doc/userguide.pdf や xlinpack_xeon64 -e を参照してください。

今回は lininput_xeon64 を以下のようにしました。

Sample Intel(R) LINPACK data file (lininput_xeon64)
Intel(R) LINPACK data
7                     # number of tests
1000 2000 5000 10000 20000 30000 45000 # problem sizes
1000 2000 5008 10000 20016 30000 45000 # leading dimensions
4 2 2 2 1 1 1 # times to run a test
4 4 4 4 4 4 4 # alignment values (in KBytes)

これで、./runme_xeon64 で実行します。
あと、試しに5分毎に sarデータを取るために、runme_xeon64 のスクリプトを以下のようにしました。

#!/bin/bash
#
#export OMP_NUM_THREADS=4
#export KMP_AFFINITY=verbose,compact
export KMP_AFFINITY=compact
 
rm -f sardata
sar -o sardata 300 0 &
 
date
date > lin_xeon64.txt
./xlinpack_xeon64 lininput_xeon64 >> lin_xeon64.txt
date >> lin_xeon64.txt
echo -n "Done: "
date

killall sadc

結果ファイル lin_xeon64.txt は以下のようになりました。

[root@node1 linpack]# cat lin_xeon64.txt
Fri Dec 21 18:20:00 JST 2007
Intel(R) LINPACK data

Current date/time: Fri Dec 21 18:20:00 2007

CPU frequency:    2.993 GHz
Number of CPUs: 4
Number of threads: 4
Parameters are set to:

Number of tests                             : 7
Number of equations to solve (problem size) : 1000  2000  5000  10000 20000 30000 45000
Leading dimension of array                  : 1000  2000  5008  10000 20016 30000 45000
Number of trials to run                     : 4     2     2     2     1     1     1    
Data alignment value (in Kbytes)            : 4     4     4     4     4     4     4    

Maximum memory requested that can be used = 16200904096, at the size = 45000
============= Timing linear equation system solver =================

Size   LDA    Align. Time(s)    GFlops   Residual      Residual(norm)
Error: info returned = 1
1000   1000   4      0.042      15.9362  9.634515e-13 3.285617e-02
Error: info returned = 1
1000   1000   4      0.030      22.5404  9.634515e-13 3.285617e-02

〜中略〜

Error: info returned = 1
45000  45000  4      1457.819   41.6746  1.676308e-09 2.949288e-02

Performance Summary (GFlops)

Size   LDA    Align.  Average  Maximal
1000   1000   4       20.8692  22.5404 
2000   2000   4       28.9295  29.0714 
5000   5008   4       34.9187  34.9569 
10000  10000  4       37.9076  37.9362 
20000  20016  4       40.2235  40.2235 
30000  30000  4       41.0828  41.0828 
45000  45000  4       41.6746  41.6746 

End of tests
Fri Dec 21 18:58:51 JST 2007
[root@node1 linpack]# 

Error: info returned = 1 というのが気になりますが、Intelに聞いたところ以下の回答でした。とりあえず気にしないでおきます。

It is a false error- that is, the message itself is erred, not the application. If you look at the residual column, you'll see that the residual errors are small. We have found the mistake (it was an uninitialized variable) and have verified that the error message is in fact false. I do not know when this will be fixed in an update release, but we are targeting a fix soon.

[2008年 3/15追記]
l_lpk_p_10.0.004 で試した時は上記のエラーが出たのですが、l_lpk_p_10.0.2.010 では出なくなっていました。
[追記ここまで]

sarは以下のような感じ。CPUもメモリも目一杯使ってくれています。

[root@node1 linpack]# sar -f sardata
Linux 2.6.18-8.el5 (node1)      12/21/2007

06:20:00 PM       CPU     %user     %nice   %system   %iowait    %steal     %idle
06:25:00 PM       all     80.14      0.00      0.42      0.05      0.00     19.39
06:30:00 PM       all     99.97      0.00      0.03      0.00      0.00      0.00
06:35:00 PM       all     73.10      0.00      0.75      0.03      0.00     26.12
06:40:00 PM       all     99.98      0.00      0.02      0.00      0.00      0.00
06:45:00 PM       all     99.98      0.00      0.02      0.00      0.00      0.00
06:50:00 PM       all     99.97      0.00      0.03      0.00      0.00      0.00
06:55:00 PM       all     99.97      0.00      0.03      0.00      0.00      0.00
Average:          all     93.33      0.00      0.19      0.01      0.00      6.47
[root@node1 linpack]# 
[root@node1 linpack]# sar -f sardata -r
Linux 2.6.18-8.el5 (node1)      12/21/2007

06:20:00 PM kbmemfree kbmemused  %memused kbbuffers  kbcached kbswpfree kbswpused  %swpused  kbswpcad
06:25:00 PM   8760588   7532828     46.23     28260    304544   2031608         0      0.00         0
06:30:00 PM   8760464   7532952     46.23     28328    304548   2031608         0      0.00         0
06:35:00 PM     88864  16204552     99.45     14752    173636   2031608         0      0.00         0
06:40:00 PM     88616  16204800     99.46     14820    173640   2031608         0      0.00         0
06:45:00 PM     87748  16205668     99.46     14896    173668   2031608         0      0.00         0
06:50:00 PM     87624  16205792     99.46     14952    173672   2031608         0      0.00         0
06:55:00 PM     87376  16206040     99.46     15020    173676   2031608         0      0.00         0
Average:      2565897  13727519     84.25     18718    211055   2031608         0      0.00         0
[root@node1 linpack]# 

今回のシステムの理論ピーク性能は
3GHz * 4Flop/cycle * 4core = 48GFlops
なので、理論値の 86.8% 出ていることになります。結構良い数字ですね。
これを problem size と GFlops でグラフにすると以下になります。
Google Chart

先日の記事(Google Chart APIを試してみた)の答えはこれでした。
(流し直したので数値は少し違っています)

実際に試してみて LINPACK が少し身近に感じました。
簡単に実行できるので、CPUとメモリの負荷テストにも使えるかな?

このブログの関連記事

プログラムランチャーLaunchyを使い始める

Windows用のプログラムランチャー Launchy を使い始めてみました。

きっかけは以下の記事でした。
コマンド入力型ランチャー "Launchy" が更に便利にバージョンアップ (Buzzy Dizzy Biz)

愛用しているコマンド入力型のアプリケーションランチャー「Launchy」がver2.0になりました。 これはアプリケーション名などを入力することで起動させるタイプのランチャーで、Quicksilverのような...というと、一番簡単でしょうか。
Ver2.0向けの解説ページ Launchy [IT-Freak.com] もわかりやすいです。

ちなみに、Firefox拡張機能の Launchy とは関係無しです。

アプリの起動だけでなく、標準設定されているWebyプラグインを使って、デフォルトブラウザでGoogle検索することもできます。
Amazon, Yahooなど他にも登録されているのですが、英語版なので日本のを使うように設定変更しておきました。
書式はFirefoxのスマートキーワードと同じような感じです。

または、既にスマートキーワードを使っているのなら、Launchyでは何も変更しないという手もあります。
LaunchyのWebyプラグインは、デフォルトでFirefoxのブックマークも検索してページを表示できますが、ブックマークの一種であるスマートキーワードも引数付きでページ表示できるようになっています。

Firefoxのスマートキーワードについては以下を参照。
スマートキーワード - Mozilla Firefox まとめサイト
404 Blog Not Found:Firefox - スマートキーワードをSmarterに

例えば、g というキーワードで以下のURLをブックマークしてある場合。

http://www.google.co.jp/search?hl=ja&lr=lang_ja&q=%s
Launchy

[Alt] + [Space] でLaunchyを呼び出して、
g [Tab] キーワード
でFirefoxに検索結果が表示されます。

Launchyはもう手放せないものになりそう。

Adobe Readerのツールバーのメモ

PDFを見るのは普通に Windowsで Adobe Reader 8 を使っています。
昔は Acrobat Readerと呼ばれていましたね。
仕事でも、PDF形式のマニュアルや資料などを読む機会があり、Adobe Readerは結構使います。

マウスを使っている場合は、ツールバーにいろいろあると便利なので、デフォルトから変更しています。
今の状態をメモしておきます。

メニューの「ツール」から「ツールバーのカスタマイズ」で変更できます。
アイコンのグループごとであれば、ドラッグドロップで並び替えもできます。

今は以下のようになっています。(実際には横一列に並んでいます)

Adobe Reader 8 ツールバー

ページナビゲーションツールバー(全部表示)
 最初のページ
 前のページ
 次のページ
 最後のページ
 ページ番号
 前の画面
 次の画面

選択とズームツールバー
 選択ツール
 手のひらツール
 マーキーズーム
 ズームアウト
 ズームイン
 ズーム値
 幅に合わせる

ページ表示ツールバー
 (ウィンドウの幅に合わせて)連続ページ
 1ページ全体を表示
 見開きページ
 連続見開きページ

検索ツールバー

「前の画面」は目次やしおり等からページを移動した後に、元に戻る場合や、一時的に表示を拡大した後に元に戻す場合に使ったりします。
キーボードで Alt + ← としてもよく使います。

「選択ツール」は内容をテキストとしてコピペしたり、単語などをブラウザで調べる時にコピーするのによく使います。
たまに、内容のコピーを許可していないPDFもあるけど、やめて欲しいですね。

「ページ表示ツールバー」のアイコンは、PDFの内容や読み方によってその都度変更しています。

みなさんは、ツールバーはどうしていますか?
何か Tipsがあれば、教えていただけると幸いです。

ちなみに、ツールバーとは関係ないですが、PDFをブラウザ内に表示されるのは嫌いなので、 Adobe Readerの環境設定 → インターネット → PDFをブラウザに表示 のチェックボックスをオフにしています。

あと、Firefoxではアドオンの Link Alert をインストールしています。
リンク先のファイル名によって、マウスカーソルの近くにアイコンを表示してくれます。

PoderosaのフォントをConsolasに変更

Bulknews::Subtech - Consolas で知ったフォントConsolasを試してみました。
Windows Vistaにバンドルされる等幅フォントです。
私は Windows用のターミナルエミュレータにはPoderosaを使っています。 よく考えたら、仕事中は Poderosaが常に起動していて、画面を見ている時間もかなり長いです。 フォントは重要ですね。
今までは、Courier Newでしたが、 Consolasの方が気に入りました。
これから使っていこうと思います。
一応、私が行ったインストール手順をメモしておきます。
続きを読む

日本語フォント「メイリオ」インストールとStylish

Windows Vistaに搭載されるという ClearType対応日本語フォント「メイリオ」をインストールしてみました。
caramel*vanilla ? メイリオ (Meiryo)をいれてみた で知りました。
とりあえず、Firefoxだけフォントをメイリオに変更してみました。
いくつかメモしておきます。
続きを読む

静音BTOデスクトップPC

ちょっと気になった静音BTOデスクトップPCがあったので、メモ。
パソコン工房の BTO MT508SILENTicon
ノート用のインテル Celeron M プロセッサ、モバイル インテル 915GM Express チップセットで、 CPUファン無しということです。
OS込みでこの値段は、静音PCとしてはなかなかいいかも。
続きを読む

Dell PowerEdge SC430でLinuxをインストールしてみたい

デルのオンラインストアでPowerEdge SC430が安いです。
これを買ってLinuxをインストールできれば、いろいろと面白いかなと思って、少し調べてみました。
続きを読む

ノートPCにBIOSパスワードを設定して盗難抑止

ハードディスクパスワードで情報漏洩防止」 で書いたハードディスクパスワードですが、自分のノートPCで設定してみたのでメモしておきます。
自宅で使っているノートパソコンは昨年購入した HP Compaq nx9030です。 HPの場合、ドライブロック(DriveLock)と呼ばれています。
日本hpのオンラインストア「hp directplus」
日本HP Notebooks / HPならノートPC全製品にセキュリテイ機能を標準搭載!
続きを読む
エンジニア転職情報
このBlog内を検索
プロフィール

しげふみ

連絡先
連絡先
RSSリーダーに登録
Subscribe with livedoor Reader

あわせて読みたい
人気blogランキング

  • ライブドアブログ