しげふみメモ


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

2007年12月

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はもう手放せないものになりそう。

2007年このブログおすすめジマン記事

304 Not Modified: 【TB企画】あなたのブログの中でおすすめのエントリを教えてください2007 という企画があったので、このブログのおすすめ記事を3つだけ選んでみました。

1. RHCE合格しました
RHCE(Red Hat Certified Engineer)という資格を取ろうとしている人には、それなりに読まれているかと思います。
紹介した本が時々売れてます。

2. Conserverでコンソールを管理
実際に使っているのは、ほんの一部の人だけかと思いますが。

3. ライブタイトルでlivedoor Readerでの購読者数を自動更新表示
malaさんに、隠し機能がばれた。って言われて嬉しかった。

どれもこの記事投稿時点で「rhce」、「conserver」、「ライブタイトル」でググると上位表示されてます。
でも、こんな単語で検索するのは一部の人に限られるとは思いますが。

情報がそれほど無いなかで、いろいろ調べたり試したりして書くのが好き。

ジマンパワーのおかげかな。
以下を参照。どちらもお気に入りのブログです。
第3回 ジマンパワー | WIRED VISION

自己満足(自満)や自慢を支援するジマンパワーは趣味にとって非常に重要だといえるでしょう。
ブログとジマンパワー - technophobia
とりあえずやってみる ということが大事だと思ってる。やらなきゃわかんないし。 だからフットワークの軽い人を尊敬するし、自分もそうありたいと思ってる。 端末の前でなるほど、参考になるとか思ってたって何も始まらないと思ってる。

ところで、まだ2007年中にいくつか記事を書くかもしれません。
実はそれがおすすめ記事になるかも。
ということで、少しでも気になったら RSSリーダーに登録していただけると嬉しいです。

Google Chart APIを試してみた

いろいろなグラフを作成できる Google Chart API を試してみたかったので、ある実行結果をグラフにしてみました。

Google Chart

この画像の URL は以下のようになっています。(途中で改行しています)

http://chart.apis.google.com/chart?
chs=400x250
&cht=lc
&chxt=x,y
&chd=s:_dltx012_
&chxl=0:||1000|2000|5000|10000|20000|30000|45000||1:|0|9.6|19.2|28.8|38.4|48
&chm=o,0000ff,0,1,10|o,0000ff,0,2,10|o,0000ff,0,3,10|o,0000ff,0,4,10|o,0000ff,0,5,10|o,0000ff,0,6,10|o,0000ff,0,7,10
&chco=0000ff
&chg=100,20

パラメータの意味などは以下で確認できます。
Developer's Guide - Google Chart API - Google Code

数値データをエンコードするのに、 404 Blog Not Found:Google Code Chart - 折れ線グラフうぃざ〜ど を使いました。便利ですね。

海外のジェネレータもいろいろ見てみましたが、今回のグラフを作るのには、弾さんのが一番使いやすかったです。

ところで、このグラフは何の実行結果でしょう?
単位も表示していないので難しいかもしれません。
でも、わかる人もいるかも。
ヒント:3.0*4*4

またRHCE合格しました(RHEL5で資格取得)

以前、RHEL4の時に会社のお金で RHCE (Red Hat Certified Engineer) 速習エキスパートコース + RHCE認定試験 に行かせてもらって、RHCE合格しました

その時のキャンペーンで、無料でRHEL5での試験を受けることができるというものがあり、先日RHEL5で受験して無事合格できました。

これで、RHEL7のリリースまでカレントステータスでいられることになります。

結果の詳細は以下のとおり。
前回受験した時より点数が下がってしまいました。

SECTION I:    TROUBLESHOOTING AND SYSTEM MAINTENANCE
RHCE requirements:  completion of compulsory items (50 points)
                    overall section score of 80 or higher
RHCT requirements:  completion of compulsory items (50 points)

Compulsory Section I score:                        50.0
Non-compulsory Section I score:                    50.0
Overall Section I score:                           100

SECTION II:  INSTALLATION AND CONFIGURATION
RHCE requirements: score of 70 or higher on RHCT components (100 points)
                   score of 70 or higher on RHCE components (100 points)

RHCT requirement:  score of 70 or higher on RHCT components (100 points)

RHCT components score:                             87.1
RHCE components score:                             96.4

RHCE Certification:                                PASS

試験問題や内容について書くことはできませんが、今までに調べた事や経験した事が役に立ったかと思います。

レッドハットの講習を受けずに、試験だけを受ける場合は、試験対策の参考書は以下がおすすめです。
これは私は購入していませんが、前回の試験勉強には、一つ前の版のものを購入してひととおり読み、インストールやサーバ構築、トラブルシューティングを試しました。

0072264543RHCE Red Hat Certified Engineer Linux Study Guide Exam (RH302) (Certification Press)
Michael Jang
Mcgraw-Hill Osborne Media 2007-06-18

by G-Tools

このブログの関連記事

RSS購読者は一人増えるだけでも嬉しい

ZAPAブロ〜グ2.0 で、無条件であなたのブログを読みます!(募集中)という記事があったので、トラックバックしてみます。

ZAPAさん、私のこのブログも読んでみてください。
面白いブログかどうかは、なんとも言えませんが。

トラックバックしているので、いらないかもしれませんが、一応フォーマットに沿ったものも書いておきます。

ブログ名:しげふみメモ
ブログURL:http://blog.livedoor.jp/hakin/
H.N.:しげふみ
リンク付きで紹介しても良いか:もちろんOKです
一言コメント:RSS購読者は一人増えるだけでも嬉しいです

自分のブログのページビューの増減はあまり気にしていませんが、RSSリーダーでの購読者数が増えるととても嬉しいです。
livedoor Reader購読者数のライブタイトル をブックマークツールバーに表示させてチェックしています。

現時点での主なRSSリーダーの購読者数をメモしておきます。

RSSリーダー index.rdf atom.xml
livedoor Reader 226 81
Google Reader + iGoogle 112 58
Bloglines 79 58
Fastladder 59 31
はてなRSS 40 12

また、初めてこのブログを読んだ人や、RSSリーダーに登録したばかりの人のために、はてなブックマークでの最近の注目エントリー人気エントリーのウィジェットを貼り付けておきます。
(RSSリーダーで読んでいる人は表示されていないと思うので、元記事を開いてみて下さい)


このブログの関連記事

LinuxでBIOS情報等を確認できるdmidecode

BIOS内のシステムのハードウェア情報を表示するコマンド dmidecode を最近知ったのでメモ。
dmidecode

OS稼動中にマシンのシリアルナンバーやBIOSのバージョンを調べることができます。
どのメモリスロットにどんな容量のメモリが入っているかも分かります。
その他、いろいろなハードウェア情報が表示されます。

シリアルナンバー等のユーザーを特定される可能性のある情報が含まれるため、公開する場合は注意が必要です。

Red Hat系だと kernel-utils パッケージ、SUSEだと pmtools パッケージに含まれるようです。

最近のバージョンだと、-s オプションでキーワードを指定したり、-t でタイプを指定できます。

[root@linux ~]# dmidecode -s bios-version
S5000.XXXXXXXXXXXXXXXXXXXXXXXXXXX

[root@linux ~]# dmidecode -s system-serial-number
XXXXXXXX

[root@linux ~]# dmidecode -t memory
# dmidecode 2.7
SMBIOS 2.5 present.

Handle 0x0036, DMI type 16, 15 bytes.
Physical Memory Array
        Location: System Board Or Motherboard
        Use: System Memory
        Error Correction Type: Multi-bit ECC
        Maximum Capacity: 32 GB
        Error Information Handle: Not Provided
        Number Of Devices: 8

Handle 0x0038, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x0036
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: 1
        Locator: ONBOARD DIMM_A1
        Bank Locator: Not Specified
        Type: DDR2
        Type Detail: Synchronous
        Speed: 667 MHz (1.5 ns)
        Manufacturer: 802C
        Serial Number: XXXXXXXX
        Asset Tag: Not Specified
        Part Number: XXXXXXXX
以下略

ちなみに、上記は Intel S5000系のマザーボードに Micron の FB-DIMM を使っているシステムの出力です。(念のため一部伏字)

SNS型英語学習サイトのiKnow!

最強Web2.0サービス「iKnow」登場、ただし英語勉強したい人だけ!:[mi]みたいもん!で知った無料英語学習サイト iKnow! に私も登録してみました。

iKnow!

SNSで知人と交流しながら英語学習ができるサービスです。
まさに e-learning と SNS の融合。
e-learning 2.0 と言えるかもしれません。

もちろん、SNSの機能を使わずに、一人で学習していくことも可能です。

レッスン進捗や学習パフォーマンスなど、細かなデータを保存します。その結果、あなたの苦手なところ、間違えやすい点などを全て管理し、常に最適な学習スケジュールを自動的に設定してくれるのです。

Dictationもはまります。
ニンテンドーDS の「えいご漬け」もやりましたが、私はこっちのほうが好き。

ディクテーションで学習することによりリスニング力、ライティング(タイピング)スキルがさらにあがり、トータルな英語力がアップ!初めは文章の中の穴埋めを行い、最後は全文をタイプします。

あと、学習した部分の音声をポッドキャストとしてダウンロードできるのが良いですね。
通勤通学の時間などに聴いて復習できます。

学習したコースの内容(それぞれのアイテム、例文の音声)が1つのポッドキャストファイルとしてダウンロードできます。 ポッドキャストの内容は、あなたが学習しているアイテムの内容と同期しているので、まさに世界でたったひとつのオリジナル番組です。

コースもいろいろあるので、自分に合ったものが選べます。
基礎英語、TOEIC、海外旅行、ビジネス英語などなど。
私はとりあえず TOEICチャンネルの基礎コースをやってみることにしました。

ちなみに、バリューコマースでアフィリエイトできるようになっていたり、 自分の学習パフォーマンスをブログに表示できるようなウィジェットも用意されています。

【iKnow! /アイノウ】TOEIC、基礎英語からビジネスまで、無料でオンライン学習

エンジニア転職情報
このBlog内を検索
プロフィール

しげふみ

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

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

  • ライブドアブログ