<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0 plus SVG 1.1//EN" "http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/>
    <title>Team:STORM</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="Overall Objectives - Overall Objectives"/>
    <meta name="dc.title" content="Overall Objectives - Overall Objectives"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2016-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="STORM"/>
    <script type="text/javascript" src="https://raweb.inria.fr/rapportsactivite/RA2016/static/MathJax/MathJax.js?config=TeX-MML-AM_CHTML">
      <!--MathJax-->
    </script>
  </head>
  <body>
    <div class="tdmdiv">
      <div class="logo">
        <a href="http://www.inria.fr">
          <img style="align:bottom; border:none" src="../static/img/icons/logo_INRIA-coul.jpg" alt="Inria"/>
        </a>
      </div>
      <div class="TdmEntry">
        <div class="tdmentete">
          <a href="uid0.html">Team Storm</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="tdmActPage">
        <a href="./uid3.html">Overall Objectives</a>
      </div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid8.html&#10;&#9;&#9;  ">Parallel Computing and Architectures</a></li><li><a href="uid9.html&#10;&#9;&#9;  ">Scientific and Societal Stakes</a></li><li><a href="uid10.html&#10;&#9;&#9;  ">Towards More Abstraction</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid12.html&#10;&#9;&#9;  ">Application Fields</a></li></ul></div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid14.html&#10;&#9;&#9;  ">Chameleon</a></li><li><a href="uid19.html&#10;&#9;&#9;  ">KLANG-OMP</a></li><li><a href="uid23.html&#10;&#9;&#9;  ">KaStORS</a></li><li><a href="uid27.html&#10;&#9;&#9;  ">MORSE</a></li><li><a href="uid30.html&#10;&#9;&#9;  ">AFF3CT</a></li><li><a href="uid36.html&#10;&#9;&#9;  ">StarPU</a></li><li><a href="uid40.html&#10;&#9;&#9;  ">hwloc</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid46.html&#10;&#9;&#9;  ">Automatic OpenCL Task Adaptation for Heterogeneous Architectures</a></li><li><a href="uid47.html&#10;&#9;&#9;  ">Fast Forward Error Correction Codes</a></li><li><a href="uid48.html&#10;&#9;&#9;  ">Resource aggregation for task-based Cholesky Factorization</a></li><li><a href="uid49.html&#10;&#9;&#9;  ">Scheduling of Linear Algebra Kernels on Multiple Heterogeneous Resources</a></li><li><a href="uid50.html&#10;&#9;&#9;  ">Analyzing Dynamic Task-Based Applications on Hybrid Platforms: An Agile Scripting Approach</a></li><li><a href="uid51.html&#10;&#9;&#9;  ">Distributed StarPU Scalability on Heterogeneous Platforms</a></li><li><a href="uid52.html&#10;&#9;&#9;  ">Controlling the Memory Subscription of Distributed Applications with a Task-Based Runtime System</a></li><li><a href="uid53.html&#10;&#9;&#9;  ">StarPU Interfacing with GASPI/GPI2</a></li><li><a href="uid54.html&#10;&#9;&#9;  ">A Stencil DSEL for Single Code Accelerated Computing with SYCL</a></li><li><a href="uid55.html&#10;&#9;&#9;  ">Bridging the gap between OpenMP 4.0 and native runtime systems for the fast multipole method</a></li><li><a href="uid56.html&#10;&#9;&#9;  ">Hierarchical Tasks</a></li><li><a href="uid57.html&#10;&#9;&#9;  ">Software-Hardware Exploration for Read-Only Data</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid59.html&#10;&#9;&#9;  ">Bilateral Contracts with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid65.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid93.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid120.html&#10;&#9;&#9;  ">International Initiatives</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid126.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid156.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid199.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentyear" href="bibliography.html">Publications of the year</a>
          </li>
        </ul>
      </div>
    </div>
    <div id="main">
      <div class="mainentete">
        <div id="head_agauche">
          <small><a href="http://www.inria.fr">
	    
	    Inria
	  </a> | <a href="../index.html">
	    
	    Raweb 
	    2016</a> | <a href="http://www.inria.fr/en/teams/storm">Presentation of the Team STORM</a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="storm.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="storm.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-storm-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../storm/storm.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-storm-epub.png"/>
                </a>
              </td>
            </tr>
            <tr>
              <td/>
              <td>PDF
</td>
              <td>e-Pub
</td>
            </tr>
          </table>
        </div>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid1.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid8.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
      <div id="textepage">
        <!--DEBUT2 du corps du module-->
        <h2>Section: 
      Overall Objectives</h2>
        <h3 class="titre3">Overall Objectives</h3>
        <p>A successful approach to deal with the complexity of modern
architectures is centered around the use of runtime systems, to manage
tasks dynamically, these runtime systems being either generic or
specific to an application. Similarly, on the compiler side,
optimizations and analyses are more aggressive in iterative
compilation frameworks, fit for library generations, or DSL, in
particular for linear algebra methods. To go beyond this state of the
art and alleviate the difficulties for programming these machines, we
believe it is necessary to provide inputs with richer semantics to
runtime and compiler alike, and in particular by combining both
approaches.</p>
        <p>This general objective is declined into two sub-objectives, the first
concerning the expression of parallelism itself, the second the
optimization and adaptation of this parallelism by compilers and runtimes.</p>
        <div align="center" style="margin-top:10px">
          <a name="uid4">
            <!--...-->
          </a>
          <table title="" class="objectContainer">
            <caption align="bottom"><strong>Figure
	1. </strong>STORM Big Picture</caption>
            <tr align="center">
              <td>
                <table>
                  <tr>
                    <td style="height:3px;" align="center">
                      <img style="width:341.6013pt" alt="IMG/storm-big-picture.png" src="IMG/storm-big-picture.png"/>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </div>
        <ul>
          <li>
            <p class="notaparagraph"><a name="uid5"> </a>Expressing parallelism: As shown in the following figure, we
propose to work on parallelism expression through Domain Specific
Languages, able to capture the essence of the algorithms used
through usual parallel languages such as OpenCL, OpenMP and through
high performance libraries. The DSLs will be driven by applications,
with the idea to capture at the algorithmic level the parallelism of
the problem and perform dynamic data layout adaptation, parallel and
algorithmic optimizations. The principle here is to capture a
higher level of semantics, enabling users to express not only
parallelism but also different algorithms.</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid6"> </a>Optimizing and adapting parallelism: The goal here is to
leverage the necessary adaptation to evolving hardware, by providing
mechanisms allowing users to run the same code on different
architectures. This implies to adapt parallelism, in particular the
granularity of the work, to the architecture. This relies on the use
of existing parallel libraries and their composition, and more
generally the separation of concern between the description of
tasks, that represent semantic units of work, and the tasks to be
executed by the different processing units. Splitting or coarsening
moldable tasks, generating code for these tasks and scheduling them
is part of this work.</p>
            <p><a name="uid6"> </a>Finally, the abstraction we advocate for requires to propose a feed
back loop. This feed back has two objectives: To make users better
understand their application and how to change the expression of
parallelism if necessary, but also to propose an abstracted model
for the machine. This allows to develop and formalize the compiling,
scheduling techniques on a model, not too far from the real
machine. Here, simulation techniques are a way to abstract the
complexity of the architecture while preserving essential metrics.</p>
          </li>
        </ul>
      </div>
      <!--FIN du corps du module-->
      <br/>
      <div class="bottomNavigation">
        <div class="tail_aucentre">
          <a href="./uid1.html" accesskey="P"><img style="align:bottom; border:none" alt="previous" src="../static/img/icons/previous_motif.jpg"/> Previous | </a>
          <a href="./uid0.html" accesskey="U"><img style="align:bottom; border:none" alt="up" src="../static/img/icons/up_motif.jpg"/>  Home</a>
          <a href="./uid8.html" accesskey="N"> | Next <img style="align:bottom; border:none" alt="next" src="../static/img/icons/next_motif.jpg"/></a>
        </div>
        <br/>
      </div>
    </div>
  </body>
</html>
