SMP: Forcer une application à tourner sur un processeur

トップ ページ

このメッセージに返信
著者: olivier_allard-jacquin
日付:  
To: guilde
題目: SMP: Forcer une application à tourner sur un processeur
Bonjour,

j'ai une petite question: Sur une machine multi-processeurs, est-il possible de forcer une application mono-thread à tourner sur un processeur en particulier ?

Je m'explique: J'ai une application qui fait excusivement du calcul, et je pense que la plupart des opérations se font dans le cache du CPU. Hors sur mon Linux (kernel 2.4.20 SMP) j'ai remarqué que le process de l'application passait sans cesse d'un processeur à l'autre. Pour le process, le changement de CPU implique une synchronisation des mémoires caches des CPU, et je pense que je perds quelques cycles d'horloge dans ceci.

Je sais que sous Windows NT/2K/XP, on peut indiquer à l'OS de ne faire tourner un process qu'unquiement sur un processeur (Microsoft appelle ca "affinité"), mais est-ce que c'est faisable aussi sous Linux ? Je suppose que oui, mais je n'ais pas trouvé la commande magique qui fait cela :=)

Quelque chose comme commande_magique --processeur 0 --pid 6666

Merci d'avance de vos lumières !

                                     Olivier