Simuler un seul thread sur plusieurs cores ? - Infrastructures serveurs - Systèmes & Réseaux Pro
Marsh Posté le 07-10-2013 à 17:43:39
Dommage.
Pour corroborer, mes recherches ne sont pas très concluantes
Marsh Posté le 07-10-2013 à 18:58:35
Oui j'ai vu des posts de 2007 qui mentionnaient ce genre de recherche chez AMD.
Dommage bis
Marsh Posté le 08-10-2013 à 23:05:32
Il n'y a que le maximiser le turboboost et desactiver l'hyperthreading qui te permettent de tirer le plus de performance d'un seul thread/core (donc privilégier un CPU avec gros TDP et ayant potentiellement beaucoup de cores pour bénéficier d'un coefficient multiplication turboboost important).
Egalement, binder le thread sur un core exclusivement utilisé par celui-ci et augmenter sa priorité donne encore potentiellement un petit avantage.
Ainsi, il m'arrive de devoir utiliser un E5-2690 pour une appli mono ou bithreadée afin de bénéficier d'une frequence élevée (pratique dans le cas d'un applicatif très onereux dont le licencing est instancié au core).
Marsh Posté le 09-10-2013 à 08:44:18
awmoon a écrit : Ainsi, il m'arrive de devoir utiliser un E5-2690 pour une appli mono ou bithreadée afin de bénéficier d'une frequence élevée (pratique dans le cas d'un applicatif très onereux dont le licencing est instancié au core). |
Au hasard : Oracle ?
Marsh Posté le 09-10-2013 à 09:16:13
drapal
Oracle ne sait pas faire utiliser plusieurs cores ?
Marsh Posté le 10-10-2013 à 01:03:40
Effectivement, Oracle fait parti de la liste, les versions enterprise SGBD ou middleware fusion étant licenciées sur une notion de processeur oracle ( = 2 cores x86 par exemple).
Marsh Posté le 10-10-2013 à 08:49:35
awmoon a écrit : Il n'y a que le maximiser le turboboost et desactiver l'hyperthreading qui te permettent de tirer le plus de performance d'un seul thread/core (donc privilégier un CPU avec gros TDP et ayant potentiellement beaucoup de cores pour bénéficier d'un coefficient multiplication turboboost important). |
Merci pour ta réponse.
Je ne savais pas que l'hyperthreading pouvait jouer. Ca me parait logique remarque ...
Pour le turboboost, tu parles du mode "turbo" des CPU Intel ? Ici je vois l'intérêt du TDP vu qu'il conditionne la montée en fréquence ou non mais je ne vois pas l'intérêt du nombre de cores.
Dans les Xeon, un modèle comme celui-ci : http://ark.intel.com/fr/products/7 [...] e-3_70-GHz est-il un bon choix pour du mono-thread ou il existe mieux ?
Marsh Posté le 10-10-2013 à 22:18:37
Plusieurs choses à prendre en compte :
- Le serveur dans lequel le CPU sera installé, généralement un bisocket dans impose un CPU de la gamme E5-26XX
- La fréquence mémoire, à maximiser si l'appli est memory intensive (1866MHz vs 1600MHz sur cette génération)
- La taille du cache L3, unifiée dans l'archi Ivy Bridge donc un seul thread aura tout le cache L3 à disposition
Pourquoi les modèles avec les plus de cores ? Car ce sont ceux qui ont une dégressivité moins rapide du coef multiplicateur du turboboost.
Exemple :
Intel® Xeon® E5-2680 (2.7GHz/8-core/20MB/8.0GT-s QPI/130W, DDR3-1600, HT, Turbo2- 4/4/5/5/5/7/8/8)
Intel® Xeon® E5-2667 (2.9GHz/6-core/15MB/8.0GT-s QPI/130W, DDR3-1600, HT, Turbo2- 3/3/3/4/5/6)
Les chiffres après la mention Turbo2 indique le coef supplementaire apporté par le turboboost en fonction du nombre de cores sollicités.
3/3/3/4/5/6 => +3x100MHz avec 6 cores utilisés,+3x100MHz avec 5 cores utilisés,+3x100MHz avec 4 cores utilisés,+4x100MHz avec 3 cores utilisés,+5x100MHz avec 2 cores utilisés,+6x100MHz avec 1 core utilisé
Ce qui donne avec ces 2 références :
Avec 1 thread :
E5-2680 => 3.5GHz
E5-2667 => 3.5GHz
Avec 2 threads :
E5-2680 => 3.5GHz
E5-2667 => 3.4GHz
Avec 3 threads :
E5-2680 => 3.4GHz
E5-2667 => 3.3GHz
Le E5-2680 a donc toujours l'avantage de part son cache L3 (20MB vs 15MB) mais également que l'application soit monothread (turboboost moins dégressif) ou multithread (8 vs 6 codes).
Ainsi, dans un cas d'une appli monothread, avec 1 core supplémentaire à prévoir pour l'OS, la référence que tu indiques est donc intéressante, sinon voir pour un E5-2667v2 sur une plateforme dual socket, qui t'apporte également 25MB cache L3 au lieu des 15MB du E5-1660v2.
Marsh Posté le 10-10-2013 à 23:18:23
Petit run rapide avec calcul de PI à 500M de decimals en monothread entre un E5-2643 et un E5-2690 (pas de v2 sous la main de dispo)
E5-2643 (4-cores 3.3GHz + 10MB L3): 885.793 seconds
E5-2690 (8-cores 2.9GHz + 20MB L3): 847.138 seconds
Le 8-cores gagne de 5% avec une fréquence de départ pourtant plus faible de plus de 10%.
|
|
Marsh Posté le 07-10-2013 à 14:28:50
Bonjour,
Dans le cas d'un process mono-thread, est-il possible de lui fournir plus de Ghz en simulant un seul thread qui s'appuie derrière sur du multi-cores ?
En gros, on permet le multi threading à un process qui ne le gère pas.
Merci.