<?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>Project-Team:PACAP</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="PACAP"/>
    <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">Project-Team Pacap</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="uid22.html&#10;&#9;&#9;  ">Motivation</a></li><li><a href="uid26.html&#10;&#9;&#9;  ">Research Objectives</a></li></ul></div>
      <div class="TdmEntry">Application Domains<ul><li><a href="uid44.html&#10;&#9;&#9;  ">Any computer usage</a></li></ul></div>
      <div class="TdmEntry">
        <a href="./uid46.html">Highlights of the Year</a>
      </div>
      <div class="TdmEntry">New Software and Platforms<ul><li><a href="uid51.html&#10;&#9;&#9;  ">ATMI</a></li><li><a href="uid55.html&#10;&#9;&#9;  ">Heptane</a></li><li><a href="uid60.html&#10;&#9;&#9;  ">Tiptop</a></li><li><a href="uid64.html&#10;&#9;&#9;  ">ATC</a></li><li><a href="uid68.html&#10;&#9;&#9;  ">Barra</a></li><li><a href="uid72.html&#10;&#9;&#9;  ">If-memo</a></li><li><a href="uid75.html&#10;&#9;&#9;  ">Padrone</a></li><li><a href="uid79.html&#10;&#9;&#9;  ">STiMuL</a></li><li><a href="uid83.html&#10;&#9;&#9;  ">TPCalc</a></li><li><a href="uid88.html&#10;&#9;&#9;  ">Parasuite</a></li><li><a href="uid89.html&#10;&#9;&#9;  ">Simty</a></li></ul></div>
      <div class="TdmEntry">New Results<ul><li><a href="uid91.html&#10;&#9;&#9;  ">Compiler, vectorization, interpretation</a></li><li><a href="uid102.html&#10;&#9;&#9;  ">Processor Architecture</a></li><li><a href="uid118.html&#10;&#9;&#9;  ">WCET estimation and optimization</a></li><li><a href="uid121.html&#10;&#9;&#9;  ">Fault Tolerance</a></li></ul></div>
      <div class="TdmEntry">Bilateral Contracts and Grants with Industry<ul><li><a href="uid124.html&#10;&#9;&#9;  ">Bilateral Contracts with Industry</a></li><li><a href="uid126.html&#10;&#9;&#9;  ">Bilateral Grants with Industry</a></li></ul></div>
      <div class="TdmEntry">Partnerships and Cooperations<ul><li><a href="uid130.html&#10;&#9;&#9;  ">National Initiatives</a></li><li><a href="uid137.html&#10;&#9;&#9;  ">European Initiatives</a></li><li><a href="uid206.html&#10;&#9;&#9;  ">International Initiatives</a></li><li><a href="uid222.html&#10;&#9;&#9;  ">International Research Visitors</a></li></ul></div>
      <div class="TdmEntry">Dissemination<ul><li><a href="uid226.html&#10;&#9;&#9;  ">Promoting Scientific Activities</a></li><li><a href="uid237.html&#10;&#9;&#9;  ">Teaching - Supervision - Juries</a></li><li><a href="uid274.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 
	    2016</a> | <a href="http://www.inria.fr/en/teams/pacap">Presentation of the Project-Team PACAP</a> | <a href="https://team.inria.fr/pacap/en">PACAP Web Site
	  </a></small>
        </div>
        <div id="head_adroite">
          <table class="qrcode">
            <tr>
              <td>
                <a href="pacap.xml">
                  <img style="align:bottom; border:none" alt="XML" src="../static/img/icons/xml_motif.png"/>
                </a>
              </td>
              <td>
                <a href="pacap.pdf">
                  <img style="align:bottom; border:none" alt="PDF" src="IMG/qrcode-pacap-pdf.png"/>
                </a>
              </td>
              <td>
                <a href="../pacap/pacap.epub">
                  <img style="align:bottom; border:none" alt="e-pub" src="IMG/qrcode-pacap-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="./uid22.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>
        <a name="uid4"/>
        <h4 class="titre4">Long-Term Goal</h4>
        <p>In brief, the long-term goal of the PACAP project-team is about
<i>performance</i>, that is: how fast programs run. We intend to
contribute to the ongoing race for exponentially increasing
performance and for performance guarantees.</p>
        <p>Traditionally, the term “performance” is understood as “how much
time is needed to complete execution”. <i>Latency</i>-oriented
techniques focus on minimizing the average-case execution time
(ACET). We are also interested in other definitions of
performance. <i>Throughput</i>-oriented techniques are interested in
how many units of computations can be completed per unit of time. This
is more relevant on manycores and GPUs where many computing nodes are
available, and latency is less critical. Finally, we also study
worst-case execution times (WCET). They are extremely important for
critical real-time systems where designers must guarantee that
deadlines are met, in any situation.</p>
        <p>Given the complexity of current systems, simply assessing their
performance has become a non-trivial task which we also plan to tackle.</p>
        <p>We occasionally consider other metrics related to performance, such as
power efficiency, total energy, overall complexity, and real-time
response guarantee. Our ultimate goal is to propose solutions that
make computing systems more efficient, taking into account current and
envisioned applications, compilers, runtimes, operating systems, and
microarchitectures. And since increased performance often comes at the
expense of another metric, identifying the related trade-offs is of
interest to PACAP.</p>
        <p>ALF witnessed the end of the “magically” increasing clock frequency
and the introduction of commodity multicore processors. PACAP will
likely experience the end of Moore's law (Moore's law states
that the number of transistors in a circuit doubles (approximately)
every two years.), and the generalization of commodity heterogeneous
manycore processors. This impacts how performance is increased and how
it can be guaranteed. It is also a time where exogenous parameters
should be promoted to first-class citizens:</p>
        <ol>
          <li>
            <p class="notaparagraph"><a name="uid6"> </a>the existence of faults, whose impact is becoming
increasingly important when the photo-lithography feature size
decreases;</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid7"> </a>the need for security at all levels of computing systems;</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid8"> </a><i>green</i> computing, or the growing concern of power
consumption.</p>
          </li>
        </ol>
        <a name="uid9"/>
        <h4 class="titre4">Approach</h4>
        <p>We strive to address performance in a way as
transparent as possible for users. For example, instead of proposing
any new language, we consider existing applications (written for
example in standard C), and we develop compiler optimizations that
immediately benefit programmers; we propose microarchitectural
features as opposed to changes in processor instruction sets; we
analyze and re-optimize binary programs automatically, without any
user intervention.</p>
        <p>The perimeter of research directions proposed for the PACAP
project-team derive from the intersection of two axes: on the one
hand, our high-level research objectives, derived from the overall
panorama of computing systems, on the other hand the existing
expertise and background of the team members on key technology (see
illustration on Figure <a title="Overall Objectives" href="./uid3.html#uid12">1</a>). Note that it does not imply
that we will systematically explore all intersecting points of the
figure, yet all correspond to a sensible research direction. These
lists are neither exhaustive, nor final. Operating systems in
particular constitute a promising operating point for several of the
issues we plan to tackle. Other aspects will likely emerge during the
lifespan of the project-team.</p>
        <a name="uid10"/>
        <h4 class="titre4">Latency-oriented Computing</h4>
        <p>Improving the ACET of general purpose systems has been the core
“business” of CAPS and ALF for two decades. We plan to pursue this
line of research, acting at all levels: compilation, dynamic
optimizations, and microarchitecture.</p>
        <a name="uid11"/>
        <h4 class="titre4">Throughput-Oriented Computing</h4>
        <p>The goal is to maximize the performance-to-power ratio. We will
leverage the execution model of throughput-oriented architectures (such
as GPUs) and extend it towards general purpose systems. To address
the memory wall issue, we will consider bandwidth saving techniques,
such as cache and memory compression.</p>
        <div align="center" style="margin-top:10px">
          <a name="uid12">
            <!--...-->
          </a>
          <table title="" class="objectContainer">
            <caption align="bottom"><strong>Figure
	1. </strong>Perimeter of Research Objectives</caption>
            <tr align="center">
              <td>
                <table>
                  <tr>
                    <td style="height:3px;" align="center">
                      <img style="width:132.36896pt" alt="IMG/prog3.png" src="IMG/prog3.png"/>
                    </td>
                  </tr>
                </table>
              </td>
            </tr>
          </table>
        </div>
        <a name="uid13"/>
        <h4 class="titre4">Real-Time Systems – WCET</h4>
        <p>Designers of real-time systems must provide an upper bound of the
worst-case execution time of the tasks within their systems. By
definition this bound must be safe (i.e. greater than any possible
execution time). To be useful, WCET estimates have to be as tight as
possible. The process of obtaining a WCET bound consists in analyzing
a binary executable, modeling the hardware, and then maximizing an
objective function that takes into account all possible flows of
execution and their respective execution times. Our research will
consider the following directions:</p>
        <ol>
          <li>
            <p class="notaparagraph"><a name="uid14"> </a>better modeling of hardware to either improve tightness, or
handle more complex hardware (e.g. multicores);</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid15"> </a>eliminate unfeasible paths from the analysis;</p>
          </li>
          <li>
            <p class="notaparagraph"><a name="uid16"> </a>consider probabilistic approaches where WCET estimates are
provided with a confidence level.</p>
          </li>
        </ol>
        <a name="uid17"/>
        <h4 class="titre4">Performance Assessment</h4>
        <p>Moore's law drives the complexity of processor micro-architectures,
which impacts all other layers: hypervisors, operating systems,
compilers and applications follow similar trends. While a small
category of experts is able to comprehend (parts of) the behavior of
the system, the vast majority of users are only exposed to – and
interested in – the bottom line: how fast their applications are
actually running. In the presence of virtual machines and cloud
computing, multi-programmed workload add yet another degree of
non-determinism to the measure of performance. We plan to research how
application performance can be characterized and presented to a final
user: behavior of the microarchitecture, relevant metrics, possibly
visual rendering. Targeting our own community, we also research
techniques appropriate for fast and accurate ways to simulate future
architectures, including heterogeneous designs, such as
latency/throughput platforms.</p>
        <p>Once diagnosed, the way bottlenecks are addressed depends on the level
of expertise of users. Experts can typically be left with a diagnostic
as they probably know better how to fix the issue. Less knowledgeable
users must be guided to a better solution. We plan to rely on
iterative compilation to generate multiple versions of critical code
regions, to be used in various runtime conditions. To avoid the code
bloat resulting from multiversioning, we will leverage
split-compilation to embed code generation “recipes” to be applied
just-in-time, or even at rutime thanks to dynamic binary translation.
Finally, we will explore the applicability of auto-tuning, where
programmers expose which parameters of their code can be modified to
generate alternate versions of the program (for example trading energy
consumption for quality of service) and let a global orchestrator make
decisions.</p>
        <a name="uid18"/>
        <h4 class="titre4">Dealing with Faults – Reliability</h4>
        <p>Semiconductor technology evolution suggests that permanent failure
rates will increase dramatically with scaling. While well-known
approaches, such as error correcting codes, exist to recover from
failures and provide fault-free chips, the exponential growth of the
number of faults will make them unaffordable in the
future. Consequently, other approaches like fine-grained disabling and
reconfiguration of hardware elements (e.g. individual functional units
or cache blocks) will become economically necessary. This
fine-grained disabling will degrade performance compared to a
fault-free execution. This evolution impacts performance (both ACET
and WCET). We plan to address this evolution, and propose new
techniques, which can be developed at any level. For example, at
microarchitecture level, one might consider designing part of a cache
in an older technology to guarantee a minimum level of performance; at
compile-time, one might generate redundant code for critical sections;
at run-time, one can monitor faults and apply corrective measures to
the software, or hardware. Solutions involving multiple levels are
also very promising.</p>
        <a name="uid19"/>
        <h4 class="titre4">Dealing with Attacks – Security</h4>
        <p>Computer systems are under constant attack,
from young hackers trying to show their skills, to “professional”
criminals stealing credit card information, and even government
agencies with virtually unlimited resources. A vast amount of
techniques have been proposed in the literature to circumvent
attacks. Many of them cause significant slowdowns due to additional
checks and countermeasures. Thanks to our expertise in
microarchitecture and compilation techniques, we will be able to
significantly improve efficiency, robustness and coverage of security
mechanism, as well as to partner with field experts to design
innovative solutions.</p>
        <a name="uid20"/>
        <h4 class="titre4">Green Computing</h4>
        <p>Power consumption has become a major concern of computing systems, at
all form factors, ranging from energy-scavenging sensors for IoT, to
battery powered embedded systems and laptops, and up to supercomputers
operating in the tens of megawatts. Execution time and energy are
often related optimization goals. Optimizing for performance under a
given power cap, however, introduces new challenges. It also turns out
that technologists introduce new solutions (e.g. magnetic RAM) which,
in turn, result in new trade-offs and optimization opportunities.</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="./uid22.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>
