<?xml version="1.0" encoding="UTF-8"?><mets:mets xmlns:mads="http://www.loc.gov/mads/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:tef="http://www.abes.fr/abes/documents/tef" xmlns:metsRights="http://cosimo.stanford.edu/sdr/metsrights/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mets="http://www.loc.gov/METS/">
    <mets:metsHdr ID="rennes1-ori-wf-1-7974" CREATEDATE="2016-04-04T14:03:45" LASTMODDATE="2016-04-04T14:03:47">
  <mets:agent ROLE="CREATOR">
            <mets:name>Université de Rennes 1</mets:name>
        </mets:agent>
</mets:metsHdr>
    <mets:dmdSec ID="desc_expr" CREATED="2016-04-04T14:03:45">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_these">
            <mets:xmlData>
                <tef:thesisRecord>
     <dc:title xml:lang="en">Intercepting functions for memoization</dc:title>
     <dcterms:alternative xml:lang="fr">Interception de fonctions pour la mémoïsation</dcterms:alternative>
     <dc:subject xml:lang="fr">mémoïsation</dc:subject><dc:subject xml:lang="fr">fonction interception</dc:subject><dc:subject xml:lang="fr">optimisation de code</dc:subject>
     <dc:subject xml:lang="en">memoization</dc:subject><dc:subject xml:lang="en">function interception</dc:subject><dc:subject xml:lang="en">code optimization</dc:subject>
     <tef:sujetRameau><tef:vedetteRameauNomCommun>
						<tef:elementdEntree autoriteSource="Sudoc" autoriteExterne="030510821">Programmation fonctionnelle (informatique)</tef:elementdEntree>
      <tef:subdivision autoriteSource="Sudoc" type="subdivisionDeForme" autoriteExterne="027253139">Thèses et écrits académiques</tef:subdivision>
					</tef:vedetteRameauNomCommun></tef:sujetRameau>
     <dcterms:abstract xml:lang="fr">Nous avons proposé des mécanismes pour mettre en œuvre la mémoïsation de fonction au niveau logiciel dans le cadre de nos efforts pour améliorer les performances du code séquentiel. Nous avons analysé le potentiel de la mémoïsation de fonction sur des applications et le gain de performance qu'elle apporte sur des architectures actuelles. Nous avons proposé trois approches - une approche simple qui s'applique au chargement et qui fonctionne pour toute fonction de bibliothèque liée dynamiquement, une approche à la compilation utilisant LLVM qui peut permettre la mémoïsation pour toute fonction du programme, ainsi qu'une proposition d'implémentation de la mémoïsation en matériel et ses avantages potentiels. Nous avons démontré avec les fonctions transcendantales que l'approche au chargement est applicable et donne un bon avantage, même avec des architectures et des compilateurs (avec la restriction qu'elle ne peut être appliquée que pour les fonctions liées dynamiquement) modernes. Notre approche à la compilation étend la portée de la mémoïsation et en augmente également les bénéfices. Cela fonctionne pour les fonctions définies par l’utilisateur ainsi que pour les fonctions de bibliothèque. Nous pouvons gérer certains types de fonctions non pures comme les fonctions avec des arguments de type pointeur et l'utilisation de variables globales. La mémoïsation en matériel abaisse encore le seuil de profitabilité de la mémoïsation et donne plus de gain de performance en moyenne.</dcterms:abstract>
     <dcterms:abstract xml:lang="en">We have proposed mechanisms to implement function memoization at a software level as part of our effort to improve sequential code performance. We have analyzed the potential of function memoization on applications and its performance gain on current architectures. We have proposed three schemes - a simple load time approach which works for any dynamically linked function, a compile time approach using LLVM framework which can enable memoization for any program function and also a hardware proposal for doing memoization in hardware and its potential benefits. Demonstration of the link time approach with transcendental functions showed that memoization is applicable and gives good benefit even under modern architectures and compilers (with the restriction that it can be applied only for dynamically linked functions).  Our compile time approach extends the scope of memoization and also increases the benefit due to memoization. This works for both user defined functions as well as library functions. It can handle certain kind of non pure functions like those functions with pointer arguments and global variable usage. Hardware memoization lowers the threshold for a function to be memoized and gives more performance gain on average.</dcterms:abstract>
     <dc:type>Electronic Thesis or Dissertation</dc:type><dc:type xsi:type="dcterms:DCMIType">Text</dc:type>
     <dc:language xsi:type="dcterms:RFC3066">en</dc:language>
    </tef:thesisRecord>
            </mets:xmlData>
        </mets:mdWrap>
</mets:dmdSec>
    <mets:dmdSec ID="desc_edition" CREATED="2016-04-04T14:03:45">
  <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_desc_edition">
            <mets:xmlData>
                <tef:edition><dcterms:medium xsi:type="dcterms:IMT">application/pdf</dcterms:medium><dcterms:extent>1 : 1531 Ko</dcterms:extent><dc:identifier xsi:type="dcterms:URI">https://ecm.univ-rennes1.fr/nuxeo/site/esupversions/18d7067e-5cb1-4158-b6eb-c12ef159f327</dc:identifier></tef:edition>
            </mets:xmlData>
        </mets:mdWrap>
</mets:dmdSec>
    <mets:amdSec>
        <mets:techMD ID="admin_expr" CREATED="">
            <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_admin_these">
                <mets:xmlData>
                    <tef:thesisAdmin>
                        <tef:auteur>
       <tef:nom>Suresh</tef:nom>
       <tef:prenom>Arjun</tef:prenom>
       
       <tef:dateNaissance>1987-11-06</tef:dateNaissance>
       <tef:nationalite scheme="ISO-3166-1">IN</tef:nationalite>
       <tef:autoriteExterne autoriteSource="Sudoc">19978390X</tef:autoriteExterne>
       <tef:autoriteExterne autoriteSource="mailPerso">arjunsuresh1987@gmail.com</tef:autoriteExterne>
      </tef:auteur>
                        <dc:identifier xsi:type="tef:NNT">2016REN1S106</dc:identifier>
      <dc:identifier xsi:type="tef:nationalThesisPID">http://www.theses.fr/2016REN1S106</dc:identifier>
      
                        
                        <dcterms:dateAccepted xsi:type="dcterms:W3CDTF">2016-05-10</dcterms:dateAccepted>
                        <tef:thesis.degree>
                            <tef:thesis.degree.discipline xml:lang="fr">Informatique</tef:thesis.degree.discipline>
                            <tef:thesis.degree.grantor>
        <tef:nom>Universite de Rennes 1</tef:nom><tef:autoriteInterne>thesis.degree.grantor_1</tef:autoriteInterne>
        
        <tef:autoriteExterne autoriteSource="Sudoc">02778715X</tef:autoriteExterne>
       </tef:thesis.degree.grantor>
                            <tef:thesis.degree.level>Doctorat</tef:thesis.degree.level>
                        </tef:thesis.degree>
                        <tef:theseSurTravaux>non</tef:theseSurTravaux>
                        <tef:avisJury>oui</tef:avisJury><tef:directeurThese><tef:nom>Rohou</tef:nom><tef:prenom>Erven</tef:prenom><tef:autoriteInterne>intervenant_1</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">135287065</tef:autoriteExterne></tef:directeurThese><tef:directeurThese><tef:nom>Seznec</tef:nom><tef:prenom>André</tef:prenom><tef:autoriteInterne>intervenant_2</tef:autoriteInterne><tef:autoriteExterne autoriteSource="Sudoc">033236402</tef:autoriteExterne></tef:directeurThese>
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
                        
                        
                        <tef:ecoleDoctorale>
       <tef:nom>Mathématiques, informatique, signal, électronique et télécommunications</tef:nom><tef:autoriteInterne>ecoleDoctorale_1</tef:autoriteInterne>
       
       <tef:autoriteExterne autoriteSource="Sudoc">139007164</tef:autoriteExterne>
      </tef:ecoleDoctorale>
                        <tef:partenaireRecherche type="autreType" autreType="ComuE">
       <tef:nom>Universite Bretagne Loire</tef:nom><tef:autoriteInterne>partenaireRecherche_1</tef:autoriteInterne>
       
       <tef:autoriteExterne autoriteSource="Sudoc">191639044</tef:autoriteExterne>
      </tef:partenaireRecherche>
                        <tef:partenaireRecherche type="laboratoire">
       <tef:nom>
INRIA-RENNES
</tef:nom><tef:autoriteInterne>partenaireRecherche_2</tef:autoriteInterne>
       
       <tef:autoriteExterne autoriteSource="Sudoc">
133175863
</tef:autoriteExterne>
      </tef:partenaireRecherche>
      <tef:partenaireRecherche type="laboratoire">
       <tef:nom>
IRISA
</tef:nom><tef:autoriteInterne>partenaireRecherche_3</tef:autoriteInterne>
       
       <tef:autoriteExterne autoriteSource="Sudoc">
026386909
</tef:autoriteExterne>
      </tef:partenaireRecherche>
                        <tef:oaiSetSpec>ddc:004</tef:oaiSetSpec>
                        
                        
                        
                        
                    <tef:MADSAuthority authorityID="intervenant_1" type="personal"><tef:personMADS><mads:namePart type="family">Rohou</mads:namePart><mads:namePart type="given">Erven</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="intervenant_2" type="personal"><tef:personMADS><mads:namePart type="family">Seznec</mads:namePart><mads:namePart type="given">André</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="thesis.degree.grantor_1" type="corporate"><tef:personMADS><mads:namePart>Universite de Rennes 1</mads:namePart><mads:description>Sciences et technologie, medecine, pharmacie, odontologie, droit, economie, gestion, philosophie</mads:description></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="ecoleDoctorale_1" type="corporate"><tef:personMADS><mads:namePart>Mathématiques, informatique, signal, électronique et télécommunications</mads:namePart><mads:description>École doctorale Mathématiques, informatique, signal, électronique et télécommunications (Rennes)</mads:description></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="partenaireRecherche_1" type="corporate"><tef:personMADS><mads:namePart>Universite Bretagne Loire</mads:namePart><mads:description>
        
        
        
        
        
        
        
        
        
        Communaute des etablissements d enseignement superieur et de recherche (ComuE)
       
       
       
       
       
       
       
       
       
       </mads:description></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="partenaireRecherche_2" type="corporate"><tef:personMADS><mads:namePart>
INRIA-RENNES
</mads:namePart></tef:personMADS></tef:MADSAuthority><tef:MADSAuthority authorityID="partenaireRecherche_3" type="corporate"><tef:personMADS><mads:namePart>
IRISA
</mads:namePart></tef:personMADS></tef:MADSAuthority></tef:thesisAdmin>
                </mets:xmlData>
            </mets:mdWrap>
        </mets:techMD><mets:techMD ID="file_1"><mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_tech_fichier"><mets:xmlData><tef:meta_fichier>
     <tef:encodage>ASCII</tef:encodage>
     <tef:formatFichier>PDF</tef:formatFichier>
     
     
     
     <tef:taille>1567622</tef:taille>
    </tef:meta_fichier></mets:xmlData></mets:mdWrap></mets:techMD>
        
        <mets:rightsMD ID="dr_expr_thesard" CREATED="">
            <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_auteur_these">
                <mets:xmlData>
                    <metsRights:RightsDeclarationMD>
                        <metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
                            <metsRights:Permissions DISCOVER="true" DISPLAY="true" COPY="true" DUPLICATE="true" MODIFY="false" DELETE="false" PRINT="true"/>
       <metsRights:Constraints CONSTRAINTTYPE="TIME" OTHERCONSTRAINTTYPE="">
								
        
        
        
        <metsRights:ConstraintDescription>restriction 2016-05-10 2017-05-10</metsRights:ConstraintDescription>
							</metsRights:Constraints>
                        </metsRights:Context>
                    </metsRights:RightsDeclarationMD>
                </mets:xmlData>
            </mets:mdWrap>
        </mets:rightsMD>
        <mets:rightsMD ID="dr_expr_univ" CREATED="">
            <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_etablissement_these">
                <mets:xmlData>
                    <metsRights:RightsDeclarationMD>
                        <metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
                            <metsRights:Permissions DISCOVER="true" DISPLAY="true" COPY="true" DUPLICATE="true" MODIFY="false" DELETE="false" PRINT="true"/>
                        </metsRights:Context>
                    </metsRights:RightsDeclarationMD>
                </mets:xmlData>
            </mets:mdWrap>
        </mets:rightsMD>
        <mets:rightsMD ID="dr_version" CREATED="">
            <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="tef_droits_version">
                <mets:xmlData>
                    <metsRights:RightsDeclarationMD>
                        <metsRights:Context CONTEXTCLASS="GENERAL PUBLIC">
                            <metsRights:Permissions DISCOVER="true" DISPLAY="true" COPY="true" DUPLICATE="true" MODIFY="false" DELETE="false" PRINT="true"/>
       <metsRights:Constraints CONSTRAINTTYPE="TIME" OTHERCONSTRAINTTYPE="">
								
        
        
        
        <metsRights:ConstraintDescription>restriction 2016-05-10 2017-05-10</metsRights:ConstraintDescription>
							</metsRights:Constraints>
                        </metsRights:Context>
                    </metsRights:RightsDeclarationMD>
                </mets:xmlData>
            </mets:mdWrap>
        </mets:rightsMD>
    </mets:amdSec>
    <mets:fileSec>
  <mets:fileGrp ID="FGrID1" USE="archive"><mets:file ID="FID1" ADMID="file_1" MIMETYPE="application/pdf" USE="maitre"><mets:FLocat LOCTYPE="URL" xlink:href="https://ecm.univ-rennes1.fr/nuxeo/site/esupversions/18d7067e-5cb1-4158-b6eb-c12ef159f327"/></mets:file></mets:fileGrp>
 </mets:fileSec>
    <mets:structMap TYPE="logical">
        <mets:div DMDID="desc_expr" ADMID="dr_expr_thesard dr_expr_univ admin_expr" TYPE="THESE" CONTENTIDS="http://ori-oai-search.univ-rennes1.fr/uid/rennes1-ori-wf-1-7974/oeuvre">
            <mets:div ADMID="dr_version" TYPE="VERSION_COMPLETE" CONTENTIDS="http://ori-oai-search.univ-rennes1.fr/uid/rennes1-ori-wf-1-7974/oeuvre/version">
                <mets:div DMDID="desc_edition" TYPE="EDITION" CONTENTIDS="http://ori-oai-search.univ-rennes1.fr/uid/rennes1-ori-wf-1-7974/oeuvre/version/edition">
                    <mets:fptr FILEID="FGrID1"/>
                </mets:div>
            </mets:div>
        </mets:div>
    </mets:structMap>
</mets:mets>