重複の可能性:
CPU アフィニティ
私は Linux で実行しており、2 つの特定のプロセッサを設定して 2 つのアプリケーションを並行して実行する (つまり、各プロセスを異なるコア/CPU で実行するように設定する) C++ プログラムを作成したいと考えています。C++ でプロセッサ アフィニティ ツールを使用したいと考えています。誰でもC++コードを手伝ってください。
重複の可能性:
CPU アフィニティ
私は Linux で実行しており、2 つの特定のプロセッサを設定して 2 つのアプリケーションを並行して実行する (つまり、各プロセスを異なるコア/CPU で実行するように設定する) C++ プログラムを作成したいと考えています。C++ でプロセッサ アフィニティ ツールを使用したいと考えています。誰でもC++コードを手伝ってください。
コマンドラインからtaskset(1)を使用するか、コード内からsched_setaffinity(2)を使用できます。
例えば
#ifdef __linux__ // Linux only
#include <sched.h> // sched_setaffinity
#endif
int main(int argc, char *argv[])
{
#ifdef __linux__
int cpuAffinity = argc > 1 ? atoi(argv[1]) : -1;
if (cpuAffinity > -1)
{
cpu_set_t mask;
int status;
CPU_ZERO(&mask);
CPU_SET(cpuAffinity, &mask);
status = sched_setaffinity(0, sizeof(mask), &mask);
if (status != 0)
{
perror("sched_setaffinity");
}
}
#endif
// ... your program ...
}
sched_setaffinityまたはpthread_setaffinity_npを呼び出す必要があります
この質問も参照してください