Je travaille sur une architecture NUMA, où chaque nœud de calcul a 2 sockets et 4 cœurs par socket, pour un total de 8 cœurs par nœud de calcul, et 24 Go de RAM par nœud. Je dois prouver que le réglage processor affinity peut avoir un impact significatif sur les performances.Impact de l'affinité du processeur de benchmark
Avez-vous un programme à suggérer que je pourrais utiliser comme référence pour montrer la différence d'impact entre l'utilisation de l'affinité processeur ou non? Je pourrais aussi écrire un simple programme de test C, en utilisant MPI, ou OpenMP, ou pthreads, mais quelle opération serait la meilleure pour faire ce test? Ce doit être quelque chose qui tirerait avantage de la localisation du cache, mais qui déclencherait aussi le changement de contexte (opérations de blocage), de sorte que le processus pourrait potentiellement migrer vers un autre noyau, ou pire, vers un autre socket. Il doit fonctionner sur un multiple de 8 cœurs.
Mais dans ce cas, qu'est-ce qui entraînerait la migration des processus vers un autre core? Il y a des chances raisonnables que si OS prend le contrôle d'un noyau, alors le processus continuera son exécution du même noyau quand il reprend le contrôle, même sans définir d'affinité. –
@Charles: ceci est juste basé sur des observations empiriques - J'ai fait des tests simlar et j'ai vu des différences significatives avec/sans affinité CPU. Je peux seulement deviner que les différents processus d'arrière-plan qui s'exécutent sur un système typique sont responsables du déclenchement de la migration d'un noyau à l'autre. –