Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Pierrick's Blog

.Net "full power"

“Axum” un langage pour le faciliter l’écriture d’applications parallèles

un nouveau projet à vu le jour sur dev labs, il s’agit d’un langage Axum

Curieux.., j’ai installer le msi, qui me donne dans visual studio 2008, un type de projet supplémentaire :

image

 

curieux de connaitre ce qui avait derrière… j’ai suivi le webcast présent sur devlabs, et réalisé ma librairie mathématiques….

using System;
using System.Collections.Generic;
using System.Text;

namespace AxumMath
{
       
public channel IntOperator
    {
       
input int X;
       
input int Y;
       
output int Z;
    }
    
       
public agent AdderAgent : channel IntOperator
    {
       
public AdderAgent()
        {
           
while(true)
            {                
                Z
<-- (receive(X) + receive(Y));
            }
        }
    }
}

qui fait une addition….

mes premiers sentiments au sujet de ce langage sont :

  • effectivement on commence par décrire le message que l’on souhaite traiter, ensuite l’agent qui traite le message. mais je trouve cette description encore un peu trop verbeuse...

je pense qu’il est possible d’être un peu plus succinct.

public message IntOperator
{
   
input int X;
   
input int Y;
   
output int Z;
}

public agent AdderAgent
{
       
receive<IntOperator
        {
                Z
<-- X + Y;
        }
}

évidemment on peut imaginer une multitude d’écriture…

  • ce sucre syntaxique génère beaucoup de code(voir plus bas), mais en revanche cela simplifie l’écriture des applications
  • ce langage s’approche du domaine fonctionnel mais sans l’être.
  • le type du message est très “parlant”, on sait immédiatement ce qui est en entrée(input) et en sortie(ouput).

Revenons à notre agent et channel d’origine, et voyons ce que devient le code une fois compilé :

image

en réalité le mot clé channel, génère une classe avec les données qui dérive d’un classe “Channel”, mais pas seulement...

image

les données X,Y, Z, ne sont pas membres de la classe sous forme d’entier, mais sous forme d’objet complexe. Et oui fournir un langage pour concevoir des applications parallèles n’est pas simple…, surtout si le langage doit être accessible aux plus grands nombre,tout en rendant abstrait la distribution/parallélisme de “calculs utilisateur”.

en creusant un peu plus, cette implémentation de Axum utilise WCF pour faire transiter les données “input” :

image

il est clair que pour faire une addition, c’est peu être un peu trop…

La programmation parallèle est de plus en plus présente, tout les acteurs proposent des frameworks, langages, outils pour développer plus facilement des applications parallèles.

  • Outils
    • intel parallel studio
    • visual sutdio 2010
  • Framework
    • Parallel Fx (.Net)
    • PLINQ (.Net)
    • JPPF (java)
  • Langages
    • Arche (successeur de Polygoth)
    • Erlang
    • Axum

cette liste n’est pas exhaustive, mais la tendance est là !

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mercredi 20 mai 2009 17:47 par pierrick

Commentaires

FREMYCOMPANY a dit :

Je préfère effectivement ta proposition de syntaxe à la leur, même si le concept reste le même.

Juste encore une autre proposition, pour alimenter le débat :

public agent TestAgent

{

       [out

<int> S, out<int> P] process(in<int> X, in<int> Y)

       {

               out S = (X*X) + (Y*Y);

               out P = (2*X) * (2*Y);

       }

}

out<int> A; out<int> B;

[A, B] = TestAgent(2, 3);

Ce "langage" est jeune, il peut encore évoluer.

# mai 21, 2009 12:53
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 19 heures et 49 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 22 heures et 23 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39