IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Java : des chercheurs lancent un plugin Eclipse pour la programmation parallèle
Qui fait suite à la publication d'extensions spécifiques

Le , par Idelways

150PARTAGES

0  0 
Mise à jour du 20/12/2010 par Idelways

Une équipe de chercheurs de l'Université de l'Illinois vient de sortir un outil interactif destiné à faciliter l'écriture de programmes Java pouvant bénéficier simultanément de la puissance de calcul de plusieurs processeurs.

Il s'agit de DPJizer, un plugin pour l'IDE Eclipse. Cette même équipe avait déjà développé des extensions au langage Java destinés à prévenir les problèmes usuels du développement d'applications parallèles, des extensions rendues publiques fin octobre (lire ci-avant).

L'équipe du projet décrit ce plug-in comme étant le premier outil interactif, pratique et à effet d'inférence pour un système d'effet moderne et orienté objet.

Selon ces universitaires, un système d'effet (un système formel qui décrit les effets de calcul de programmes informatiques, tels que les effets secondaires) nécessite de la part des développeurs de nombreuses annotations.
Des annotations qu'il faut synchroniser continuellement avec son code.

Une tâche fastidieuse que DPJizer automatise en analysant l'intégralité du programme pour y inférer des annotations DPJ.
Les chercheurs trouvent même les annotations inférés par DPJizer plus précises que celles faites par les développeurs manuellement.

Pour mémoire, le projet DJP, pour Deterministic Parallell Java a pour but de fournir une sémantique « déterministe par défaut » à un langage de programmation impératif et orienté objet à vérification de type à la compilation.

Le déterminisme dont il est question signifie que le programme produit à toutes les exécutions le même résultat visible pour une même entrée donnée. A moins que le développeur en décide autrement.

Le projet, son code source et son guide de mise en route sont disponibles en téléchargement sur Github

Source : le site du projet

Et vous ?

Avez-vous essayé les exetensions Deterministic Parallell Java ? Le plugin DPJizer vous semble-t-il intéressant ?

En collaboration avec Gordon Fowler

Une erreur dans cette actualité ? Signalez-nous-la !

Avatar de TheNOHDirector
Membre du Club https://www.developpez.com
Le 20/12/2010 à 15:59
Dans la même veine, des gens comme Ralph Johnson (il fait partie du GoF) travaillent sur un langage de pattern pour la programmation parallèle.

http://parlab.eecs.berkeley.edu/wiki...terns/patterns

Il s'agit encore d'un travail en cours, mais reconnaitre et connaitre ces patterns est probablement important à notre époque.
J'ai beaucoup de lecture à ce sujet d'ailleurs
0  0 
Avatar de ateji
Candidat au Club https://www.developpez.com
Le 14/02/2011 à 19:19
Il n'est pas nécessaire d'aller chercher jusqu'en Illinois. J'ajouterais une info à cette brève:

Java : des extensions pour la programmation parallèle imaginées par des chercheurs d'une startup parisienne

L'extension de Java en question s'appelle Ateji PX, elle est disponible depuis l'été dernier sous la forme d'un plugin Eclipse, et elle n'est pas limitée aux programmes déterministes.

L'idée de base est très simple : pour écrire Hello et World en parallèle, on construit un bloc parallèle avec deux branches. Ca s'écrit comme ça :

Code : Sélectionner tout
1
[
  || System.out.println("Hello");
  || System.out.println("World");
]
Difficile de faire plus simple, non ?

Et ça imprimera Hello World ou World Hello selon l'ordre dans lequel les branches parallèles ont été exécutées.

Bien sur il y a beaucoup plus que Hello World, on gère le parallélisme de données, de tâches, le data-flow, les streams à la MapReduce, etc. Vous pouvez voir un aperçu des constructions du langage dans cet article : http://www.ateji.com/px/whitepapers/...ava%20v1.0.pdf
0  0