<?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:RUNTIME</title>
    <link rel="stylesheet" href="../static/css/raweb.css" type="text/css"/>
    <meta name="description" content="Overall Objectives - Designing Efficient Runtime Systems"/>
    <meta name="dc.title" content="Overall Objectives - Designing Efficient Runtime Systems"/>
    <meta name="dc.subject" content=""/>
    <meta name="dc.publisher" content="INRIA"/>
    <meta name="dc.date" content="(SCHEME=ISO8601) 2014-01"/>
    <meta name="dc.type" content="Report"/>
    <meta name="dc.language" content="(SCHEME=ISO639-1) en"/>
    <meta name="projet" content="RUNTIME"/>
    <!-- Piwik -->
    <script type="text/javascript" src="/rapportsactivite/piwik.js"></script>
    <noscript><p><img src="//piwik.inria.fr/piwik.php?idsite=49" style="border:0;" alt="" /></p></noscript>
    <!-- End Piwik Code -->
  </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 Runtime</a>
        </div>
        <span>
          <a href="uid1.html">Members</a>
        </span>
      </div>
      <div class="TdmEntry">Overall Objectives<ul><li class="tdmActPage"><a href="./uid3.html">Designing Efficient Runtime Systems</a></li></ul></div>
      <div class="TdmEntry">Research Program<ul><li><a href="uid20.html&#10;&#9;&#9;  ">Runtime Systems Evolution</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid25.html&#10;&#9;&#9;  ">Application Domains</a></li></ul></div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid27.html&#10;&#9;&#9;  ">Common Communication Interface</a></li><li><a href="uid32.html&#10;&#9;&#9;  ">Hardware Locality</a></li><li><a href="uid39.html&#10;&#9;&#9;  ">Network Locality</a></li><li><a href="uid45.html&#10;&#9;&#9;  ">
        KNem
      </a></li><li><a href="uid53.html&#10;&#9;&#9;  ">
        Open-MX
      </a></li><li><a href="uid62.html&#10;&#9;&#9;  ">StarPU</a></li><li><a href="uid76.html&#10;&#9;&#9;  ">
        Klang-OMP
      </a></li><li><a href="uid80.html&#10;&#9;&#9;  ">
        Kastors
      </a></li><li><a href="uid82.html&#10;&#9;&#9;  ">NewMadeleine and PIOMan</a></li><li><a href="uid91.html&#10;&#9;&#9;  ">PadicoTM</a></li><li><a href="uid99.html&#10;&#9;&#9;  ">
        MAQAO
      </a></li><li><a href="uid105.html&#10;&#9;&#9;  ">
        QIRAL
      </a></li><li><a href="uid109.html&#10;&#9;&#9;  ">
        TreeMatch
      </a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid117.html&#10;&#9;&#9;  ">Highlights of the Year</a></li><li><a href="uid120.html&#10;&#9;&#9;  ">Task scheduling over heterogeneous architectures</a></li><li><a href="uid121.html&#10;&#9;&#9;  ">Modeling hierarchical platform memory performance with microbenchmarks</a></li><li><a href="uid122.html&#10;&#9;&#9;  ">Static modeling of clusters of multicore
and heterogeneous nodes</a></li><li><a href="uid123.html&#10;&#9;&#9;  ">Multithreaded communications</a></li><li><a href="uid124.html&#10;&#9;&#9;  ">Toplogy-aware load balancing in Charm++</a></li><li><a href="uid125.html&#10;&#9;&#9;  ">Topology-aware ressource allocation</a></li><li><a href="uid126.html&#10;&#9;&#9;  ">Scheduling of dynamic streaming applications on hybrid embedded MPSoCs</a></li><li><a href="uid127.html&#10;&#9;&#9;  ">Performance model for multithreaded applications on multi-core processors</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid129.html&#10;&#9;&#9;  ">Bilateral Grants with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid135.html&#10;&#9;&#9;  ">Regional Initiatives</a></li><li><a href="uid138.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid167.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid209.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid248.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid253.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid265.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid292.html&#10;&#9;&#9;  ">Popularization</a></li></ul></div>
      <div class="TdmEntry">
        <div>Bibliography</div>
      </div>
      <div class="TdmEntry">
        <ul>
          <li>
            <a id="tdmbibentmajor" href="bibliography.html">Major publications</a>
          </li>
          <li>
            <a id="tdmbibentyear" href="bibliography.html#year">Publications of the year</a>
          </li>
          <li>
            <a id="tdmbibentfoot" href="bibliography.html#References">References in notes</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 
	    2014</a> | <a href="http://www.inria.fr/en/teams/runtime">Presentation of the Team RUNTIME</a> | <a href="http://runtime.bordeaux.inria.fr/">RUNTIME Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="runtime.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="runtime.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-runtime-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../runtime/runtime.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-runtime-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="./uid20.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">Designing Efficient Runtime Systems</h3>
        <p>Parallel, Runtime, Environment, Heterogeneity, SMP, Multicore, NUMA, HPC, High-Speed Networks, Protocols, MPI, Scheduling, Thread, OpenMP, Compiler Optimizations</p>
        <p>The <span class="smallcap">Runtime </span> research project takes place within the context of High
Performance Computing. It seeks to explore the design, the
implementation and the evaluation of novel mechanisms needed by <b>runtime systems</b> for parallel computers. <i>Runtime systems</i> are
intermediate software layers providing parallel programming
environments with specific functionalities left unaddressed by the
operating system. Runtime systems serve as a target for parallel
language compilers (e.g. OpenMP), numerical libraries (e.g. Basic
Linear Algebra Routines), communication libraries (e.g. MPI) or
high-level programming environments (e.g. Charm++).</p>
        <p>Runtime systems can thus be seen as functional extensions of operating
systems, but the boundary between these layers is rather fuzzy since
runtime systems often bypass (or redefine) functions usually implemented
at the OS level.
The increasing complexity of modern parallel hardware makes it
even more necessary to postpone essential decisions and actions
(scheduling, optimizations) at run time. Since runtime systems
are able to perform dynamically what cannot be done statically,
they indeed constitute an essential piece in the HPC software
stack.
The typical duties of a runtime system include task/thread scheduling,
memory management, intra and extranode communication, synchronization,
support for trace generation, topology discovery, etc.
<b>The core of our research activities aims at improving algorithms
and techniques involved in the design of runtime systems tailored for
modern parallel architectures.</b></p>
        <p>One of the main challenges encountered when designing modern runtime
systems is to provide powerful abstractions, both at the programming
interface level and at the implementation level, to ensure <b>portability of performance</b> on increasingly complex hardware
architectures. Consequently, even if the design of efficient algorithms
obviously remains an important part of our research activity, the main
challenge is to find means to transfer knowledge from the application
down to the runtime system. It is indeed crucial to keep and take
advantage of information about the application behavior at the level
where scheduling or transfer decisions are made. We have thus devoted
significant efforts in <b>providing programming environments with
portable ways to transmit hints</b> (eg. scheduling hints, memory
management hints, etc.) to the underlying runtime system.</p>
        <p>As detailed in the following sections, our research group has been
developing a large spectrum of research topics during the last four
years, ranging from low-level code optimization techniques to
high-level task-based programming interfaces. The originality of our
approach lies in the fact that we try to address these issues
following a global approach, keeping in mind that all the achievements
are intended to be eventually integrated together within a unified
software stack. This led us to cross-study differents topics and
co-design several pieces of software.</p>
        <p>Our research project centers on three main directions:</p>
        <dl>
          <dt>Mastering large, hierarchical multiprocessor machines</dt>
          <dd>
            <ul>
              <li>
                <p class="notaparagraph"><a name="uid5"> </a>Thread scheduling over multicore machines</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid6"> </a>Task scheduling over GPU heterogeneous machines</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid7"> </a>Exploring parallelism orchestration at compiler and runtime level</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid8"> </a>Improved interactions between optimizing compiler and runtime</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid9"> </a>Modeling performance of hierarchical multicore nodes</p>
              </li>
            </ul>
          </dd>
          <dt>Optimizing communication over high performance clusters</dt>
          <dd>
            <ul>
              <li>
                <p class="notaparagraph"><a name="uid11"> </a>Scheduling data packets over high speed networks</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid12"> </a>New MPI implementations for Petascale computers</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid13"> </a>Optimized intra-node communication</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid14"> </a>Message passing over commodity networking hardware</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid15"> </a>Influence of process placement on parallel applications performance</p>
              </li>
            </ul>
          </dd>
          <dt>Integrating Communications and Multithreading</dt>
          <dd>
            <ul>
              <li>
                <p class="notaparagraph"><a name="uid17"> </a>Parallel, event-driven communication libraries</p>
              </li>
              <li>
                <p class="notaparagraph"><a name="uid18"> </a>Communication and I/O within large multicore nodes</p>
              </li>
            </ul>
          </dd>
        </dl>
        <p>Beside those main research topics, we obviously intend to work in
collaboration with other research teams in order to validate our
achievements by integrating our results into larger software
environments (MPI, OpenMP) and to join our efforts to solve complex
problems.</p>
        <p>Among the target environments, we intend to carry on developing the
successor to the PM<span class="math"><math xmlns="http://www.w3.org/1998/Math/MathML"><msup><mrow/><mn>2</mn></msup></math></span> software suite, which would be a kind of
technological showcase to validate our new concepts on real
applications through both academic and industrial collaborations
(CEA/DAM, Bull, IFP, Total, Exascale Research Lab.). We also plan to
port standard environments and libraries (which might be a slightly
sub-optimal way of using our platform) by proposing extensions (as we
already did for MPI and Pthreads) in order to ensure a much wider
spreading of our work and thus to get more important feedback.</p>
        <p>Finally, as most of our work proposed is intended to be used as a
foundation for environments and programming tools exploiting large
scale, high performance computing platforms, we definitely need to
address the numerous scalability issues related to the huge number of
cores and the deep hierarchy of memory, I/O and communication links.</p>
      </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="./uid20.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>
