<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="http://devoo.info/index.php/feed/rss2/xslt" ?><rss version="2.0"
  xmlns:dc="http://purl.org/dc/elements/1.1/"
  xmlns:wfw="http://wellformedweb.org/CommentAPI/"
  xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
  <title>devoo - info pour les ours - Stage master recherche</title>
  <link>http://devoo.info/index.php/</link>
  <description></description>
  <language>fr</language>
  <pubDate>Tue, 02 Dec 2008 17:08:59 +0100</pubDate>
  <copyright></copyright>
  <docs>http://blogs.law.harvard.edu/tech/rss</docs>
  <generator>Dotclear</generator>
  
    
  <item>
    <title>Diminuer le débit d'un réseau haut débit</title>
    <link>http://devoo.info/index.php/post/2006/01/27/120-diminuer-le-debit-dun-reseau-haut-debit</link>
    <guid isPermaLink="false">urn:md5:cdfc195d5423ebae7663812e30f06fab</guid>
    <pubDate>Fri, 27 Jan 2006 10:51:19 +0000</pubDate>
    <dc:creator>darksword</dc:creator>
        <category>Stage master recherche</category>
            
    <description>    &lt;p&gt;En voila un titre qui fera dresser les poils d'&lt;a href=&quot;http://b0op.com&quot; hreflang=&quot;fr&quot;&gt;alexandre&lt;/a&gt; :)
Etant donné un réseau Gigabit, comment réduire le débit réseau pour pouvoir comparer les résultats obtenus en fonction du débit disponible.&lt;/p&gt;


&lt;p&gt;Ceci étant, pour pouvoir &quot;diminuer&quot; le débit, faut qu'il soit au préalable élevé&amp;nbsp;!&lt;/p&gt;


&lt;p&gt;Bref si quelqu'un connait la manière de réaliser cela de manière artificielle (ie&amp;nbsp;: sans changer physiquement l'équipement réseau) et bien je serais ravi d'avoir des infos dessus.&lt;/p&gt;</description>
    
    
    
          <comments>http://devoo.info/index.php/post/2006/01/27/120-diminuer-le-debit-dun-reseau-haut-debit#comment-form</comments>
      <wfw:comment>http://devoo.info/index.php/post/2006/01/27/120-diminuer-le-debit-dun-reseau-haut-debit#comment-form</wfw:comment>
      <wfw:commentRss>http://devoo.info/index.php/feed/rss2/comments/119</wfw:commentRss>
      </item>
    
  <item>
    <title>Mesure de temps Java - quand la nanoseconde compte !</title>
    <link>http://devoo.info/index.php/post/2006/01/26/119-mesure-de-temps-java-quand-la-nanoseconde-compte</link>
    <guid isPermaLink="false">urn:md5:47517ae20c777d1181dafff1b4eaae37</guid>
    <pubDate>Thu, 26 Jan 2006 22:49:16 +0000</pubDate>
    <dc:creator>darksword</dc:creator>
        <category>Stage master recherche</category>
            
    <description>    &lt;p&gt;Le but est de pouvoir faire des calculs à la fois précis et utilisant peu de ressource sur une grille, donc sur des traitements long (ie&amp;nbsp;: qui entraine beaucoup de mesures)&lt;/p&gt;


&lt;p&gt;L'idée de base est de détourner l'utilisation des assertions en Java 1.5 pour pouvoir activer désactiver une fonction de mesure de temps.
Il existe d'autres possibilités mais elles ne correspondent pas à nos besoin&amp;nbsp;:&lt;/p&gt;


&lt;p&gt;Première idée, selon la valeur d'une variable définie, alors on executerais la fonction de calcul de temps ou non.&lt;/p&gt;


&lt;p&gt;Deuxième idée, la plus simple, utiliser une classe ou une autre selon les cas qui contiendrait une fonction de mesure de temps réelle ou vide selon son type. Cette possibilité semble interessante mais elle cause un surcout puisqu'on fait réellement un appel de fonction.&lt;/p&gt;


&lt;p&gt;Troisième idée, pour réduire le léger surcout, est de marquer les lignes de mesure de temps grâce à un marqueur special et de lancer un script qui se chargera de commenter ou décommenter le code entre ces balises le cas échéant.&lt;/p&gt;


&lt;p&gt;Quatrième idée, plus propre mais beaucoup plus couteuse, est de réaliser le design pattern Observable-Observer. Et d'activer l'Observer que si on en a besoin. Le problème est que c'est une mesure indirecte et donc plus couteuse.&lt;/p&gt;


&lt;p&gt;Cinquième idée est d'utiliser la spécialisation pour introduire la mesure de temps. Si on a un traitement a() de la classe A, sans mesure de temps, alors on peut la spécialiser en une classe B de méthode b() qui fera&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;b(){
 debutMesureDuTemps();
 super.a();
 finMesureDuTemps();
}&lt;/pre&gt;

&lt;p&gt;Le principal problème est qu'il ne permet pas d'ajouter facilement des mesures de temps puisqu'il faut découper préalablement les méthodes en bloc. Et requiert donc plus d'appel de méthode et donc un surcout.&lt;/p&gt;


&lt;p&gt;La solution proposé est de s'appuyer sur le méchanisme des assertions, utilisé normalement pour tester les pré/post-conditions.
Par default, Java desactive les assertions, c'est à dire qu'il faut compiler son programme avec l'option '-ea' ou -eanbleassertion' pour qu'elles soient &quot;executées&quot;. Sinon elles ne le seront pas et il n'y aura pas de surcharge.&lt;/p&gt;


&lt;p&gt;Il faut bien préciser ici que cette utilisation est border-line dans la mesure ou, ce n'est qu'une utilisation détournée.
Pour valider cette méthode, deux possibilités&amp;nbsp;:
&lt;strong&gt;* Analyse du bytecode&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;L'analyse du bytecode montre ceci dans le cas ou l'on utilise les assertions&amp;nbsp;:&lt;/p&gt;


&lt;pre&gt;31      getstatic #23 &amp;lt;Field assertionCost/WithAssertion.$assertionsDisabled Z&amp;gt;
34      ifne 52
37      aload_2
38      invokevirtual #49 &amp;lt;Method assertionCost/TimeMesuration.start ()Z&amp;gt;
41      ifne 52
44      new #51 &amp;lt;Class java/lang/AssertionError&amp;gt;
47      dup
48      invokenonvirtual #52 &amp;lt;Method java/lang/AssertionError.&amp;lt;init&amp;gt; ()V&amp;gt;
51      athrow&lt;/pre&gt;


&lt;p&gt;La ligne 31 permet de demander de récuper la variable statique assertionsDisabled crée par le compilateur (qui est de type boolean&amp;nbsp;: Z).
Si les assertions ne sont pas desactivées (ligne 34) alors on execute la fonction de temps start() de la classe TimeMesuration qui retourne un boolean.
Si la valeur retournée n'est pas &quot;true&quot;, alors on crée une exception (ligne 44) et on la lance (ligne 51).&lt;/p&gt;


&lt;p&gt;Problème par rapport à l'idée de base&amp;nbsp;:
- la possibilité que l'assertion soit fausse implique un deuxième test qui vérifie le retour (le premier vérifie que les assertions sont activés). Bref on se retrouve avec 2 tests, ce qui finalement semble plus ou moins revenir au même qu'un test classique&lt;/p&gt;



&lt;p&gt;Il me semble bizarre que l'on doive tester si les assertions sont desactivés. Soit&amp;nbsp;:
- il faut compiler le biniou avec une option particulière pour ne pas faire ce test
- soit il y a une option qui permet de désactiver les assertions en fonction des classes&lt;/p&gt;


&lt;p&gt;&lt;a href=&quot;http://devoo.info/index.php/post/2006/01/26/EDIT&quot;&gt;EDIT&lt;/a&gt;
Il est en fait vraissemblable que ce soit le classLoader de la JVM qui en chargeant le bytecode décide de zapper les assertions ou non.&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;* Des benchs&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;img src=&quot;http://devoo.info/images/dea/fonction-commente.png&quot; alt=&quot;java fonction temps commentee&quot; /&gt;
&lt;img src=&quot;http://devoo.info/images/dea/fonction-vide.png&quot; alt=&quot;java fonction temps vide&quot; /&gt;
&lt;img src=&quot;http://devoo.info/images/dea/fonctions-conditionels.png&quot; alt=&quot;java fonction temps condionnel&quot; /&gt;
&lt;img src=&quot;http://devoo.info/images/dea/fonctions-no-assertions.png&quot; alt=&quot;java fonction temps assertion&quot; /&gt;&lt;/p&gt;


&lt;p&gt;Encore une fois les résultats sont bizarre. J'essairais de retester demain avec une machine dédié.&lt;/p&gt;


&lt;p&gt;Bref bilan mitigé. Cela m'a permis de plongé un peu dans le bytecode. J'en suis pas plus avancé concernant les mesures de temps.&lt;/p&gt;</description>
    
    
    
          <comments>http://devoo.info/index.php/post/2006/01/26/119-mesure-de-temps-java-quand-la-nanoseconde-compte#comment-form</comments>
      <wfw:comment>http://devoo.info/index.php/post/2006/01/26/119-mesure-de-temps-java-quand-la-nanoseconde-compte#comment-form</wfw:comment>
      <wfw:commentRss>http://devoo.info/index.php/feed/rss2/comments/118</wfw:commentRss>
      </item>
    
  <item>
    <title>Sujet de stage master 2 recherche</title>
    <link>http://devoo.info/index.php/post/2006/01/16/117-sujet-de-stage-master-2-recherche</link>
    <guid isPermaLink="false">urn:md5:409267fe6f89748c2175756fbceec8ab</guid>
    <pubDate>Mon, 16 Jan 2006 19:31:58 +0000</pubDate>
    <dc:creator>darksword</dc:creator>
        <category>Stage master recherche</category>
            
    <description>    &lt;p&gt;&lt;strong&gt;Titre du sujet :&lt;/strong&gt; DataMining distribué&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Responsable :&lt;/strong&gt; &lt;a href=&quot;http://www.lifl.fr/ANNUAIRE/employee.php?login=toursel&quot;&gt;Bernard Toursel&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Encadrement :&lt;/strong&gt; &lt;a href=&quot;http://www.lifl.fr/ANNUAIRE/employee.php?login=toursel&quot;&gt;Bernard Toursel&lt;/a&gt;, &lt;a href=&quot;http://www.lifl.fr/ANNUAIRE/employee.php?login=Olejnik&quot;&gt;Richard Olejnik&lt;/a&gt;, &lt;a href=&quot;http://www.lifl.fr/ANNUAIRE/employee.php?login=fiolet&quot;&gt;Valérie Fiolet&lt;/a&gt;&lt;/p&gt;


&lt;p&gt;&lt;strong&gt;Description du sujet :&lt;/strong&gt;&lt;/p&gt;


&lt;p&gt;&lt;ins&gt;1. Contexte, problématique et objectifs&lt;/ins&gt;&lt;/p&gt;


&lt;p&gt;Le datamining distribué (DDM&amp;nbsp;: Distributed DataMining) se situe à la conjonction de deux évolutions majeures&amp;nbsp;: d&amp;#8217;une part, l&amp;#8217;explosion de masses de données importantes et souvent réparties dont il faut savoir extraire une connaissance utile, d&amp;#8217;autre part le développement sans précédent des réseaux d&amp;#8217;ordinateurs permettant le calcul distribué sur des réseaux, locaux comme à grande échelle (GRID, voir &lt;a href=&quot;http://www.grid5000.fr/&quot; hreflang=&quot;fr&quot;&gt;GRID5000&lt;/a&gt;). Le «&amp;nbsp;verrou technologique&amp;nbsp;» se situe aussi bien en termes d&amp;#8217;utilisation de nouvelles heuristiques diminuant la complexité des traitements et plus aptes à une exécution parallèle, qu&amp;#8217;en termes de distribution des traitements, des communications et des mémoires, dans un contexte non centralisé et hétérogène (grille).&lt;/p&gt;


&lt;p&gt;Dans ce contexte, la recherche distribuée de règles d&amp;#8217;association exige&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;d&amp;#8217;une part, une distribution «&amp;nbsp;intelligente&amp;nbsp;» de la base de données&amp;nbsp;: dans le projet en cours, cette fragmentation est basée sur une approche parallèle de type clustering, pour laquelle nous avons défini une nouvelle technique dite de «&amp;nbsp;clustering incrémental »,&lt;/li&gt;
&lt;li&gt;d&amp;#8217;autre part, des heuristiques réparties sur l&amp;#8217;ensemble des fragments.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;ins&gt;2. le travail à effectuer&lt;/ins&gt;&lt;/p&gt;


&lt;p&gt;Le travail à effectuer s&amp;#8217;inscrit dans le cadre du projet de recherche en cours. Il concerne les deux aspects ci-dessus&amp;nbsp;:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;implanter et améliorer la nouvelle méthode de clustering incrémental et l&amp;#8217;évaluer et la paramétrer sur une base de données médicales,&lt;/li&gt;
&lt;li&gt;étudier et implanter une heuristique distribuée qui assure une bonne découverte des règles d&amp;#8217;associations avec un minimum de communications, en testant en particulier l&amp;#8217;influence de la qualité de la distribution issue de la phase de clustering sur l&amp;#8217;efficacité de la méthode.&lt;/li&gt;
&lt;/ul&gt;</description>
    
    
    
          <comments>http://devoo.info/index.php/post/2006/01/16/117-sujet-de-stage-master-2-recherche#comment-form</comments>
      <wfw:comment>http://devoo.info/index.php/post/2006/01/16/117-sujet-de-stage-master-2-recherche#comment-form</wfw:comment>
      <wfw:commentRss>http://devoo.info/index.php/feed/rss2/comments/116</wfw:commentRss>
      </item>
    
</channel>
</rss>