numactl --localalloc
行う?プログラムの割り当てを、numactl --localalloc
実行されましたか?または、プログラムがローカルメモリから指定されたメモリを割り当てるたびにそれを保証しますか?
--localalloc
は、プロセスが実行されているノードのローカルプールからメモリ割り当てを強制します。
特定のプロセッサに強制的にバインドするには、--physcpubind
オプションを指定する必要があります。 localallocと組み合わせて使用すると、プロセスを強制的に指定されたノードで実行し、そのノードからのみメモリを引き出します。
--preferred
は、可能であれば特定のノードから割り当てるように指示しますが、そうでない場合はリモートメモリを使用します。
ドキュメントについての私の理解は、--localalloc
は、システムコールを行ったCPUのノードにメモリを割り当てます。これは、ワーカースレッドが個々のCPUに固定されているアプリケーションや、 TCMalloc などのスレッドごとのメモリプールを保持するmalloc
ライブラリと組み合わせて使用するとうまく機能するはずです。