タグ

Processor Affinityに関するSyncHackのブックマーク (6)

  • Linuxでプロセスが使用するCPUを固定する方法 - sttsのソースコードMemoブログ

    デュアルコアなCPUが、増えてきているので役に立つかもしれない、Linuxでプロセスが使用するCPUを固定する方法です。 シングルスレッド、シングルプロセスのプログラムを、最後の数クロックの性能を稼ぐときに役に立つかもしれません。*1 2008/02/15追記 わざわざコードを書かなくてもLinuxCPUの割り当てを変更するコマンドが用意されていました。 taskset [options] [mask | list ] [pid | command [arg]...] 解説 Linuxでは、sched_setaffinityシステムコールを使いプロセスが使用するCPUを指定できます。sched_setaffinityシステムコールは、Linux専用で、他のUnixでは違うシステムコールを使います。 まず、sched_getaffinityで、現状の設定を取得します。 sched_geta

    Linuxでプロセスが使用するCPUを固定する方法 - sttsのソースコードMemoブログ
  • naoyaのはてなダイアリー - sched_setaffinity(2) を使って任意のプログラムを任意のCPU上で動かす

    Linux 2.6 には sched_setaffinity(2) というシステムコールがあり、これを利用して任意のスレッドを(マルチCPU環境下で)特定の CPU で実行させることができます。http://www-06.ibm.com/jp/developerworks/linux/051028/j_l-affinity.shtml によるとリアルタイムプロセスでマネージャとなるスレッドをこのシステムコールで特定の CPU に固定する...といった応用が考えられるそうです。 へえ、と思ったのでちょっと遊んでみました。LD_PRELOAD を使って任意のプログラムを任意の CPU に固定して動かしてみます。GCC の __attribute__)((constructor))( で sched_setaffinitiy(2) を呼びます。(参考: http://0xcc.net/blog/

    naoyaのはてなダイアリー - sched_setaffinity(2) を使って任意のプログラムを任意のCPU上で動かす
  • CPU/Processor Affinity - SyncHack

    Processor Affinity (プロセッサ・アフィニティ、プロセッサ親和性) † プロセッサ・アフィニティは、以下の2通りあります。 ソフトアフィニティ ソフトアフィニティは、同一条件のスレッドやプロセスを生成する場合、なるべく同じプロセッサを使用するようスケジューリングします。同じプロセッサを使用することで、L2 cache や memory access (NUMA) を有効に利用することが出来、パフォーマンスの向上に繋がります。 ハードアフィニティ ハードアフィニティは、プロセスやスレッドに対して能動的に特定のプロセッサを割り当てる事が出来ます。複数の特殊な処理を特定のプロセスに割り当てる事で効率の良いスケジューリングを行う事を可能にします。ただし多くの場合はハードアフィニティによる独自のスケジューリングより OS のスケジューラーにプロセッサ割り当てを管理させた方が良いパフ

  • CPUID命令によるプロセッサ環境の判別

    はじめに この記事は、現在動作しているプロセッサが論理プロセッサ(ハイパースレッディングまたはデュアルコア・マルチコア)なのか、物理プロセッサ(マルチプロセッサ)なのかを検出する方法について検討します。 方針としては、特権命令(RDMSRなど)は使用せず、通常のアプリケーションからも呼び出し可能なCPUID命令を利用します。 対象読者 前回投稿した『ハードウェアDEP機能の調査』や『CPUID命令によるCPUの性能・機能の把握』に興味がある方 CPUの働き、特にCPUID命令がどのように働くのか興味のある方 プロセッサ・アフィニティーに興味がある方 必要な環境 Visual C++ version 6 SP6で開発を行っています。 サンプルプログラムは、Visual C++ 2005 Express Edition 日語版+Platform SDK環境でも構築できることを確認しています。

    CPUID命令によるプロセッサ環境の判別
  • Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する)

    解説 ハイパー・スレッディング(Hyper Threading:HT)やマルチコア、マルチプロセッサ・システムなど、複数のスレッドを、(擬似的ではなく、当に)同時に実行させることのできるシステムが増えている。Windows OSはマルチプロセッサ・システムに対応しており、これらのプロセッサが装備されていると、複数のスレッドを各CPUTIPSでいう「CPU」とは、1つのスレッドを実行する処理エンジンのことを指すものとする。HTなら2 CPU相当と数える)に自動的に割り振り、効率的に処理を実行する。 非常に便利で有用な機能であるが、場合によっては問題が発生することがある。マルチ・プロセッサ対応していない古いアプリケーション(もしくは対応やテストが不十分なアプリケーション)などでは、1つのリソース(プログラム中で利用するデータなど)を同時に複数のスレッドから操作しようとして不整合を起こした

    Windowsでプログラムの実行に使用するCPUを限定させる(プロセッサアフィニティマスクを設定する)
  • IBM Developer

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM Developer
  • 1