taigaIV a écrit:
Avec l arrivee des cpu multicore la donne change. Que les unites de calculs soient sur le meme chip ne changent pas grand chose aux algo de gestions du multitache (pas grand chose ne voulant pas dire rien).
Non, soit tu as un super multi-cpu soit tu ne l as pas, il n y a pas de milieu. Ensuite l implementation de ce support peut etre plus ou moins efficaces. Dire "si tu as 2 CPU, tu as un thread sur chacun d'eux mais ils sont quand même exécuté à la suite" ne correspond pas a ce que l on appel le support SMP (a moins d etre franchement tordus de la part des devs).megadub a écrit:
Bon, on est donc bien d'accord, j'ai pas raconté de conneries :o
Tout au plus, j'aurais dû préciser que pour les particuliers qui paye leur license et sont donc souvent en familial, Windows gére le multi-CPU comme un goret... c'est à dire qu'il ne le prend pas en compte :neutre:
m'enfin... peu importe... quand j'affirme quelque chose c'est qu'une source me le confirme et sinon je suppose parce que je ne prétends pas avoir la science infuse :neutre:
en tout cas, je te félicite pour ta patience pour avoir cherché ce post :super:
megadub a écrit:taigaIV a écrit:
Avec l arrivee des cpu multicore la donne change. Que les unites de calculs soient sur le meme chip ne changent pas grand chose aux algo de gestions du multitache (pas grand chose ne voulant pas dire rien).
oui mais l'idéal étant de lancer les tâches en parallèle (c'est à dire 2 tâches dans le même cycle d'horloge), dés lors que les cores ne sont vu que comme un seul CPU ça devient impossible :neutre: A moins que j'ai pas compris comme ça fonctionne et là j'suis preneur d'info en lieu et place de remarques désobligeante :jap:
Ah. Alors désolé Megadub. Et donc MS a mis des restriction sur sa version familiale, et ce sur le parallélisme ??:etonne::peur:Bon, on est donc bien d'accord, j'ai pas raconté de conneries
Tout au plus, j'aurais dû préciser que pour les particuliers qui paye leur license et sont donc souvent en familial, Windows gére le multi-CPU comme un goret... c'est à dire qu'il ne le prend pas en compte
m'enfin... peu importe... quand j'affirme quelque chose c'est qu'une source me le confirme et sinon je suppose parce que je ne prétends pas avoir la science infus
v_atekor a écrit:
Ah. Alors désolé Megadub. Et donc MS a mis des restriction sur sa version familiale, et ce sur le parallélisme ??:etonne::peur:
Pourqu oi lancer des taches au meme cycle ?megadub a écrit:taigaIV a écrit:
Avec l arrivee des cpu multicore la donne change. Que les unites de calculs soient sur le meme chip ne changent pas grand chose aux algo de gestions du multitache (pas grand chose ne voulant pas dire rien).
oui mais l'idéal étant de lancer les tâches en parallèle (c'est à dire 2 tâches dans le même cycle d'horloge), dés lors que les cores ne sont vu que comme un seul CPU ça devient impossible :neutre: A moins que j'ai pas compris comme ça fonctionne et là j'suis preneur d'info en lieu et place de remarques désobligeante :jap:
Pas attendu, pas attendu c est vite dit, il y a tout de meme pas mal de dev qui s appercoivent que les threads existent et que ca ne sert pas qu a faire jolie (si tu vois ce que je veux dire).catseye a écrit:v_atekor a écrit:
Ah. Alors désolé Megadub. Et donc MS a mis des restriction sur sa version familiale, et ce sur le parallélisme ??:etonne::peur:
Non ça doit marcher correctement ...
Par contre je l'ai pas testé, mais je vois pas pourquoi ce serait différent, la seule différence vs les version Pro et Server, c'est le nombre de cores et de sockets gérés ...
D'ailleurs tu peux faire du multithread en mono CPU, mono core, c'est tout aussi efficace ... on a pas attendu les multi-cpu pour en tirer avantage ...
taigaIV a écrit:catseye a écrit:v_atekor a écrit:
Ah. Alors désolé Megadub. Et donc MS a mis des restriction sur sa version familiale, et ce sur le parallélisme ??:etonne::peur:
Non ça doit marcher correctement ...
Par contre je l'ai pas testé, mais je vois pas pourquoi ce serait différent, la seule différence vs les version Pro et Server, c'est le nombre de cores et de sockets gérés ...
D'ailleurs tu peux faire du multithread en mono CPU, mono core, c'est tout aussi efficace ... on a pas attendu les multi-cpu pour en tirer avantage ...
Pas attendu, pas attendu c est vite dit, il y a tout de meme pas mal de dev qui s appercoivent que les threads existent et que ca ne sert pas qu a faire jolie (si tu vois ce que je veux dire).
concernant les histoires de pro/fam, je pense que ca aurait couter plus cher a MS de reecrire l algo que de simplement limite sur le nombre de cpu reconnus.
taigaIV a écrit:
Moi aussi. Il n empeche que pas mal d application ne sont pas multithreades, voir tous les dev depuis l arrivee des mulitcore
taigaIV a écrit:
Non, soit tu as un super multi-cpu soit tu ne l as pas, il n y a pas de milieu. Ensuite l implementation de ce support peut etre plus ou moins efficaces. Dire "si tu as 2 CPU, tu as un thread sur chacun d'eux mais ils sont quand même exécuté à la suite" ne correspond pas a ce que l on appel le support SMP (a moins d etre franchement tordus de la part des devs).
v_atekor a écrit:
Et ils sont au courant que sérialiser des tâches parallèles ça change l'algorithmie et donc que tu peux avoir des programmes qui partent complètement en vrille ? (Deadlocks mon amour :riva:)
catseye a écrit:
D'ailleurs tu peux faire du multithread en mono CPU, mono core, c'est tout aussi efficace ... on a pas attendu les multi-cpu pour en tirer avantage ...
taigaIV a écrit:
Tu as n unites d executions, qui (entre autre) ont des instructions, des pointeurs d instructions et des unites de calcul. D un autre cote tu as des processus (certains parlons de processus, processus leger, d autres de taches et de threads ... mais ce n est pas le sujet), pour simplifier autant ne pas faire de disctinctions entre un processus et ces threads (conciderons qu un thread est un processus faisant parti du contexte d un autre). Tous ces processus peuvent soient etre en attente d executions (ils ont des choses a faire) soit en attente de reveil. Le but du jeu est de passer ceux en attente d execution sur une unite d execution. La selection, la synchro et compagnie sont des elements qui vont expliquer qu un gestionnaire est plus efficace qu un autre. Mais tu ne vas pas aller chercher de problemes au cycle d horloge pret. Tout ceci etant tres general et pas tres precis.
catseye a écrit:
Faire un programme ultra-optimisé, multithreadé, c'est pas que c'est ultra complexe, mais ça prend plus de temps à mettre au point, à tester, optimiser encore etc etc ... peu d'éditeurs sont intéressés à investir en ce sens, le fonctionnel et la vente avant tout ... ;)
megadub a écrit:
certes mais les threads ne peuvent pas être partagé entre plusieurs CPU si l'OS ne le gére pas non ? [:paysan]
megadub a écrit:
là j'avoue que ça dépasse mes compétences ;) mais j'imagine que quand un thread est lancé, en multi-CPU tu sais décomposé le traitement pour le partager entre les CPU... si l'OS ne le fait pas bah, tu soumets des threads sur plusieurs CPU mais les opérations d'un thread seront faites en séquence sur le CPU qui prend le thread en charge ce qui est bien moins intéressant.
taigaIV a écrit:
De ultra optimise a simplement multithreade il y a un pas tout de meme. Il semble que la puissance brut par core ne va pas augmenter aussi vite que ce que nous avons connus. Il va donc falloir multithreades les usines a gaz pour quelles tournent. Les fondeurs fournissent de plus en plus d outils aux dev pour les aides, ce n est sans doutes pas un hasard
Tu as bien deux processus en mémoire (l'un pouvant interrompre l'autre), cette possibilité est fourni par l'OS qui permet de charger de tels modules résident, même s'il contrôle pas grand chose et s'ils n'y aucune protection :) Après y a une aide du matos, les interruptions comme ils y a une aide, beaucoup plus évoluée sur les CPU actuels (gestion de la mémoire virtuelle / protégée par exemple => C'est pas que l'OS qui le fait, le CPU fait l'essentiel du boulot).taigaIV a écrit:
L os en tant que tel non puisqu il ne te founit rien pour le faire.
Et au passage la notion de protection de memoire est arrivee beaucoup plus tard ...
edit pardon j avais oublie le : :paf: element indispensable a la communication sur ce forum
Non parce qu'on a tué les mauvais programmeurs :o :ane:catseye a écrit:Disons qu'un while(1) dans une interruption va calmer net ton OS ...:paf:taigaIV a écrit:
L os en tant que tel non puisqu il ne te founit rien pour le faire.
Et au passage la notion de protection de memoire est arrivee beaucoup plus tard ...
taigaIV a écrit:
De ultra optimise a simplement multithreade il y a un pas tout de meme. Il semble que la puissance brut par core ne va pas augmenter aussi vite que ce que nous avons connus. Il va donc falloir multithreades les usines a gaz pour quelles tournent. Les fondeurs fournissent de plus en plus d outils aux dev pour les aides, ce n est sans doutes pas un hasard
catseye a écrit:
C'est sur, mais dans ce cas, y a quand même un gain potentiel, le scheduler de l'OS donnera plus de temps pour tes processus ... ;)
catseye a écrit:
'tu sais décomposer' ... disons que tu 'saurais' décomposer
catseye a écrit:
et le gain, je le cherche encore .. :paf:
On ne peut pas raisonner en instruction, mais uniquement en threads. On n'affecte pas un thread à un CPU pour chaque instruction, car le changement de CPU est lourd et que ça pénalise. Il faut pas le faire trop souvent ce qui rend la manip franchement ardue. Or établir à l'idéal par avance la charge que vont nécessiter les threads c'est tout sauf évident, et en fait y a que le dev qui peut avoir une idée de l'importance des traitements qu'il soumet, des relations entres les threads et de l'impact des I/O. La répartition de l'OS c'est plus ou moins bourrin, parce faite en aveugle :/ Avantage par contre, c'est que le dev n'a pas a y penser et que dans certains cas c'est absolument pas gênant ou très peu impactant.megadub a écrit:catseye a écrit:
C'est sur, mais dans ce cas, y a quand même un gain potentiel, le scheduler de l'OS donnera plus de temps pour tes processus ... ;)
oui, comme je dis, à l'extrème tu peux faire 10 petites instructions sur le 1° CPU pendant qu'une grosse instruction tourne sur le 2°... du coup du passe le temps de la plus longue instruction au lieu d'attendre la fin des 11 instructions. mais si tu peux partager la plus longue entre les 2 CPU tu peux espérer mieux t'en tirer... enfin, je pense :ane:
a priori c'est plutôt le parallélisme qui pose problème... si l'OS sérialise y'a pas de lézard sauf que c'est plus lent
Sujets Similaires: Découvrez aussi :
AchetezFacile (Comparateur de prix) -
JeuxVideo.fr -
Neteco -
Ozap -
Mobinaute -
JeuxVideo.TV (Emissions TV)
Echanges de Liens :
Allociné (Cinéma, VOD) -
Cityvox (Paris) -
Franchise Jeux Vidéo -
Boursier.com (Bourse Quotidien) -
Infobebes (Grossesse)
Culture Jeux (Encyclopédie) -
Webdistrib (Matériel Informatique) -
Locafilm (Location DVD) -
Pixmania (GPS Garmin) -
auFeminin (beauté, mode)
Sur cette page : Europe: la condamnation de Microsoft est confirmée : taigaIV a écrit:
Avec l ar.... Mots Clefs : informatique, PC, hardware, matériel, jeux vidéo, multimédia, logiciel, téléchar....
