libtool は実質的に *.so (ウインドウズで言う所の *.dll のようなもの)をビルドする書式を共通化するためのものだけど、
./configure を生成する autoconf, automake は、システムのタイプを判断する作業から、プログラマーを開放してくれるから、使った方が便利。
面倒くさいのでもう343のように詳しくは書かないが、(どうせ誰かが書いてくれるだろう。)
例えば、引数で受け取った画像を拡大縮小して、ファイル出力するツール|ライブラリを書く場合。
画像処理は(たとえば単純にバイリニアだとして)、
画像をブロック毎に分割して処理を行えば、完全に並列処理できる類の問題だよな?(アムダールの法則の1/(F-(1-F))のFが非常に小さい状態)
だからスレッドに分割して、多コアに割り当てて、一気に高速計算するべき。
この際に、無駄なスレッドを作ると、逆に速度が遅くなる。
例えば、プロセッサのコア数が4だとしたら、スレッドも4個にするのが最も効率が良い。(コア数が4なのにスレッドを8個とか作っても、無駄だし、スイッチングロスで逆に遅くなる)
このプロセッサー数を、実行時に判断することもできるのだが、それだとビルド時の決め打ちによる強力な最適化を書くことができない。
そこで、定数としてビルド時にコア数を知っとくことは、性能を追求する場合において、とても有用。
そこで、ビルド時にコア数を知りたいという要求が出てくるのだが、この「コア数を知る」という方法が、OSやCPUなどによって、それぞれ全然変わってくる。
これに全パターン対応するMakefileを書くのは、非常に負担となるので、ここを共通の書式で自動化してくれるのが autoconf の役割。
たとえばプロセッサー数ならば configure.in に AX_COUNT_CPUS と一行書いておけば、(もし指定してあれば)config.hに #define CPU_COUNT 4 等のようにマクロ定義される。これを利用してコードをを最適化できる。
(AX_COUNT_CPUSのm4マクロによって(autoconf archive要インストール))
CPU数に限らず、ベクトル演算のサポートの有無など、事前に調べて最適化に有用な情報を、容易に得る手段として、autoconfは非常に便利なので使った方がいい。
autoconfで実行環境情報を積極的に得るようにすれば、プログラム最適化の幅が広がるはず。
探検
UNIXプログラミング質問すれ Part10
■ このスレッドは過去ログ倉庫に格納されています
353デフォルトの名無しさん
2012/02/21(火) 00:54:44.67■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★6 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- ナイツ塙が指摘のローソンコーヒーカップ、ロゴ「L」で誤解生みデザイン変更へ 在庫使い切る3か月後にリニューアル [muffin★]
- 政府、株式の配当など金融所得を高齢者の医療保険料や窓口負担に反映する方針を固めた [バイト歴50年★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【悲報】中国→日本行きの航空チケット、高市有事の影響で50万人分がキャンセルされる [834922174]
- 高市早苗「……なんて言ってみたw」中国「なんだ、言ってみただけかw」👈これで全部元通りになるという事実 [782460143]
- 【悲報】早速高市首相のせいで全国の民泊でキャンセルラッシュwwwwwwwwwwww 経営者も嘆き「こんな事は初めてだ…」😲 [871926377]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- んなっしょい🍬禁止🈲のお🏡
- 映画「ゼルダの伝説」、リンクとゼルダ姫が白人になってしまう。日本のものは日本人だろうが!! [592058334]
