diff --git a/manuscrit/00_opening/10_abstract.tex b/manuscrit/00_opening/10_abstract.tex index 97a1751..061f3ab 100644 --- a/manuscrit/00_opening/10_abstract.tex +++ b/manuscrit/00_opening/10_abstract.tex @@ -1,22 +1,22 @@ \selectlanguage{french} \begin{abstract} - Qu'il s'agisse de calculs massifs distribués sur plusieurs racks, de - de calculs en environnement contraint comme de l'embarqué ou de - l'\emph{edge computing} ou encore de tentatives de réduire l'empreinte - écologique d'un programme fréquemment utilisé, de nombreux cas d'usage - justifient l'optimisation d'un programme. Celle-ci s'arrête souvent à + Qu'il s'agisse de calculs massifs distribués sur plusieurs racks, de de + calculs en environnement contraint comme de l'embarqué ou de l'\emph{edge + computing} ou encore de tentatives de réduire l'empreinte écologique d'un + programme fréquemment utilisé, de nombreux cas d'usage justifient + l'optimisation poussée d'un programme. Celle-ci s'arrête souvent à l'optimisation de haut niveau (algorithmique, parallélisme, \ldots), mais il est possible de la pousser jusqu'à une optimisation bas-niveau, s'intéressant à l'assembleur généré en regard de la microarchitecture du processeur précis utilisé. - Une telle optimisation demande une compréhension fine à la fois logicielle - et matérielle, et est bien souvent cantonnée aux experts du domaine. - Les \emph{code analyzers} (analyseurs de code), cependant, permettent - d'abaisser le niveau d'expertise nécessaire pour accomplir de telles - optimisations, en automatisant une partie du travail de compréhension des - problèmes de performance rencontrés. Ces mêmes outils permettent également - aux experts d'être plus efficaces dans leur travail. + Une telle optimisation demande une compréhension fine des aspects à la fois + logiciels et matériels en jeu, et est bien souvent cantonnée aux experts du + domaine. Les \emph{code analyzers} (analyseurs de code), cependant, + permettent d'abaisser le niveau d'expertise nécessaire pour accomplir de + telles optimisations, en automatisant une partie du travail de + compréhension des problèmes de performance rencontrés. Ces mêmes outils + permettent également aux experts d'être plus efficaces dans leur travail. Dans ce manuscrit, nous étudierons les principaux goulots d'étranglement de performance d'un processeur, sur lesquels l'état de l'art montre des @@ -32,6 +32,33 @@ \selectlanguage{english} \begin{abstract} - This is my PhD's abstract. Check it out. + Be it massively distributed computation over multiple server racks, + constrained computation in embedded environments or \emph{edge computing}, + or still an attempt to reduce the ecological footprint of a frequently-run + program, many use-cases make it relevant to deeply optimize a program. This + optimisation is often limited to high-level optimisation --~choice of + algorithms, parallel computing, \ldots{} Yet, it is possible to carry it + further to low-level optimisations, by inspecting the generated assembly + with respect to the microarchitecture of the specific microprocessor used + to fine-tune it. + + Such an optimisation level requires a very detailed comprehension of both + the software and hardware aspects implied, and is most often the realm of + experts. \emph{Code analyzers}, however, are tools that help lowering the + expertise threshold required to perform such optimisations by automating + away a portion of the work required to understand the source of the + encountered performance problems. The same tools are also useful to + experts, as they help them to be more efficient in their work. + + In this manuscript, we study the main performance bottlenecks of a + processor, on which the state of the art does not perform consistently. For + each of these bottlenecks, we contribute to the state of the art. We work + on automating the obtention of a model of the processor's \emph{backend}; + we manually study the processor's \emph{frontend}, hoping to set a + milestone towards the automation of the obtention of such models; we + provide a tool to automatically extract a computation kernel's + \emph{memory-carried} dependencies. We also provide a systematic, automated + and fully-tooled study of the prediction accuracy of various + state-of-the-art code analyzers. \end{abstract}