Invité salimdz Posté(e) le 11 mai 2009 Share Posté(e) le 11 mai 2009 Les enjeux du parallélisme Lundi 11 mai 2009 à 08:30 S’il est un domaine où le logiciel accuse un retard par rapport au matériel, c’est bien le parallélisme. Alors que les machines multi-cœurs et multi-processeurs se généralisent, rares sont les applications capables d’exploiter cette montée en puissance. Quelles difficultées rencontrent les programmeurs et comment y faire face ? Les enjeux du parallélisme source : http://www.presence-pc.com/actualite/parallelisme-enjeux-34853/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité salimdz Posté(e) le 11 mai 2009 Share Posté(e) le 11 mai 2009 Du mono-coeur au multi-cœurs, quels gains ? Les fondeurs estiment qu’en restant sur l’architecture mono-cœur, la dissipation thermique aurait atteint en 2015-2020 la chaleur dégagée à la surface du soleil, soit 6000° C ! La course au MHz entraîne également une course à la consommation. De source Intel, si on augmente la fréquence du processeur de 20%, on augmente en moyenne les performances de 13%, mais la consommation augmente de 73%. En revanche, si l’on diminue la fréquence de 20%, on diminue la performance de 13% et la consommation diminue de 49%. Partant de ce constat, si l’on garde une fréquence à 80% de la fréquence d’origine et que l’on ajoute un second cœur à la même fréquence, on augmente les performances de 73% et la consommation n’augmente que de 2% ! source : http://www.presence-pc.com/tests/programmation-parallele-23109/ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bidossessi Posté(e) le 19 juillet 2009 Share Posté(e) le 19 juillet 2009 le véritable problème ici est que pour pouvoir concevoir une app qui utilise à fond le multithread, il faut supposer que les machines ou elle sera installé ont des proc multicore. 1er blocage. sinon, il faut prévoir une version single-thread de la même app, double travail. 2eme blocage ensuite, plusieurs langages de dev sont encore à leurs début en gestion de thread, et le problème que j'ai rencontré personnellement, à mon bas niveau de débutant en python, c'est comment faire efficacement communiquer ces threads indépendantes de manière intuitive. bref, ja'imerai bien, mais c'est pas évident. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
mouradski Posté(e) le 19 juillet 2009 Share Posté(e) le 19 juillet 2009 Si on parle que de parallélisme de taches, cela peut être fait au sein d'un même thread et dynamiquement selon la disponibilité des cœurs, exemple des traitements et calculs sur les collections et tableaux, des outils de programmation existent et on peut en abuser car au pire on a qu'un seul Core de dispo ou de libre et le traitement se fait et au mieux on a ce même traitement à la vitesse grand V. Pour revenir au Multi-Threading, il est vrai que c'est un vrai casse tête chinois de concevoir une application MT optimisée car il faut prendre en considération la disponibilité des cœurs à tout instants, la dépendances des traitements, le couplage entre différentes données des différents threads, éviter l'inter blocage même court, synchroniser convenablement ce beau monde relève de l'impossible lol du moins si on ignore l'architecture de la machine ciblée. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Darkvader Posté(e) le 20 juillet 2009 Share Posté(e) le 20 juillet 2009 le véritable problème ici est que pour pouvoir concevoir une app qui utilise à fond le multithread, il faut supposer que les machines ou elle sera installé ont des proc multicore. 1er blocage. sinon, il faut prévoir une version single-thread de la même app, double travail. 2eme blocage ensuite, plusieurs langages de dev sont encore à leurs début en gestion de thread, et le problème que j'ai rencontré personnellement, à mon bas niveau de débutant en python, c'est comment faire efficacement communiquer ces threads indépendantes de manière intuitive. bref, ja'imerai bien, mais c'est pas évident. I can tell you are a newbie in programming (no offense). Multi-threading can be done with a single processor as well as with multi-core one. Multi-threading in a single core is handled by the operating system where a process (App) is divided into multiple threads concurrently executing. For exemple an application could have 4 threads, a UI thread, network communication thread, a data aquisition thread and a logging thread running independently and sharing resources and memory (this is called time-division multitasking in a single core processor) but in multi-core processors multiple thread or processes can run at the same time (really at the same time no time division). And there are lots of other stuff like user thread and kernel thread ....etc that I can explain later if anybody is interested. By the way, Python sucks (literally) when it comes to multithreading, it doesn't really have a good way of multi tasking because of the central lock (Global Interpreter Lock ), another thing multithreading and parallelism has been around for decades it is not something new. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bidossessi Posté(e) le 20 juillet 2009 Share Posté(e) le 20 juillet 2009 I can tell you are a newbie in programming (no offense). Multi-threading can be done with a single processor as well as with multi-core one. Multi-threading in a single core is handled by the operating system where a process (App) is divided into multiple threads concurrently executing. For exemple an application could have 4 threads, a UI thread, network communication thread, a data aquisition thread and a logging thread running independently and sharing resources and memory (this is called time-division multitasking in a single core processor) but in multi-core processors multiple thread or processes can run at the same time (really at the same time no time division). And there are lots of other stuff like user thread and kernel thread ....etc that I can explain later if anybody is interested. By the way, Python sucks (literally) when it comes to multithreading, it doesn't really have a good way of multi tasking because of the central lock (Global Interpreter Lock ), another thing multithreading and parallelism has been around for decades it is not something new. je crois que je l'ai dit. je suis un total noob en programmation. mais j'aime apprendre. j'ai eu l'expérience first-hand du GIL et de ses emmerdes (essayer de lancer des taches en arrière-plan et garder l'interface réactive: casse-tête sauf avec les threads, sauf que la communication interthread sous python se résume à un systeme de queues avec comme seuls messages: job added, job done. bref, j'avais un self-imposed timetable à respecter alors, je suis passé à une autre méthode, pas très élégante: forking. alors si tu as des infos, je suis interressé, bien sur, please share. ps: parallel processing module in python: python-pp. any experience with it? looks like a synonym to the old threading module to my noob eyes. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité HAVOC Posté(e) le 20 juillet 2009 Share Posté(e) le 20 juillet 2009 J'me suis pas trop intéressé au thread sous Python car je n'en ai pas besoin pour mon application client (même si y'a une GUI et que normalement dans un mode parfait ça doit être conçu avec des thread)... mais je pense pas que ça soit pire qu'en JAVA. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.