マルチスレッドのスレッド数について

  • この会議室に新しいトピックを立てることはできません
  • この会議室ではゲスト投稿が禁止されています

投稿ツリー


前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2017/11/26 11:11 | 最終変更
品川地蔵  管理人   投稿数: 236
 SimpleDEMViewerやジオ地蔵では、地図画像の描画や画像の作成などでマルチスレッドを使用して高速化しています。ただし増やしすぎても返って遅くなるので、プロセサ数を見て設定しています。ターミナルで hostinfo と打ち込んだ時に表示されるプロセサ数というものがありますが、下の3行目に表示されるlogically availableなプロセサ数を元に決めています。この値が4以下ならその値を、5以上ならその半分の値を採用しています。通常5、6、7というのは無いので現在のほとんどのマックでは4となります。(Mac proではもっと大きくなることがあります)
 Kernel configured for up to 4 processors.
2 processors are physically available.
4 processors are logically available.

 どの処理でも大量の標高データを使用する(つまりメモリの参照量が多い)ので、4以上に設定してもメモリアクセスの競合で、速くはならないだろうということで上記のようにしています。実際数分かかる展望図で実測したところでは、core i3のiMacでは4より3の方が若干速いという結果が出ています。ただしcore i5のMacBook proでは3と4でほぼ同じだったので、メモリ競合の結果なのか、i3 のハイパースレッドが遅いからなのかは判断できません。またこれ以外のマックを持っていないので、よりハイスペックなマシンでどうなるのか判断する手段を持ちません。

 テスト用にタスク数を指定できる機能を用意してあります。時間おある方は試して見てください。対象の処理は、地図ウインドウの描画、地図画像の保存、各図法画像、鳥瞰図、ステレオ画像、展望図、グレイスケールマップの作成、可視領域の描画、傾斜に拠る塗り分け描画です。
 ターミナルで次のように指定して設定を変更します。最後の数字がタスク数です。1から15の範囲で指定でき、それ以外を指定した時は無視して標準動作をします。
defaults write jp.jizoh.SDVr6 NumberOfTasks 3
15まで指定できますが、logically availableな値を超えて指定しても意味がありません。遅くなることはあっても速くなることはありません。
測定するに当たっては大きな画像でテストしないと誤差が大きくてテストにならないですね。最近のシステムではメモリ圧縮だの色々なシステムタスクが絡むので、メモリサイズと画像サイズとの関係も合わせて複雑になります。

 コマンド中の SDVr6 は SimpleDEMViewerV6 用で、ジオ地蔵V3の場合は GeoJizoh3、SimpleDEMViewerAS の場合は SDVrAS となります。
 標準に戻す場合は
defaults write jp.jizoh.SDVr6 NumberOfTasks 0
とするか
defaults delete jp.jizoh.SDVr6 NumberOfTasks
としてエントリを削除します。

--
## 品川地蔵 ##

  条件検索へ

ログイン

ユーザー名:


パスワード:





パスワード紛失  |新規登録

投稿一覧
  1. Re: ジオ地蔵 3.2.0 品川地蔵 2017/11/26 11:22
  2. マルチスレッドのスレッド数について 品川地蔵 2017/11/26 11:11
  3. ジオ地蔵 3.2.0 品川地蔵 2017/11/19 13:24
  4. iTunesのエラー表示 品川地蔵 2017/10/23 9:10
  5. 基盤地図標高変換 4.0 品川地蔵 2017/10/19 8:53
  6. Re: High Sierra と展望図 品川地蔵 2017/10/1 17:13
  7. High Sierra と展望図 品川地蔵 2017/9/29 13:29
  8. 国土地理院の湖沼データ 品川地蔵 2017/9/10 10:02
  9. Re: JAXA 世界の1秒メッシュDEMを無償公開 2017/8/28 12:38
  10. Re: JAXA 世界の1秒メッシュDEMを無償公開 品川地蔵 2017/8/27 16:42

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
Powered by XOOPS Cube 2.2 © 2001-2012 XOOPS Cube Project