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

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Java : des extensions et un plugin pour la programmation parallèle


Sujet :

Java

  1. #1
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 549
    Points
    68 549
    Par défaut Java : des extensions et un plugin pour la programmation parallèle
    Java : des chercheurs lancent un plugin Eclipse pour la programmation parallèle
    Qui fait suite à la publication d'extensions spécifiques en octobre

    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



    Java : des extensions pour la programmation parallèle
    imaginées par des chercheurs de l'Université de l'Illinois



    Des chercheurs de l'université de l'Illinois, à Urbana-Champaign, ont développé des extensions au langage Java destinés à prévenir les problèmes usuels du développement d'applications parallèles.

    Distribué sous licence open-source, Deterministic Parallel Java (DJP) aide les développeurs à prévenir les bugs dûs à la programmation parallèle, en plein essor avec le passage massif de l'informatique aux processeurs multi-coeurs.

    Ce projet est le premier du genre qui garantit la sémantique déterministe sans vérification à l'exécution pour un langage orienté objet à usage général (non spécifique).

    Deterministic Parallel Java est concrètement un ensemble d'extensions au langage Java sous forme de compilateurs et un moteur d'exécution (runtime) pour réaliser des programmes qui produiraient toujours le même résultat visible pour une même entrée.

    C'est aussi le premier à utiliser la vérification des types à la compilation pour des opérations parallèles sur des tableaux de références (pointeurs).

    Ce comportement déterministe dans DPJ fonctionne par défaut, sauf si le développeur décide explicitement que son programme fonctionnera autrement.

    Le résultat est donc une variante parallèle du langage Java, sûre et modulaire, qui permettrait aux développeurs de porter des applications séquentielles vers des systèmes à cœurs multiples.

    L'équipe du projet ne compte pas s'arrêter là et travaille sur un C++ parallèle.

    Code source, binaires et documentation sont téléchargeable sur le site de l'Université de l'Illinois


    Source : le site du projet


    Et vous ?

    Qu'en pensez-vous ? Ce projet a-t-il de l'avenir ?
    Faites-vous du développement parallèle ? Avec quels langages ? Quels sont vos retours d'expériences ?

    En collaboration avec Gordon Fowler

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 681
    Points
    18 681
    Par défaut
    a-t-on un comparatif par rapport à Parallel-C#


    leur "ForkJoinTask" signifie-t-il qu'ils prévoient de paralléliser des processus, et ne plus se battre sur les threads ?
    par ailleurs, quid des données partagées ? l'interface dispo semble proposer uniquement un retour de données à la fin de l'exécution

  3. #3
    Membre émérite

    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    3 995
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 995
    Points : 2 528
    Points
    2 528
    Par défaut
    Plutôt alléchant. Ce type de concept a très certainement de l'avenir. Encapsuler la complexité afin de permettre aux développeurs applicatifs de profiter des dernières évolutions technologiques, c'est toujours une idée intéressante !

  4. #4
    Expert éminent sénior
    Avatar de Idelways
    Homme Profil pro
    Développeur Ruby on Rails / iOS
    Inscrit en
    Juin 2010
    Messages
    1 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur Ruby on Rails / iOS

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 374
    Points : 68 549
    Points
    68 549
    Par défaut
    Java : des chercheurs lancent un plugin Eclipse pour la programmation parallèle
    Qui fait suite à la publication d'extensions spécifiques en octobre

    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

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 51
    Points : 64
    Points
    64
    Par défaut
    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/patterns/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

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    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 - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    [
      || 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

Discussions similaires

  1. Des Plugins pour un programme Access
    Par ComputingFroggy dans le forum Access
    Réponses: 3
    Dernier message: 13/01/2015, 08h20
  2. Quel est le meilleur langage pour la programmation parallèle ?
    Par dourouc05 dans le forum Programmation parallèle, calcul scientifique et de haute performance (HPC)
    Réponses: 70
    Dernier message: 12/04/2012, 21h49
  3. Réponses: 2
    Dernier message: 23/11/2011, 16h27
  4. Réponses: 4
    Dernier message: 20/12/2010, 15h59
  5. Réponses: 0
    Dernier message: 16/12/2008, 07h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo