Lec
De passage
Inscrit le: 04 Déc 2009
Messages: 24
|
Posté le: Ven Déc 04, 2009 15:45 pm Sujet du message: Intel, la course au cœurs. Pourquoi ?!
Intel Corporation est le plus grand fabricant mondial de semi-conducteur au
monde si on se base sur le chiffre d'affaires. Cette entreprise américaine
fut co-fondée en 1968 par Gordon Moore, Robert Noyce et Andrew Grove. Elle
fabrique des microprocesseurs.
Rien de nouveau sous le soleil.
Mais le fondeur vient de sortir en ce début décembre un magnifique nouveau
prototype ! la SSC 48 cœurs embarquant à son bord quelques 1,3 milliards de
transistors. ( Pour se rendre compte : 1 300 000 000 ). En dépit de cette
prouesse technologique, 20 fois plus puissante que ses cadettes ( 6/8 cœurs
), sa consommation en énergie ne dépasse pas les 125 watts.
567 millimètres carrés. Impressionnant.
Mais j'ai des questions dans ce domaine fort sombre pour ma personne.
Possêdant un double coeur sur mon ordinateur depuis quelques temps et
exploitant Windows Seven, je ne vois pas la différence avec mon ancien micro
portable XP. Pourquoi ?
Quel est l'intérêt pour Intel de poursuivre sa R&D dans les
microprocesseurs multi-cœurs ?!
Des microprocesseurs de cette puissance changeront-ils certains facteurs au
sein des entreprises ( serveurs, communication, ... ) ?
Merci de m'éclairer.
|
Invité
|
Posté le: Ven Déc 04, 2009 15:51 pm Sujet du message:
Pour 2 raisons essentiellement :
- Augmenter la fréquence des processeurs est de plus en plus en plus
difficile, donc augmenter le nombre de coeurs permet d'augmenter la force de
calcul sans augmenter la fréquence des puces.
- Les applications sont de plus en plus développées en multi-thread
(l'application lorsqu'elle fonctionne fait tourner plusieurs processus en
parallèle et non 1 seul) et ceci a un sens si on fait tourner cette
application sur un processeur multi-coeur.
|
Lec
De passage
Inscrit le: 04 Déc 2009
Messages: 24
|
Posté le: Ven Déc 04, 2009 15:55 pm Sujet du message:
servlet a
écrit: | Pour 2 raisons
essentiellement :
- Augmenter la fréquence des processeurs est de plus en plus en plus
difficile, donc augmenter le nombre de coeurs augmente la force de calcul sans
augmenter le nombre de coeurs. |
Mais n'est-ce pas risqué de multiplier les cœurs au sein des nouvelles
générations de microprocesseurs ? Juste au niveau des avaries ou des
problèmes techniques ?
Je veux dire, plus il y en a, plus il y a de risques, non ?
servlet a
écrit: | Les applications sont
de plus en plus développées en multi-thread (l'application lorsqu'elle
fonctionne fait tourner plusieurs processus en parallèle et non 1 seul) et
ceci a un sens si on fait tourner cette application sur un processeur
multi-coeur. |
Quelles seront les applications en 2012 ( date futur de commercialisation de
la SSC48 ) nécessitant autant de processus parallèles au sein du grand publique ?
|
Invité
|
Posté le: Ven Déc 04, 2009 16:04 pm Sujet du message:
Citation: | -
Augmenter la fréquence des processeurs est de plus en plus en plus difficile,
donc augmenter le nombre de coeurs permet d'augmenter la force de calcul sans augmenter la fréquence des puces.
|
bon déjà j'ai édité mon précédent message sinon ça n'avait aucun sens
sinon ce que tu dis sur les avaries a un sens, mais il faut aussi considérer
que les puces sont aujourd'hui très fiables surtout que ça reste des
matériels à durée de vie relativement courte
autrement, pour te donner des noms d'applications grand public, je n'en ai
aucune idée ...
|
Lec
De passage
Inscrit le: 04 Déc 2009
Messages: 24
|
Posté le: Ven Déc 04, 2009 16:09 pm Sujet du message:
Justement, ce que je me disais c'est surtout, est-ce que ces nouveaux
microprocesseurs auront vraiment une utilité pour le peuple ?!
C'est surtout pour les domaines comme le spatial, la défense, la finance, non
?!
|
Invité
|
Posté le: Ven Déc 04, 2009 16:31 pm Sujet du message:
C'est un sujet compliqué (mais intéressant) que tu abordes là, avec de
nombreuses problématiques qui rentrent en ligne de compte. Et je ne suis pas
du tout un spécialiste. Donc je peux tout à fait dire de la merde sur le
sujet.
Déjà, le multi thread est moins "sûr" dans le sens où sont accrues les
risques d'avarie logicielle. Aussi je doute que l'on voit ça pour le
calculateur embarqué d'un avion ou d'une fusée par exemple.
Par contre il a toute son application pour des outils temps réels qui
requiert beaucoup de calculs mais ne requiert pas une fiabilité absolue : une
plateforme de trading sur un poste de travail par exemple.
Pour le grand public, ça peut avoir un sens. Pas forcément pour des
applications développées en multi thread qui sont, je pense, encore rare
pour le grand public. Mais parce que aujourd'hui les systèmes d'exploitation
gèrent de mieux en mieux le multi thread et peuvent donc faire exécuter en
parallèle plusieurs programmes distincts que tu utilises simultanément sur
ta machine.
|
Criterium
Suprème actif
Age: 39
Inscrit le: 08 Sep 2008
Messages: 4223
Localisation: ailleurs
|
Posté le: Ven Déc 04, 2009 17:02 pm Sujet du message:
Et la programmation multi-thread est également plus difficile (problèmes
d'accès aux données principalement, les différents threads ne doivent pas
accéder toutes en même temps aux mêmes zones mémoires - l'article sur
Wikipedia sur les "sémaphores" explique la problématique), ce qui réduit,
comme servlet disait, son application dans des systèmes nécessitant une
grande fiabilité (embarqué, spatial, etc.).
Par contre, il y a des outils qui gagnent énormément au multi-threading, et
qui sont utilisées par le grand public, comme des logiciels musicaux (pour
traiter les pistes indépendamment), ou indirectement, comme des robots de
recherche et d'indexation pour le web, les recherches dans de grandes bases de
données, etc. – ou pour un public spécialisé, et là je pense
particulièrement à la bioinformatique et à la modélisation moléculaire
(mais je ne doute pas, même si je ne connais pas du tout ces sujets, que ça
puisse servir dans des calculs mathématiques, physiques ou financiers).
Pour le nombre de transistors élevé, cela n'est pas simplement du au nombre
de cœurs mais principalement à l'architecture CISC d'Intel (et d'AMD et
d'autres), appelée le x86, qui pour des raisons de rétrocompatibilité est
devenue un énorme fouillis (les microprocesseurs x86 sont comparables à des
sortes de "microprocesseurs qui lancent des microprocesseurs à l'intérieur
d'eux-mêmes").
Enfin bon, pour le moment peu de personnes (dans le grand public) ont besoin
de 4 cœurs, alors ne nous inquiétons pas.
|
Lec
De passage
Inscrit le: 04 Déc 2009
Messages: 24
|
Posté le: Sam Déc 05, 2009 10:43 am Sujet du message:
servlet a
écrit: | C'est un sujet
compliqué (mais intéressant) que tu abordes là, avec de nombreuses
problématiques qui rentrent en ligne de compte. Et je ne suis pas du tout un
spécialiste. Donc je peux tout à fait dire de la merde sur le sujet.
Déjà, le multi thread est moins "sûr" dans le sens où sont accrues les
risques d'avarie logicielle. Aussi je doute que l'on voit ça pour le
calculateur embarqué d'un avion ou d'une fusée par
exemple. |
Donc, c'est bien l'hypothèse que j'avais fourni, des avaries logicielles
accrues. Mais on ne sait pas, si les fondeurs comme Intel prévoit des
éléments de sécurité ou d'autres facteurs réduisant le risque d'avaries.
servlet a
écrit: | Par contre il a toute
son application pour des outils temps réels qui requiert beaucoup de calculs
mais ne requiert pas une fiabilité absolue : une plateforme de trading sur un
poste de travail par exemple. |
J'y avais pensé, mais je n'osais pas le mettre.
servlet a
écrit: | Pour le grand public,
ça peut avoir un sens. Pas forcément pour des applications développées en
multi thread qui sont, je pense, encore rare pour le grand public. Mais parce
que aujourd'hui les systèmes d'exploitation gèrent de mieux en mieux le
multi thread et peuvent donc faire exécuter en parallèle plusieurs
programmes distincts que tu utilises simultanément sur ta
machine. |
Oui.
En revanche, depuis XP, les deux derniers logiciels d'exploitation de
Microsoft sont devenus de sacrés gourmands en terme de ressource utilisées.
Combien de personne ai-je entendu marmonner des méchanceté lorsque leur
dernier micro, flambant neuf, ramé avec deux ou trois applications lancées.
C'est là, que souvent, j'ai vu des personnes modifier les paramètres des
soft pour avoir de meilleurs capacités de vitesse.
Criterium a
écrit: | Et la programmation
multi-thread est également plus difficile (problèmes d'accès aux données
principalement, les différents threads ne doivent pas accéder toutes en
même temps aux mêmes zones mémoires - l'article sur Wikipedia sur les
"sémaphores" explique la problématique), ce qui réduit, comme servlet
disait, son application dans des systèmes nécessitant une grande fiabilité
(embarqué, spatial, etc.). |
Mais alors, si la fiabilité réduit, les fondeurs comme Intel n'ont pas
solution pour lutter contre ça ?!
Criterium a
écrit: | Par contre, il y a des
outils qui gagnent énormément au multi-threading, et qui sont utilisées par
le grand public, comme des logiciels musicaux (pour traiter les pistes
indépendamment), ou indirectement, comme des robots de recherche et
d'indexation pour le web, les recherches dans de grandes bases de données,
etc. – ou pour un public spécialisé, et là je pense particulièrement à
la bioinformatique et à la modélisation moléculaire (mais je ne doute pas,
même si je ne connais pas du tout ces sujets, que ça puisse servir dans des
calculs mathématiques, physiques ou financiers). |
C'est donc plus utile pour des universitaires et des entrepreneurs dans des
secteurs spéciaux ?!
Criterium a
écrit: | Pour le nombre de
transistors élevé, cela n'est pas simplement du au nombre de cœurs mais
principalement à l'architecture CISC d'Intel (et d'AMD et d'autres), appelée
le x86, qui pour des raisons de rétrocompatibilité est devenue un énorme
fouillis (les microprocesseurs x86 sont comparables à des sortes de
"microprocesseurs qui lancent des microprocesseurs à l'intérieur
d'eux-mêmes").
|
Alors là, je n'ai pas bien compris. Des microprocesseurs qui lancent des
microprocesseurs à l'intérieur d'eux-mêmes ? Tu peux développer ?!
Criterium a
écrit: | Enfin bon, pour le
moment peu de personnes (dans le grand public) ont besoin de 4 cœurs, alors
ne nous inquiétons pas. |
En revanche, une majorité regrette d'être passé sous Vista ou Seven.
Lorsque l'on me dit " Tu as XP ? Gardes-le ! "
|
Criterium
Suprème actif
Age: 39
Inscrit le: 08 Sep 2008
Messages: 4223
Localisation: ailleurs
|
Posté le: Sam Déc 05, 2009 11:12 am Sujet du message:
Lec a
écrit: | Mais alors, si la
fiabilité réduit, les fondeurs comme Intel n'ont pas solution pour lutter
contre ça ?! |
Ah, mais la fiabilité ne se réduit pas forcément pour autant!
D'une part, tous les systèmes d'exploitation moderne font du multi-thread,
même sans avoir plusieurs cœurs – il y a une technologie qui s'appelle
l'hyper-threading qui permet d'avoir plusieurs flow d'exécution sur le même
processeur – donc la "fiabilité moindre" est déjà là ; au contraire, on
peut se dire que c'est plus fiable que les threads soient mieux répartis sur
différents cœurs, car chaque cœur a ses registres (en gros, un registre est
une minuscule mémoire extrêmement rapide, avec lequel travaille constamment
le processeur ; certains enregistrent des adresses mémoires, d'autres des
résultats intermédiaires, d'autres la position dans le programme, etc.) qui
lui sont propres, et sa mémoire cache (tout du moins la L1 ou la L2) qui lui
est propre : il devrait donc y avoir moins de "bavures" au niveau du
processeur lui-même.
Là où il peut se produire des problèmes, c'est au niveau des accès
mémoires, mais ce n'est pas du au matériel, mais au logiciel : si quelqu'un
programme mal son application multi-thread et que tous les cœurs veulent
accéder en même temps à la même case mémoire pour la modifier, chacun
peut y lire une valeur différente selon l'ordre dans lequel il passe pour y
accéder, et le programme risque de planter ou de donner des résultats
bizarres. Mais cela, c'est de la faute du développeur.
Par contre, lorsqu'un développeur ne fait pas de fautes sur une application
multi-thread, c'est au contraire un grand pas en avant puisque ces
applications peuvent fonctionner aussi bien sur un processeur 1 cœur que 48
cœurs (c'est au système d'exploitation de répartir les différents fils
d'exécutions (threads) sur les différents processeurs physiques (cœurs)).
Donc, ce n'est moins fiable que dans des applications où l'on ne peut pas se
permettre ni la moindre erreur/blocage ni l'utilisation d'un système
d'exploitation. Pour tout le reste du monde, c'est un progrès, qui fera
revenir certains développeurs à l'école, et qui nécessitera de bons
systèmes d'exploitation pour sa pérénnité.
Lec a
écrit: | Alors là, je n'ai pas
bien compris. Des microprocesseurs qui lancent des microprocesseurs à
l'intérieur d'eux-mêmes ? Tu peux développer ?! |
Je vais essayer d'être simple, tu me diras si tu veux plus de détails sur un
point en particulier – en gros, un processeur est conçu sur une
architecture particulière. Selon l'architecture, le processeur parle un
"langage machine" qui sera différent. Un vieux processeur d'Atari ne pourra
jamais exécuter directement un programme écrit pour un vieux processeur
Intel, par exemple (car le premier est conçu sur une architecture 68k et le
second sur x86).
Les concepteurs de processeurs ont fait des choix sur leur architecture selon
l'usage auquel le processeur était destiné, ou les principes de bases sur
lequel il devait fonctionner – on cite souvent l'opposition entre les
architectures sur un modèle RISC et celles sur un modèle CISC.
RISC -> peu d'instructions machines, très simples, ainsi il sera plus
simple et plus rapide de traiter les instructions.
CISC -> beaucoup d'instructions machines, permettant de faire en peu
d'instructions des tâches complexes, mais cela nécessitera plus de
traitement, donc plus de temps et plus de transistors.
Les ordinateurs grand public fonctionnent à 99% sur une architecture CISC, et
très, très largement l'architecture x86. Mais ce n'est pas tout : cette
architecture a évolué avec le temps ; comme les ordinateurs devaient faire
des tâches de plus en plus complexes, on a rajouté des instructions (sans
parler des instructions qu'il a été nécessaire de rajouter pour tout
simplement faire fonctionner un aussi grand amas de transistors). Et non
seulement le x86 s'est complexifié, mais les impératifs économiques
obligeaient Intel à faire en sorte qu'il y ait rétrocompatibilité,
c'est-à-dire faire fonctionner parfaitement un vieux programme conçu pour
les premiers x86, sur les prochains x86 à sortir – ce qui a contribué à
complexifier encore plus cette architecture.
Donc maintenant, un processeur x86, lorsqu'il reçoit des instructions en
langage machine, les trie, les découpe, les traduit en mini-instructions,
traduites en micro-instructions, d'une façon différente selon le mode
d'exécution du processeur (mode "réel" 16-bits comme au démarrage du BIOS?
mode "protégé" 32-bits? nouveaux modes 64-bits?)... et ensuite seulement il
les exécute et les vérifie à nouveau. C'est comme si le processeur était
en lui-même un gros serveur, triait les instructions et les envoyait à des
"sous-processeurs" plus simples, puis les récupérait.
Lec a
écrit: | En revanche, une
majorité regrette d'être passé sous Vista ou Seven. Lorsque l'on me dit "
Tu as XP ? Gardes-le ! " |
Ça, c'est un autre problème
|
Invité
|
Posté le: Sam Déc 05, 2009 11:50 am Sujet du message:
ce crayon me bluffe !
|