Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Python et multiprocessing

5 réponses
Avatar
olivier.marti
Bonjour,

J'ai un MacBook Pro sous High Sierra dont le rapport système me dit
qu'il a 1 processeurs, et 2 c½urs.

Et pourtant :

marti@Spip-[Unix]/Python/Parallel ?? python3 -c "import
multiprocessing; print(multiprocessing.cpu_count())"
4

D'ou viennent ces 4 c½urs ? J'ai le même résultat avec ce Python 3.6.5
d'Anaconda et avec le Python 2.67.10 du système. C'est un bug connu, ou
j'ai un souci chez moi ?

Olivier Marti

5 réponses

Avatar
gilbert.olivier
Olivier Marti wrote:
Bonjour,
J'ai un MacBook Pro sous High Sierra dont le rapport système me dit
qu'il a 1 processeurs, et 2 c½urs.

Et 2 threads par coeur non?
Donc 2x2=4 ;-)
Et pourtant :
[Unix]/Python/Parallel ?? python3 -c "import
multiprocessing; print(multiprocessing.cpu_count())"
4

Il faut comprendre 4 threads je pense.
D'ou viennent ces 4 c½urs ? J'ai le même résultat avec ce Python 3.6.5
d'Anaconda et avec le Python 2.67.10 du système. C'est un bug connu, ou
j'ai un souci chez moi ?

Ouvre le moniteur d'activite et la fenêtre "Accès au processeuré",
rgarde, tu devrais avoir 4 colonnes.
Olivier Marti

--
Gilbert
Avatar
olivier.marti
Gilbert OLIVIER wrote:
Olivier Marti wrote:
Bonjour,
J'ai un MacBook Pro sous High Sierra dont le rapport système me dit
qu'il a 1 processeurs, et 2 c½urs.

Et 2 threads par coeur non?
Donc 2x2=4 ;-)
Et pourtant :
[Unix]/Python/Parallel ?? python3 -c "import
multiprocessing; print(multiprocessing.cpu_count())"
4

Il faut comprendre 4 threads je pense.
D'ou viennent ces 4 c½urs ? J'ai le même résultat avec ce Python 3.6.5
d'Anaconda et avec le Python 2.67.10 du système. C'est un bug connu, ou
j'ai un souci chez moi ?

Ouvre le moniteur d'activite et la fenêtre "Accès au processeuré",
rgarde, tu devrais avoir 4 colonnes.
Olivier Marti


Yep !
Ca veut dire qu'il gère 2 thread par c½urs. On a ça sur nos gros
calculateurs avec des processeurs skylake. Je n'aurais pas pensé que mon
vieux Mac de 4 ans faisait ça.
Mais du coup je ne pige pas pourquoi mpirun refuse de me lancer plus de
2 processus parallèles ?
Olivier
Avatar
gilbert.olivier
Olivier Marti wrote:
Yep !
Ca veut dire qu'il gère 2 thread par c½urs. On a ça sur nos gros
calculateurs avec des processeurs skylake. Je n'aurais pas pensé que mon
vieux Mac de 4 ans faisait ça.

Mon MacBookPro mi-2010 le fait aussi ;-)
Mais du coup je ne pige pas pourquoi mpirun refuse de me lancer plus de
2 processus parallèles ?

???
La je passe mon tour.
--
Gilbert
Avatar
pehache
Le 13/11/2018 à 20:27, Olivier Marti a écrit :
Gilbert OLIVIER wrote:
Olivier Marti wrote:
Bonjour,
J'ai un MacBook Pro sous High Sierra dont le rapport système me dit
qu'il a 1 processeurs, et 2 cœurs.

Et 2 threads par coeur non?
Donc 2x2=4 ;-)
Et pourtant :
[Unix]/Python/Parallel ? ? python3 -c "import
multiprocessing; print(multiprocessing.cpu_count())"
4

Il faut comprendre 4 threads je pense.
D'ou viennent ces 4 cœurs ? J'ai le même résultat avec ce Python
3.6.5
d'Anaconda et avec le Python 2.67.10 du système. C'est un bug connu, ou
j'ai un souci chez moi ?

Ouvre le moniteur d'activite et la fenêtre "Accès au processeuré",
rgarde, tu devrais avoir 4 colonnes.
Olivier Marti


Yep !
Ca veut dire qu'il gère 2 thread par cœurs. On a ça sur nos gros
calculateurs avec des processeurs skylake. Je n'aurais pas pensé que mon
vieux Mac de 4 ans faisait ça.

L'hyperthreading date d'une bonne douzaine d'années.
Mais du coup je ne pige pas pourquoi mpirun refuse de me lancer plus de
2 processus parallèles ?

Sans doute parce que l'hyperthreading est en général plus adapté pour
exécuter des threads différents d'un même process (qui partagent la
même mémoire) que des process différents.
Avatar
olivier.marti
pehache wrote:
Le 13/11/2018 à 20:27, Olivier Marti a écrit :
Gilbert OLIVIER wrote:
Olivier Marti wrote:
> Bonjour,
>
> J'ai un MacBook Pro sous High Sierra dont le rapport système me dit
> qu'il a 1 processeurs, et 2 c½urs.
Et 2 threads par coeur non?
Donc 2x2=4 ;-)
>
> Et pourtant :
>
> [Unix]/Python/Parallel ? ? python3 -c "import
> multiprocessing; print(multiprocessing.cpu_count())"
> 4
Il faut comprendre 4 threads je pense.
>
> D'ou viennent ces 4 c½urs ? J'ai le même résultat avec ce Python
3.6.5
> d'Anaconda et avec le Python 2.67.10 du système. C'est un bug connu, ou
> j'ai un souci chez moi ?
Ouvre le moniteur d'activite et la fenêtre "Accès au processeuré",
rgarde, tu devrais avoir 4 colonnes.
>
> Olivier Marti

Yep !
Ca veut dire qu'il gère 2 thread par c½urs. On a ça sur nos gros
calculateurs avec des processeurs skylake. Je n'aurais pas pensé que mon
vieux Mac de 4 ans faisait ça.

L'hyperthreading date d'une bonne douzaine d'années.

Mais en fait n'était guère efficace sur nos gros codes de calculs, et
pendant longtemps pas activé par défaut sur ces machines.
Mais du coup je ne pige pas pourquoi mpirun refuse de me lancer plus de
2 processus parallèles ?

Sans doute parce que l'hyperthreading est en général plus adapté pour
exécuter des threads différents d'un même process (qui partagent la
même mémoire) que des process différents.

J'imagine. Il faudra que j'essaye en surchargeant pour voir s'il
exploite les 4 threads.