ここは個人的な備忘録です。テキトーかつ適当が目標。

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
今度はRedHat7.2を入れてみた。

RedHat Linux 7.2 インストールガイドを参考にした。

まず、別マシンでISOファイルを落としてくる。
例えばここ。(理研さん)

次にブートフロッピーを用意する。Windowsマシンでのやり方は上記インストールガイドにあった。

Linuxマシン上でやるときは、適当なところにboot.imgを置いて
$ dd if=./hoge/boot.img of=/dev/fd0
$ syslinux /dev/fd0
などとすればおk

あとはガイドどおり道なりにできる。


ifcfg-eth0でIP指定して、networkサービスを再起動しても、すぐにはあたらしいIPは有効にならないみたい。マシン自体を再起動すればIPの変更も反映される模様。後で調べよう。
一応インストールできたのでまとめてみる。

マシンはLavieNX LW40H/8 CPUはCeleron 400Mhzで、メモリは192MB、HDDは6GB。本体にNICはついていないので、PCMCIAのカード(BUFFALO LPC4-CLXL)を外付けした。

Fedora7のインストール方法は
●DVDからブートしてそのままインストール
rescuecdからブートしてネットワークインストール
●Livecdから直接Fedora7を起動して、そこからHDDにインストール

などが考えられるが、今回は3番目の方法をとった。理由は、このマシンにはDVDが読めるドライブがついていないことと、rescuecdから起動した段階ではNICが認識されないが、前回のFedora6のときに「OSさえ起動してしまえば、NICの問題に対処する方法はいろいろある」と踏んだため。

Fedora 7にはLive CD版も用意,デスクトップ画面からのインストールも可能に(ITpro)
の記事を参考にした。

以下手順。
まず、別マシンでLivecdを拾ってきてCDに焼き、LaVieNXに突っ込んでFedora7を起動。
NICを確認してみると、ちゃんと認識されていてDHCPからIPももらえていた。いい塩梅。

さてGUIからインストーラのアイコンをクリックしても起動しない。CD-ROMドライブがしばらくガチャガチャいうものの、そのうち黙ってしまう。そこで端末上で
$ su -
# telinit 3
とやってGUIから抜け、その状態で
# /usr/bin/liveinst
でインストール開始。「メモリが少ないからテキストモードでインストールするよ」という趣旨のメッセージが出て、あとは道なりにインストールできた。
(追記:# /usr/bin/liveinst --text --lang=ja とすればテキストモードかつ日本語でインストールできる)
また、X環境でコンソールに移行させるにはCTRL+ALT+F1で、コンソールからXに復帰させるにはCTRL+ALT+F7。
dfコマンドでディスクの使用量を見てみたら、2GBちょっと食っている。残りは3.5GB位で心もとないが仕方ない。

Livecdからのインストールだとオプションパッケージの設定が出てこなかったような気がするのだが、これはどうなのだろう。(追記:出てこないのが正解でした)

あれ?yumでアップデートできないorz
みてみたらNICが認識されていない模様。前と同じようにifcfg-eth0にcheck_link_downに関する記述を入れたら無事認識。yumも実行できた。

ついでにnamedも起動していなかった。必要なときはpirutからDNS関係を追加し、
$su -
#service named start
#chkconfig named on
でおk


必要そうなツールのインストール
# service yum-updatesd stop
# yum install rsync sed tcl wget
# service yum-updatesd start


IPv6関係で動作が遅いときは
PCにLinuxをインストールする
が参考になる。要点だけ書くと
$su -
#vi /etc/modprobe.conf
で、このファイルの末尾に
alias net-pf-10 off
alias ipv6 off
を追加。
#vi /etc/wgetrc
で、ファイルの末尾に
inet4-only = on
read-timeout = 20
を追加。で、その後にマシンを再起動。



Fedora7のDVDのイメージやrescuecdのありか(理研さん)
Fedora7のLivecdのありか(理研さん)

追記
タイトル修正しました。Fedora Core7 → Fedora7
前回と同じマシンにFedora7を入れることにした。

どうやらCD-ROM用のISOファイルはないらしい。とりあえず
●DVDからインストール
●rescuecdからブートして、ネットワークインストール
を考えたが、このマシンはDVDROMはついてないので、前者は不可。後者を試したら、例のNIC(BAFFALOのLPC4-CLXL)が認識されない。(ドライバが見つからない、と怒られる)

困ったのでぐぐってみたら、LiveCDでとりあえずFedora7を起動させることができる模様。しかもその状態からハードディスクへインストールもできる、とある。

いったんOSを起動させてしまえば、後は前回同様にNICを認識させることはできそうだ、と踏んでさっそくLiveCDから起動してみた。

重い。

が、うまい具合にNICはすでに認識されていたので、「Install to Hard Drive」のアイコンをダブルクリック。しばらくCD-ROMドライブがガチャガチャいっていたが、そのうち静かになって、結局インストールは始まらなかった orz

時間切れになったので、続きはまた後で考えよう。
何だろう、メモリ不足か。

コマンド自体は /usr/bin/liveinst にあるので、あとでテキストインストールでも試してみよう。


isoファイルはここからもらってきた↓
理研のサイト


追記
タイトル修正しました。Fedora Core7 → Fedora7
あまっていたノートPC(LavieNX lw40h/8)にFedoraCore6をインストールしてみた。
NICはBAFFALOのLPC4-CLXL。調べてみるとコイツはなんだか曲者っぽいので心配。

メモリは192MBしか積んでいないので、テキストインストールになる。一通りインストールが終わった後、再起動してインストール後の設定を行うところで文字化け発生。ちょっとあせるが、
インストール完全ガイド Fedora Core 6(テキスト・インストール編)
によると

また,日本語環境を指定した場合は,文字化けが発生することがあります。このような場合は,[Tab],[Enter]キーの順に入力することで Setup Agentを終了できます。その後,ログインをした後,「LANG=en.US setup」と実行することで文字化けを起こさずに設定が行えます。

とのことなので一安心。でもstartxしたら、各所で文字化けが発生しているので困る。当面はGUIは使わないのでとりあえず放置。最初から英語でインストールすればよかったのか orz

さて問題のNIC。とりあえずifconfigしても、IPは振られている形跡はなし。ぐぐるとやっぱりトラブルの報告があがっているので萎える。どうもpcmciaがらみでのようだ、と思って身構えたが、自分のマシンでservice network restartしてみると、「Determining IP information for eth0... failed; no link present. Check cable?」とでた。なんだ、あと一息っぽい。エラーメッセージで調べると、VMWare上のRed Hat Linux 9でdhcpがうまく行かないが丁度たまたまピンポイントだった。
うちも手動でdhclientするとIPがもらえたし、同じ対処法でうまく対処できた。感謝。

具体的には、ifcfg-eth0にcheck_link_downに関する指定を入れるとよい。

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
check_link_down () {
return 1;
}


要はDHCPでIPをもらうときに、常にリンクしていることにする、という指定。実際うちの場合も、NICのリンクのランプはついていたのでこれでよかったようだ。今回の原因究明はあとにする。


関連コマンドや設定ファイルの覚え書き。
ifconfig
dhclient
lsmod
lspci
modprobe
depmod
rpm -q pcmciautils

/etc/hosts
/etc/modprobe.conf
/etc/pcmcia/config.opts
/etc/sysconfig/hwconf
/etc/sysconfig/network-scripts/ifcfg-eth0
/etc/sysconfig/network

/proc/devices
/proc/ioports
/proc/pci

/var/log/messages

「はじめての並列プログラミング」ホームページ

このページは、湯浅・安村・中田共編「並列プログラミング」 (共立出版bit別冊、'98.5 発行)の付録部分のWEb版です。

ページの下の方にはMPIやOpenMP、HPFなどへのリンクがたくさん張られている。高密度。


tueda_wolfの日記 2006-11-02
コンピュータアーキテクチャ 馬場敬信著が紹介されている。


はじめての並列プログラミングはじめての並列プログラミング
(1999/07)
湯浅 太一、 他

商品詳細を見る
Cell Broadband Engine™上のプログラミングがらみ。

Cellの開発環境についてはこれ↓
IBM Cell Broadband Engine Software Development Kit

SCEI↓
Cell Broadband Engine™
この中で技術資料が公開されている。利用規約に同意してからアクセスする形になっているので、直リンはしない。この中にチュートリアルがいくつかあった。
Cellプログラミングチュートリアル入門編
CellプログラミングチュートリアルSIMD編
Cellポーティングチュートリアル
これらのチュートリアルは、1つずつステップ分けして丁寧に説明してある。
エミュレータの導入方法も説明されている。

PLAYSTATION®3 Linux Information Site

次世代マルチコアプロセッサCellとその上で動作するLinuxの普及と利用促進を目的とする情報公開と情報交換のためのサイトです。

この中にはCellプログラミングに関する記事がたくさん載っている。
Cellプログラミングチュートリアル
Cellプログラミングのレシピ
体系的に書かれている印象。


解説記事
【ISSCC 2005 Vol.3】Cellの中枢“SPE”の仕組みと、気になるPlayStation3の消費電力――ISSCCのセッションから読み解くCellプロセッサーの詳細 その2

性能分析に有用な性能監視ツールOProfileを見つけたのでメモ。CPUのイベント(キャッシュミスなど)を計測することができるらしい。


OProfileのサイト
http://oprofile.sourceforge.net/


Linux Kernel Profiling HOWTO
http://www9.ocn.ne.jp/~puppet/docs/Linux-Kernel-Profiling-HOWTO/x86.html
↑具体的な使い方が載っている


コードを読むな、理解しろ(ユメのチカラ)
http://blog.miraclelinux.com/yume/2006/10/post_e3d6.html
↑ソースから、キャッシュミスの多発している行を特定するのにOProfileを活用。


http://blog.miraclelinux.com/yume/2007/08/post_89da.html
↑こっちはチューニングの話。関連する記事へリンクが張ってある。まずは定量的な時間測定をしてから原因を特定をする、という手順。

ロック競合の場合、CPUやIOはまだまだ余裕があるのにスループットが出ないなどの現象がでたりする。

なるほど。マルチスレッドで書くときなんかはこの辺も気にしないといけないのかな。


Linux Kernel 2.6.18とCache Pollution Aware Patch
http://blog.miraclelinux.com/yume/2006/09/linux_kernel_26_2c2c.html
↑こちらはLinuxのカーネルで、キャッシュミスの多発している部分を特定してパッチを作成した話。この場合は、OProfileを用いてcache pollution(キャッシュ汚染)多発部位を厳密に特定→キャッシュバイパス命令をそこに挿入、という方針。


キャッシュをバイパスをするとなぜ速くなるのか?
http://d.hatena.ne.jp/hyoshiok/20051101
↑こちらはキャッシュのバイパスに付いての考察。ReadのときとWriteのときの動作を考察している。コメント欄でmove non-temporal命令が紹介されている。

move non-temporalについてググってみた。intelのpdfファイルの中の
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol2A_i.pdf
ftp://download.intel.co.jp/jp/developer/jpdoc/24547103_j.pdf
によると
MOVNTDQ (void_mm_stream_si128 ( __m128i *p, __m128i a))
MOVNTI   (void_mm_stream_si32 (int *p, int a))
MOVNTPD (void_mm_stream_pd(double *p, __m128i a))
MOVNTPS (void_mm_stream_ps(float * p, __m128 a))
MOVNTQ  (void_mm_stream_pi(__m64 * p, __m64 a))
がこれに該当する。
以下、C言語を念頭に。

確保、開放時に以下のものの対応が取れていることを確認する。
●先頭アドレス
●大きさ
●型


ダングリングポインタ(dangling pointer)がないかどうかのチェック。
↓にあるように、ダングリングポインタは危険
セキュリティの深刻な脆弱性につながるダングリングポインタ(TechTarget)
http://techtarget.itmedia.co.jp/tt/news/0711/01/news02.html
メモリ管理の手段として「スマートポインタ」が紹介されいている。
また、ダングリングポインタの回避策として、「トゥームストーン方式」や「ロックアンドキー方式」が紹介されている。


ダングリングポインタの発生パターンは、以下のようなものが考えられる。
●普通に解放後に参照した。(freeするのが早すぎた)
●同じ領域を複数のポインタが参照しているときに、いくつかは開放したものの開放し忘れたポインタでアクセスしようとした。
●マルチスレッドで書いているときに、領域確保する前に別スレッドがそこにアクセスしようとした。
など。


↓にはLinux上でのメモリ管理の話がある。メモリの使用状況の調査、消費量の多いプロセスの絞り方、メモリリークの検出、対策が紹介されている。
Linux のメモリー管理(メモリ-が足りない?,メモリーリークの検出/防止)
http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html
メモリリークの検出方法として
* free, top か ps で使用メモリが急速に増大していないか確認
* Boehm GC を leak detector として使う
* ccmalloc
* dmalloc
* mpatrol
が紹介されている。


memprofはLinux上で動作するGUIのメモリプロファイラ。以下のページに簡単な使い方とともに紹介されいている。
Cプログラミングのメモ
http://people.redhat.com/otaylor/memprof/
こういった調査の記事は、IDC Japanがソースになっていることが多いみたい。

2006年の国内サーバ市場は前年比マイナス3.7%の6667億円に--IDC Japan調べ CNET Japan Staff 2006/11/02 20:37
http://japan.zdnet.com/research/story/0,3800079402,20299907,00.htm

2007年度上期 PCサーバ出荷調査報告 ノークリサーチ 2007/12/06 00:00
http://japan.zdnet.com/release/story/0,3800075480,00024948p,00.htm

<07年度上期 PCサーバ市場のポイント>  
◆07年度上期PCサーバ市場(台数)は、全般的に伸び悩み、「踊り場」市場へ
 -出荷台数は対前年比5.0%減、256,700台
 -出荷金額は対前年比5.7%増、1,452億円
 -景気の減退感続く。経産省発表の設備投資指数も2期連続(4月-6月、7月-9月)のマイナス基調
◆メーカシェアはNECがトップ。NEC、HPの2強でのマッチアップ
 -トータルシェアではNEC。ブレードシェアではHP。2社が抜け出す
 -前期のような大型案件なく、官公庁、公共系の需要はあったが、民間市場の動きが鈍い
 -期待のブレードは38%の伸びを示す。100V対応で徐々に中堅・中小企業へ
 -07年度トータルでも若干のマイナス成長となる。「守り」から「攻め」の導入は08年度以降か?





インテル、Itaniumプロセッサからx86ソフトウェア用回路を廃止へ 文:Stephen Shankland(CNET News.com) 翻訳校正:河部恭紀(編集部) 2006/01/20 12:20
http://japan.zdnet.com/oss/story/0,3800075264,20094831,00.htm


IDC調査、x86サーバは2008年に全64ビット化--2005年に32ビットを逆転 日川佳三(CNET Japan編集部) 2005/03/26 16:24
http://japan.zdnet.com/news/hardware/story/0,2000056184,20081661,00.htm?tag=zn.lf.rel.story


ブレード・サーバ導入の機は熟したか 将来展望と企業ユーザーの導入メリットから考察する(2007年05月15日)
http://www.computerworld.jp/news/hw/64229.html

ブレード・サーバがガートナーの統計データに初めて登場したのは2002年のことである。それから5年近くが経過した現在、ブレード・サーバは、サーバ市場の主力製品の座に押し上げられつつある。では、このブレード・サーバは、はたして企業ユーザーにどんなメリットをもたらすものなのだろうか。本稿では、ブレード・サーバの進化の過程を整理しつつ将来を展望することによって、企業ユーザーにとってのメリットを明らかにしたい。

亦賀忠明
ガートナー ジャパン リサーチ/ITインフラストラクチャ担当バイスプレジデント

20101118追記:
Programming Labさんから移転のご連絡を受けましたのでリンク貼り替えました。
ついでにメンテも。リンク切れは可能な限り移転先(もしくはWeb Archive)を追いかけました。
PDFもWeb Archiveに収録されたりするのな。なんとなく意外。


gccもVer4くらいから自動ベクトル化に対応。コンパイルオプションとして-O2などと同時に-ftree-vectorizeをつける。


gcc-4.x での SIMD 命令サポート
http://jr0bak.homelinux.net/~imai/pukiwiki/pukiwiki.php?Linux%2Fmisc%2Fgcc-4.x%20%A4%C7%A4%CE%20SIMD%20%B1%E9%BB%BB%A5%B5%A5%DD%A1%BC%A5%C8

GCCの機能拡張とベクトル演算
http://www.wakayama-u.ac.jp/~chen/gccxmm.htm


【C++】高速化手法【SSE】
http://pc11.2ch.net/test/read.cgi/tech/1130349336/
hibari.2ch.net/test/read.cgi/tech/1130349336/
Cマガジン2005年10月号に「最適化コンパイラの効率的なパフォーマンス向上」という特別記事がある。
http://www.cmagazine.jp/contents/200510.html
www.jbook.co.jp/p/p.aspx/1847006/s/
Auto-vectorization in GCC
http://gcc.gnu.org/projects/tree-ssa/vectorization.html
MMX SSE 3D NOW!のプログラミング
http://pc11.2ch.net/test/read.cgi/tech/1085749218/
logsoku.com/thread/pc12.2ch.net/tech/1085749218/

821 名前: デフォルトの名無しさん 投稿日:2009/12/08(火) 12:02:31

イントリンシック命令の解説がなかなか見つからず探し回ってたら
インテルコンパイラの解説がよい感じだった

インテル(R) C++ コンパイラー・ユーザー・リファレンス・ガイド
ttp://www.issp.u-tokyo.ac.jp/super/manual/system-b/Intel_Cdoc110/main_cls/index.htm

ヘルプファイルがあるらしいので探したら

日本語翻訳版ユーザー・ドキュメントのインストールについて (Windows* OS)
http://www.intel.com/software/products/compilers/docs/Intel_translated_11_documents_Windows.htm

ファイルが見つからない…とファイル名で検索したら以下のところで見つけた。

インテル(R) C++ コンパイラ Windows 版 日本語マニュアル 無料ダウンロードサービス
ttp://www.xlsoft.com/jp/products/download/intelccmanualdown.html


日本語技術資料のダウンロード
http://www.intel.co.jp/jp/download/index.htm Intel系CPUの資料が大量においてある。以下はその中から抜粋。

AP-943 インテル潤・アーキテクチャー (IA) 浮動小数点ユニット (FPU)、ストリーミング SIMD拡張命令 (SSE)、ストリーミング SIMD 拡張命令 2 (SSE2) を使用した浮動小数点算術演算
http://download.intel.com/jp/developer/jpdoc/w_fp_precision_j.pdf 

AP-941 ストリーミング SIMD 拡張命令 2 (SSE2) を使用した大数の乗算の実行
http://download.intel.com/jp/developer/jpdoc/w_big_mul_j.pdf 多倍長乗算のSIMD化の話

AP-803 Increasing the Accuracy of the Results from the Reciprocal and Reciprocal Square Root Instructions using the Newton-Raphson Method
http://cache-www.intel.com/cd/00/00/04/10/41007_nrmethod.pdf 『ニュートン・ラフソン法を使用した逆数命令および逆数の平方根命令の結果の精度の向上』資料番号 243637
http://softwarecommunity.intel.com/articles/eng/1818.htm の

IA-32 インテル潤・アーキテクチャソフトウェア・デベロッパーズ・マニュアル上巻
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol1_Online_i.pdf にMMXやSSEの各テクノロジでのレジスタや命令セットの説明や、それぞれのテクノロジの間の互換性がまとまっている。有用。
IA-32 インテル潤・アーキテクチャソフトウェア・デベロッパーズ・マニュアル中巻
http://download.intel.com/jp/developer/jpdoc/IA32_Arh_Dev_Man_Vol2B_i.pdf の「機能的に同等のインテル潤・/C++ コンパイラ組み込み関数」の章にSIMD命令と機能的に同等なコンパイラの組み込み関数が列挙されている。

Extending the World’s Most Popular Processor Architecture
http://cache-www.intel.com/cd/00/00/32/26/322663_322663.pdf SSE4関連のドキュメント
移転した模様:download.intel.com/technology/architecture/new-instructions-paper.pdf


SSE2による浮動小数演算の仕組みと検証(CodeZine)
http://codezine.jp/a/article/aid/458.aspx
http://codezine.jp/a/article/aid/458.aspx?p=2 には、各CPUが持っているSIMD命令の種類の一覧表、SSE2のいくつかの命令セットが紹介さいていて、簡単なコード例が載っている。ただし性能的にFPUとの差が出るところまでは行かなかった模様。


x86拡張命令一覧表(Programming Lab)
http://krypton1.at.infoseek.co.jp/x86/x86ext.htm うまく分類され、要領よくまとまっている。やりたい処理から命令を探すことができて便利。
移転のご連絡をいただきました(2010 11/18追記):
http://krypton.pv.land.to/x86/x86ext.htm

SIMD演算テクニック(Programming Lab)
http://krypton1.at.infoseek.co.jp/x86/simdcalc.htm こちらには、SIMDの環境でのレジスタの初期化や定数の代入、いくつかの四則演算の例が載っている。整数除算も。有用。
移転のご連絡をいただきました(2010 11/18追記):
http://krypton.pv.land.to/x86/simdcalc.htm

AVX拡張命令一覧表(Programming Lab)
http://krypton.pv.land.to/x86/x86avx.htm

- SSEによる単精度の数値積分の高速化 -
http://yosirin9.hp.infoseek.co.jp/contents/no1/paper_no1_v2.htm rcpps命令の使用例あり。また、ソースコードや性能評価が書いてある。



2. MMX
http://homepage1.nifty.com/herumi/adv/adv10.html 読み込み・書き込み、加減、乗算、積和演算、比較、ビット演算、パック・アンパック演算などに付いて解説してある。
MMXテクノロジ最適化テクニック』のアンパック演算の解説にはいくつか誤りがあるらしい。

4. SSE
http://homepage1.nifty.com/herumi/adv/adv50.html 読み込み・書き込み、四則演算、比較→マスク、比較→フラグ、逆数、平方根、最大最小、型変換、ビット演算、パック演算、シャッフル演算等について解説。逆数や逆数平方根の近似式 についての解説も。

6. SSE2
http://homepage1.nifty.com/herumi/adv/adv52.html 命名規則を括り出したうえで、データ移動や型変換命令を説明してあってコンパクト。


SSE Performance Programming Apple のサイト。

8.2 SIMD並列化 COINSコンパイラ・インフラストラクチャより

SIMD Programming on x86 東京大学/国立天文台似鳥啓吾氏。4x4行列転置の例がある
こちらに移転された模様です:SIMD Programming on x86

行列の積とかsseでやってみた。 4x4行列積のSSE版。Delphi
[gccで simd mmx sse sse2]の続きを読む
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。