Python 3.2 : la programmation parallèle arrive
Avec la première bêta de la nouvelle version du langage

Le , par Idelways, Expert éminent sénior
Mise à jour du 21/02/11 par Gordon Fowler

Depuis le gel de la syntaxe de Python, la branche des versions 2.x ne se verra plus ajouter que des corrections de bugs. Les réelles nouveautés, elles, seront intégrées directement dans le branche 3.x.

C'est donc avec un certain intérêt que les développeurs verront la sortie de Python 3.2, rendu disponible pendant le week-end.



Les efforts des équipes de développement de Python 3.2 se sont portés sur l'amélioration des librairies standards et le support du port du code vers Python 3.x. Rien de révolutionnaire donc mais des améliorations bienvenues (lire également ci-avant).

Une situation qui ne pouvait de toute façon être que difficilement autre avec ce moratoire.

Les différences entre Python 3.1 et Python 3.2 sont énumérées avec précision sur cette liste détaillée.

Python 3.2 est disponible sur cette page

Python 3.2 : la programmation parallèle arrive
avec la première bêta de la nouvelle version du langage

La première bêta de la prochaine version 3.2 du langage de programmation Python est désormais disponible.

Cette version maintient la même syntaxe et sémantique que la 3.0 mais devrait offrir d'ici sa sortie, en février, un meilleur support pour l'écriture d'applications réellement "multi-threadées".

Bien que le multicoeurs est désormais la norme établie en terme de processeurs, écrire des applications pouvant profiter simultanément de la puissance de calcul de plusieurs processeurs reste un vrai challenge pour les développeurs.

Une tâche à la base difficile, compliquée par les supports souvent insuffisant, voir inexistants des langages les plus populaires.

Ce à quoi, la version 3.2 de Python veut remédier, grâce aux fonctions d'un nouveau package destiné à faciliter cette tâche, jusqu'ici possible mais pas vraiment « developer-friendly ».

Proposé initialement par Brian Quinlan, ce projet devrait fournir une librairie de haut niveau appelée "Futures", qui sera disponible à partir d'un nouvel espace de nommage appelé à son tour et à juste titre "Concurrent".

Future devrait offrir un ensemble de classes qui permettra, par exemple, de lancer des calculs asynchrones.

Cette première bêta corrige aussi de nombreux bugs et se concentre sur l'amélioration de la bibliothèque standards du langage et le port des applications à Python 3.x.

Son module SSL (Secure Sockets Layer) a aussi été amélioré.

Un autre module facilitera l'accès aux informations de configurations.

Enfin, une nouvelle extension devrait permettre aux fichiers sources d'être partagés entre plusieurs versions de l'interpréteur Python.

Cette version beta est disponible en téléchargement sur cette page

Plus de détails sur le projet « futures » sur cette page

Source : Le site officiel de Python

Et vous ?

Avez-vous déjà essayé la programmation parallèle avec Python ?
Que pensez-vous des améliorations qu'apportent la beta de la version 3.2 du langage ?

En collaboration avec Gordon Fowler


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de Loenix Loenix - Membre actif https://www.developpez.com
le 13/12/2010 à 15:48
Bonjour a tous,

Pour ma part, je n'ai jamais eux recourt à la programmation parallèle, (n'ayant programmé qu'en python, c'est peut-être pour cela ^^), aillant vu le concept il y a peut de temps cela semble tout à fait intéressant et cette arrivé sur python tombe à pic. Toutefois, je ne voix pas cela non plus comme une révolution mais comme une amélioration, python à réussis à sens passer depuis des années.

Pour le reste, je pense que toutes améliorations est bonne à prendre. Je déplore quand même le fait qu'il est gardé la même syntaxe et sémantique que la 3.0 car les problème de compatibilité entre 2.x et 3.x ne font que s'accumuler, la transition est vraiment un soucie au j'aurai espéré peut-etre... un mini retour en arrière.
Pour ce qui est de l'améliorations à l'accès des configurations c'est un vrai plus, souvent tortueux de récupérer des informations sur le système pour faire un programme solide, nous allons pouvoir enfin faire des programmes "interactifs" avec notre OS favoris

Au final, je trouve bien le fait que python se renouvelle sans cesse pour proposer des versions de plus en plus performantes même si les librairies externes ne suivent pas toujours (c'est une sorte d'appel )... J'espère qu'ils ne trouveront pas trop de bug sur cette dernière.

Aller, je vous embête pas plus ^^, bon courage à tous et...

Au suivant

Mickael
Avatar de Camille_B Camille_B - Membre confirmé https://www.developpez.com
le 14/12/2010 à 22:50
Je suis curieux de savoir comment "future" interagit avec GIL, vous savez ce truc que ce cher Guido justifie par un laconique :

"Just Say No to the combined evils of locking, deadlocks, lock granularity, livelocks, nondeterminism and race conditions."

et qui consiste tout simplement à... "sérialiser" du code "multi-threadé" !

Cela j'ai totalement laissé tombé ce langage depuis 2.5, il y a peut-être du nouveau depuis
Avatar de wiztricks wiztricks - Modérateur https://www.developpez.com
le 16/12/2010 à 18:34
Citation Envoyé par Camille_B  Voir le message
Je suis curieux de savoir comment "future" interagit avec GIL, vous savez ce truc que ce cher Guido justifie par un laconique :

"Just Say No to the combined evils of locking, deadlocks, lock granularity, livelocks, nondeterminism and race conditions."

et qui consiste tout simplement à... "sérialiser" du code "multi-threadé" !

Cela j'ai totalement laissé tombé ce langage depuis 2.5, il y a peut-être du nouveau depuis

Il faut lire le PEP3148:
Futures are created by concrete implementations of the Executor class (called ExecutorService in Java). The reference implementation provides classes that use either a process or a thread pool to eagerly evaluate computations.

Python 2.6/2.7 incluent le module multiprocessing qui offre une API similaire à celles du threading en utilisant des processus séparés.
Et ca permet d'utiliser les processeurs disponibles par un side-step du GIL - on passe à côté. Ce n'est pas idéal, mais c'est largement suffisant pour l'utilisation de Python en mode "intégration" i.e. glue entre bibliothèques externes qui sont elles multithreades sans contrainte GIL.
- W.
Avatar de Gordon Fowler Gordon Fowler - Expert éminent sénior https://www.developpez.com
le 21/02/2011 à 8:46
Python 3.2 est disponible
Avec des librairies standards améliorées

Depuis le gel de la syntaxe de Python, la branche des versions 2.x ne se verra plus ajouter que des corrections de bugs. Les réelles nouveautés, elles, seront intégrées directement dans le branche 3.x.

C'est donc avec un certain intérêt que les développeurs verront la sortie de Python 3.2, rendu disponible pendant le week-end.



Les efforts des équipes de développement de Python 3.2 se sont portés sur l'amélioration des librairies standards et le support du port du code vers Python 3.x. Rien de révolutionnaire donc mais des améliorations bienvenues. Une situation qui ne pouvait de toute façon être que difficilement autre avec ce gel.

Les différences entre Python 3.1 et Python 3.2 sont énumérées avec précision sur cette liste détaillée.

Python 3.2 est disponible sur cette page
Avatar de FredOoo123 FredOoo123 - Membre à l'essai https://www.developpez.com
le 22/03/2011 à 14:38
Citation Envoyé par Apocalypses  Voir le message
python à réussis à s'en passer depuis des années.
Mickael

Mais pendant ces années, les processeurs n'étaient pas multicoeurs.
Et maintenant que les utilisateurs ont payé chère des processeurs qui le sont, ils veulent que les applications suivent.
Ils en veulent pour leur argent et ils ont bien raison.

Souvenez-vous pendant combien d'années Microsoft n'a pas utilisé la gestion de la mémoire étendue mise à disposition par Intel.
Et pourquoi un certain étudiant finlandais a créé Linux pendant ses vacances d'été.
Avatar de rambc rambc - Membre expérimenté https://www.developpez.com
le 23/03/2011 à 12:25
Citation Envoyé par FredOoo123  Voir le message
Et pourquoi un certain étudiant finlandais a créé Linux pendant ses vacances d'été.

Peux-tu nous rafraichir la mémoire ?
Avatar de FredOoo123 FredOoo123 - Membre à l'essai https://www.developpez.com
le 24/03/2011 à 1:28
rambc n'a pas compris, c'est grave ?
Avatar de rambc rambc - Membre expérimenté https://www.developpez.com
le 24/03/2011 à 13:24
C'est juste que je ne suis pas un spécialiste de l'histoire de l'informatique...
Avatar de wiztricks wiztricks - Modérateur https://www.developpez.com
le 24/03/2011 à 15:44
Citation Envoyé par rambc  Voir le message
C'est juste que je ne suis pas un spécialiste de l'histoire de l'informatique...

L'histoire de l'informatique nous dit que les multiprocesseurs sont diffusés assez largement depuis les années 80. Depuis des milliards de dollars ont été dépensés pour faire carburer des têtes bien pleines sur la parallélisation sans aboutir à des solutions convaincantes autres que le modèle SIMD appliqué à différents niveaux (et multiprocessing ou concurrent Python ne sont que des avatars de ce modèle).
note: un hyperviseur à la VMware n'est qu'une sorte de SIMD.

Pour faire mieux il faut hélas souvent gérer soi-même la distribution de la charge en fonction des besoins applicatifs et des possibilités techniques du jour.
- W
Offres d'emploi IT
Ingénieur logiciel android
SECOND BRIDGE - Ile de France - Paris (75000)
Consultant oracle H/F
WINID - Ile de France - Paris La Défense
Ingénieur expert en développements environnementaux H/F
IGN - Ile de France - Saint-Mandé (94160)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil