Rassurez moi en me disant si je comprends bieng... Bit Vector.

Rassurez moi en me disant si je comprends bieng... Bit Vector. - Divers - Programmation

Marsh Posté le 12-08-2003 à 18:19:55    

Juste pour etre sur de mon coup.
 
je veux assigner un thread a un CPU particulier.
 
Donc, j'utilise la fonction SetThreadAffinityMask de l'api crosoft.
 
Il y a deux paramètres a cette fonction :
-Le handle du thread
-Un bit vector
 
Alors, si je capte bieng la MSDN ( http://msdn.microsoft.com/library/ [...] stimes.asp )
 

Citation :

A thread affinity mask is a bit vector in which each bit represents the processors that a thread is allowed to run on.


 
Dans le cas d'un Quadri CPU, si je veux que le thread1 tourne sur le premier CPU, je lui file comme mask le nombre 1.
 
Si je veux que  le thread2 tourne sur le CPU2  et uniquement le  2, je lui file 2.
 
Pour que  le thread 3 soit sur le CPU3, je dois lui donner  4 ( 100 en binaire)
 
Et pour que le thread  soit sur  le CPU4, je dois lui filer 8 ( 1000 en binaire).
 
Donc, si je veux  assigner X  threads a X CPUs différents, je dois leur filer  des puissances de 2 différentes.
 
j'ai bon ?
 

Reply

Marsh Posté le 12-08-2003 à 18:19:55   

Reply

Marsh Posté le 12-08-2003 à 19:24:31    

oui non peut etre :??:

Reply

Marsh Posté le 13-08-2003 à 05:32:04    

je dirais oui :o (du moins c'est ce que j'en tire des info que  tu donnes, mais je connais pas tout ca moi hein, donc a prendre avec des super grosses pincettes :D )

Reply

Marsh Posté le 13-08-2003 à 07:15:45    

Ouep, utilise les puissances de 2, ça peut-être que ça et c'est logique puisque ça te permet de dire à un process d'utiliser tels processeurs.. :wahoo:

Reply

Marsh Posté le 13-08-2003 à 10:20:14    

Merci les gars, je pense que mon intuition dégagée de leurs explications tres succintes fut la bonne :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed