Bonjour !
Patrick Dupré a écrit :
> Si je veux aller au-dela [de 24 threads physiques], est-ce qu'il y a
> des options multi-carte ou/et 2 processors par carte ?
Au labo, on a une machine avec deux processeurs Xeon Platinum 8352Y :
Thread(s) per core: 2
Core(s) per socket: 32
Socket(s): 2
Ça fait 128 threads physiques... et un bruit d'avion à réaction quand ça
tourne ! C'est fait pour vivre dans un rack de datacenter, loin des
oreilles humaines.
On l'a achetée en février 2022. Aujourd'hui, si tu as le budget, tu peux
avoir jusqu'à 256 threads physiques dans un seul processeur (Intel Xeon
6980P ou AMD EPYC 9754).
> De de 4 (i5) a 12 (i7) proc, il n'a y un gain que de 2!
Ah, la parallélisation... c'est un problème difficile ! Certains
algorithmes peuvent facilement se décomposer en de nombreuses tâches
indépendantes. On dit qu'ils sont « trivialement parallélisables ». Le
Monte-Carlo ou le ray tracing en sont de bons exemples. D'autres algos
ne se parallélisent pas si bien : tu peux les découper en tâches
séparées, mais celles-ci ne sont pas indépendantes, elles doivent se
synchroniser, communiquer entre elles... Plus tu as de tâches, plus tu
perds du temps en synchronisation, communication, invalidation des
caches L1, etc. La vitesse en fonction du nombre de threads physiques
alloués commence par augmenter, puis sature, puis diminue.
Dans ton cas, si tu multiplies le nombre de proc par 3 et que tu gagnes
un facteur 2 en temps de calcul... ce n'est pas si mal ! Mais ça
t'indique que ça ne servira probablement à rien d'augmenter encore le
nombre de proc. À moins de revoir ta stratégie de parallélisation, la
localité mémoire, tout ça...
À+,
Edgar.