Developpez.com

Le Club des Développeurs et IT Pro

Java : des chercheurs lancent un plugin Eclipse pour la programmation parallèle

Qui fait suite à la publication d'extensions spécifiques

Le 2010-12-20 11:42:15, par Idelways, Expert éminent sénior
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
  Discussion forum
5 commentaires
  • TheNOHDirector
    Membre du Club
    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
  • ateji
    Candidat au Club
    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 :
    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