OVH Cloud OVH Cloud

Thread C et multi processeurs

6 réponses
Avatar
Sebastien
Bonjour,

Je voudrais savoir s'il est possible de spécifier explicitement en C d'avoir
autant de threads que de processeurs sur une machine multi processeur. Je me
pose la question parce que sous mon environnement UNIX je souhaiterais
savoir si je peux demander d'avoir 1 thread par processeur uniquement.

Merci, Sébastien.

6 réponses

Avatar
VANHULLEBUS Yvan
"Sebastien" writes:

Bonjour,

Je voudrais savoir s'il est possible de spécifier explicitement en C d'avoir
autant de threads que de processeurs sur une machine multi processeur. Je me
pose la question parce que sous mon environnement UNIX je souhaiterais
savoir si je peux demander d'avoir 1 thread par processeur uniquement.



Euh..... il suffit de mettre un compteur dans le code du processus qui
cree les autres threads....


Apres, "y'a plus qu'a" remplir une valeur max (par exemple en
detectant le nombre de processeurs), et de mettre un if avant le code
de creation d'un thread fils.....



A +

VANHU.

Avatar
Marc Boyer
Sebastien wrote:
Bonjour,

Je voudrais savoir s'il est possible de spécifier explicitement en C d'avoir
autant de threads que de processeurs sur une machine multi processeur. Je me
pose la question parce que sous mon environnement UNIX je souhaiterais
savoir si je peux demander d'avoir 1 thread par processeur uniquement.


Heuh... En POSIX (pthread), je vois pas comment.
Sur Solaris, il existe moyen de faire un THR_BOUND
pour attacher un thread à un LWP, mais l'association
LWP à processeur réel, je sais pas.
Au fait, c'est pour faire quoi ? Car souvent, quand
il n'existe pas de support à la solution à laquelle on
pensait, c'est qu'on a pris la mauvaise solution.

Marc Boyer
--
Lying for having sex or lying for making war? Trust US presidents :-(

Avatar
DINH Viêt Hoà

Je voudrais savoir s'il est possible de spécifier explicitement en C d'avoir
autant de threads que de processeurs sur une machine multi processeur. Je me
pose la question parce que sous mon environnement UNIX je souhaiterais
savoir si je peux demander d'avoir 1 thread par processeur uniquement.


Je crois malheureusement que la détermination du nombre de processeur est
spéficique à chaque unix.

--
DINH V. Hoa,

"tuning et dope, aucun rapport" -- b.

Avatar
Paul GABORIT
À (at) Fri, 3 Oct 2003 15:43:45 +0200,
DINH Viêt Hoà écrivait (wrote):

Je voudrais savoir s'il est possible de spécifier explicitement en C d'avoir
autant de threads que de processeurs sur une machine multi processeur. Je me
pose la question parce que sous mon environnement UNIX je souhaiterais
savoir si je peux demander d'avoir 1 thread par processeur uniquement.


Je crois malheureusement que la détermination du nombre de processeur est
spéficique à chaque unix.


D'autant que ce n'est pas obligatoirement une constante. Il existe des
systèmes qui supportent l'ajout ou le retrait de processeurs à chaud.

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Remove '.OOO' from e-mail address - Supprimez '.OOO' de l'adresse e-mail


Avatar
Erwann ABALEA
On Fri, 3 Oct 2003, Paul GABORIT wrote:

À (at) Fri, 3 Oct 2003 15:43:45 +0200,
DINH Viêt Hoà écrivait (wrote):

Je voudrais savoir s'il est possible de spécifier explicitement en C d'avoir
autant de threads que de processeurs sur une machine multi processeur. Je me
pose la question parce que sous mon environnement UNIX je souhaiterais
savoir si je peux demander d'avoir 1 thread par processeur uniquement.


Je crois malheureusement que la détermination du nombre de processeur est
spéficique à chaque unix.


D'autant que ce n'est pas obligatoirement une constante. Il existe des
systèmes qui supportent l'ajout ou le retrait de processeurs à chaud.


Même sans aller chercher les machines sur lesquelles on peut physiquement
ajouter des cartes CPU à chaud (par exemple la série des Sun Enterprise),
il existe des OS qui permettent d'activer ou désactiver des processeurs,
en cours de route (par exemple, Solaris).

--
Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5
-----
Je voudrais savoir s'il existe un compteur de vitesse (?) pour savoir
à quelle vitesse on est réellement connecté au FAI et surtout si une
telle bête existe... oû la trouver.
-+- RJ in: Guide du Neuneu d'Usenet - Baisse la tête et pédale -+-



Avatar
Arnaud Launay
Le Fri, 3 Oct 2003 17:39:07 +0200, Erwann ABALEA écrivit:
Même sans aller chercher les machines sur lesquelles on peut physiquement
ajouter des cartes CPU à chaud (par exemple la série des Sun Enterprise),


Ou les IBM s390.

il existe des OS qui permettent d'activer ou désactiver des
processeurs, en cours de route (par exemple, Solaris).


Ou l'IBM OS/390 :)

Arnaud.
--
Diogenes went to look for an honest lawyer. "How's it going?", someone
asked him, after a few days.
"Not too bad", replied Diogenes. "I still have my lantern."