英語フランス語スペイン語

Ad


OnWorksファビコン

likwid-pin - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーター上の OnWorks 無料ホスティング プロバイダーで likwid-pin を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド likwid-pin です。

プログラム:

NAME


likwid-pin - シーケンシャルまたはスレッドアプリケーションを専用プロセッサに固定します

SYNOPSIS


リクウィッドピン [-vhqipS] [-c ] [-s ] [-d ]

DESCRIPTION


リクウィッドピン シーケンシャル アプリケーションまたはマルチスレッド アプリケーションを固定するためのコマンド ライン アプリケーションです。
専用プロセッサに。 の代替品として使用できます。 タスクセットとします。 の反対
taskset にはアフィニティ マスクはありませんが、単一プロセッサが指定されています。 マルチスレッドの場合
pthread ライブラリに基づくアプリケーション pthread_create ライブラリ呼び出しがオーバーロードされています
LD_PRELOAD を介して実行され、作成された各スレッドは指定どおりに専用プロセッサに固定されます。
in コアリスト

デフォルトでは、生成されたすべてのスレッドは、呼び出しの順序でコアに固定されます。
pthread_create。 -s コマンドライン オプションを使用して単一スレッドをスキップすることができます。

OpenMP 実装では、gcc および icc コンパイラーが明示的にサポートされています。 他の人も
作業。 リクウィッドピン まだ環境変数 OMP_NUM_THREADS を設定していない場合は、環境変数 OMP_NUM_THREADS を設定します。
現在。 ピン式に存在するのと同じ数のスレッドを設定します。 を注意
pthreads では、親スレッドは常に固定されます。 たとえば、次のようにして 4 つのスレッドを作成すると、
pthread_create まだ提供する必要がある親プロセスをワーカーとして使用しないでください
num_threads+1 プロセッサ ID。

リクウィッドピン は、固定用のさまざまな番号付けをサポートします。 デフォルトの物理的な番号付けにより、
コアが使用されます。 こちらもナンバリングです likwid-トポロジ(1) 報告します。 だけでなく
ノードまたはソケット内の論理番号付けを使用できます。 N と一緒に使用する場合 (例: -c
N:0-6) コアにはノード全体にわたって論理的な番号が付けられます。 物理コアが最初に来ます。 もし
たとえば、システムに 8 コアと 16 SMT スレッドがある場合、-c N:0-7 を指定すると、すべての物理コアが取得されます。
-c N:0-15 を指定すると、すべての物理コアとすべての SMT スレッドが取得されます。 S を使用すると、次のことができます
ソケット内で論理番号を指定しますが、やはり物理コアが最初になります。 混ぜることもできます
異なるドメインは @ で区切られます。 例: -c S0:0-3@S2:2-3 スレッド 0-3 を論理スレッドに固定します
ソケット 0 のコア 3 ~ 0、ソケット 4 の論理コア 5 ~ 2 のスレッド 3 ~ 2。

沼システムのファーストタッチポリシーを採用できないアプリケーションの場合 リクウィッドピン
インターリーブ メモリの配置をオンにするために使用できます。 これにより、大幅に高速化できます。
メモリバインドされたマルチスレッドコードのパフォーマンス。 ユーザーがスレッドを固定したすべての uma ノード
インターリーブに使用されます。

OPTIONS


-v バージョン情報を標準出力に出力してから終了します。

-h ヘルプメッセージを標準出力に出力してから終了します。

-c OR OR <散布 方針>
プロセッサーの数値リストを指定します。 リストには複数のアイテムが含まれる場合があります。
カンマと範囲で区切ります。 たとえば、0,3,9、11、XNUMX-XNUMX。 論理的なものを使用することもできます
ノード内 (N) またはソケット内 (S) のいずれかの番号付け) または沼ドメイン (M )。
likwid-pin は、L プレフィックスが付いた cpuset 内での論理ピン接続もサポートします。 もし、あんたが
このオプションを省略すると、likwid-pin はスレッドをノード上のプロセッサに固定します。
最初に物理コアを使用します。 スレッド式の使用の詳細については、以下を参照してください。または
分散ポリシー

-s
スキップマスクをXNUMX進数で指定します。 設定された各ビットに対して、対応するスレッドは次のようになります。
スキップしました。

-S 指定されたスレッドリストに属するすべての ccNUMA メモリ ドメインがクリーンアップされます
走る前に。 Linux 上のファイル バッファ キャッシュの問題を解決できます。

-p 論理ピンニングに使用可能なスレッド ドメインを出力します。 組み合わせて使用​​する場合
-c を指定すると、物理プロセッサ ID が標準出力に出力されます。

-i 固定に関与するすべての NUMA ノードにまたがるインターリーブに NUMA メモリ ポリシーを設定します

-q 出力なしのサイレント実行

-d
物理プロセッサリストの出力に使用する区切り文字を設定します (-p & -c)

実施例


1. 標準 pthread アプリケーションの場合:

リクウィッドピン -c 0,2,4-6 ./myApp

親プロセスはプロセッサ 0 に固定されます。スレッド 0 はプロセッサ 2 に、スレッド 1 はプロセッサ XNUMX に固定されます。
プロセッサ 4、スレッド 2 からプロセッサ 5、スレッド 3 からプロセッサ 6。さらに多くのスレッドが存在する場合、
プロセッサー・リストで指定されたものよりも作成された場合、これらのスレッドはプロセッサー 0 に固定されます。
後退する。

2. gcc OpenMP の場合、スレッドの数と同じ数の ID をプロセッサ リストに指定する必要があります。

OMP_NUM_THREADS=4; リクウィッドピン -c 0,2,1,3 ./myApp

3. スキップ マスクを指定することで、固定を完全に制御できます。 例えば
次のコマンドは、スレッド 1 の固定をスキップします。

OMP_NUM_THREADS=4; リクウィッドピン -s 0x1 -c 0,2,1,3 ./myApp

4. -c スイッチは、次のような特定のアフィニティ ドメイン内のスレッドの定義をサポートします。
NUMA ノードまたはキャッシュ グループ。 利用可能なアフィニティ ドメインは、-p を使用して取得できます。
スイッチを使用し、コマンドラインにそれ以上のオプションはありません。 共通のアフィニティ ドメインは N です。
(ノード全体)、SX (ソケット X)、CX (キャッシュ グループ X)、および MX (メモリ グループ X)。 複数
アフィニティドメインは@で区切って設定できます。 各ソケットに 2 つのスレッドを固定するには
2ソケットシステムの場合:

OMP_NUM_THREADS=4; リクウィッドピン -c S0:0-1@S1:0-1 ./myApp

5. -c スイッチの別の引数定義により、スレッドを次のように固定できます。
E:N:4:1:2 のような式に変換します。 構文は E: :
スレッド>(: : )。 この例では、8 つのスレッドと 2 つの SMT スレッドをピンで固定します。
SMT 4 マシン上のコア:

OMP_NUM_THREADS=4; リクウィッドピン -c E:N:8:2:4 ./myApp

6. -c スイッチの最後の代替手段は、スレッドを自動的に分散させることです。
アフィニティドメイン。 たとえば、スレッドをすべてのメモリドメインに分散させるには、
システム:

OMP_NUM_THREADS=4; リクウィッドピン -c M:散布 ./myApp

onworks.net サービスを使用してオンラインで likwid-pin を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad