TP-optimisation-numerique-2/docs/build/Precompilation.html

23 lines
8.4 KiB
HTML
Raw Permalink Normal View History

2021-11-08 10:38:05 +00:00
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>- · Optinum.jl</title><link href="https://fonts.googleapis.com/css?family=Lato|Roboto+Mono" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.11.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.11.1/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark"/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><a class="docs-logo" href="index.html"><img src="assets/logo.png" alt="Optinum.jl logo"/></a><div class="docs-package-name"><span class="docs-autofit">Optinum.jl</span></div><form class="docs-search" action="search.html"><input class="docs-search-query" id="documenter-search-query" name="q" type="text" placeholder="Search docs"/></form><ul class="docs-menu"><li><a class="tocitem" href="index.html">Accueil</a></li><li><a class="tocitem" href="Sujet.html">Sujet</a></li><li><span class="tocitem">Algorithmes</span><ul><li><a class="tocitem" href="Algorithme_de_newton.html">L&#39;algorithme de Newton local</a></li><li><a class="tocitem" href="Regions_de_confiance.html">La méthode des régions de confiance</a></li><li><a class="tocitem" href="Lagrangien_augmente.html">La méthode du Lagrangien augmenté</a></li></ul></li><li><a class="tocitem" href="fct_index.html">Index des fonctions</a></li><li><a class="tocitem" href="Annexes.html">Annexes</a></li><li><a class="tocitem" href="mise_en_place.html">Installation de Julia et tests unitaires</a></li><li><a class="tocitem" href="FAQ.html">Foire aux Questions</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href="Precompilation.html">-</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href="Precompilation.html">-</a></li></ul></nav><div class="docs-right"><a class="docs-edit-link" href="https://github.com//blob/master/docs/src/Precompilation.md" title="Edit on GitHub"><span class="docs-icon fab"></span><span class="docs-label is-hidden-touch">Edit on GitHub</span></a><a class="docs-settings-button fas fa-cog" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-sidebar-button fa fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a></div></header><article class="content" id="documenter-page"><h2 id="Intérêt-1"><a class="docs-heading-anchor" href="#Intérêt-1">Intérêt</a><a class="docs-heading-anchor-permalink" href="#Intérêt-1" title="Permalink"></a></h2><p>L&#39;utilisation des fonctions des modules, sans avoir accès aux modules ni faire des <code>using</code>, à partir d&#39;un fichier binaire qui contient des versions précompilées de ces modules.</p><h2 id="Génération-du-fichier-binaire-1"><a class="docs-heading-anchor" href="#Génération-du-fichier-bina
(v1.4) pkg&gt; add PackageCompiler</code></pre><h5 id="Création-d&#39;un-nouvel-environnement-et-ajout-des-modules-à-compiler-1"><a class="docs-heading-anchor" href="#Création-d&#39;un-nouvel-environnement-et-ajout-des-modules-à-compiler-1">Création d&#39;un nouvel environnement et ajout des modules à compiler</a><a class="docs-heading-anchor-permalink" href="#Création-d&#39;un-nouvel-environnement-et-ajout-des-modules-à-compiler-1" title="Permalink"></a></h5><p>Dans un dossier <code>NouveauEnv</code> je crée un nouvel environnement julia</p><pre><code class="language-linux">~$ mkdir NouveauEnv
~$ cd NouveauEnv
~$ julia</code></pre><pre><code class="language-julia">julia&gt; ]
pkg&gt; activate .
(NouveauEnv) pkg&gt; add https://github.com/mathn7/TestOptinum.git
(NouveauEnv) pkg&gt; add https://github.com/mathn7/optinum.git
(NouveauEnv) pkg&gt; add LinearAlgebra #je rajoute autant que je veux des modules</code></pre><h5 id="Génération-du-fichier-binaire-2"><a class="docs-heading-anchor" href="#Génération-du-fichier-binaire-2">Génération du fichier binaire</a><a class="docs-heading-anchor-permalink" href="#Génération-du-fichier-binaire-2" title="Permalink"></a></h5><p>Avant de procéder à la génération du fichier binaire il faut créer un fichier julia (dans le dossier NouveauEnv) qui utilise les modules pour pouvoir exporter les fonctions. Le contenu de (NouveauEnv/Exemple.jl) sera : </p><pre><code class="language-linux">~/NouveauEnv
cat Exemple.jl
using LinearAlgebra ;using TestOptinum;using Optinum;</code></pre><pre><code class="language-linux">~$julia</code></pre><pre><code class="language-julia">julia&gt; ]
pkg&gt; activate .
(NouveauEnv) pkg&gt;
julia&gt; using PackageCompiler
julia&gt; PackageCompiler.create_sysimage([:LinearAlgebra , :TestOptinum ,:Optinum]; sysimage_path=&quot;ExamplePrecompile.so&quot;,
precompile_execution_file=&quot;Exemple.jl&quot;)</code></pre><p>les paramètres de la fonction <code>create_sysimage</code>, utilisés sont :</p><p>premier paramètre : liste des modules à compiler (dans notre exemple : LinearAlgebra,TestOptinum,Optinum)</p><p>deuxième paramètre (sysimage_path) : nom du fichier binaire à générer (on peut spécifier le chemin également)</p><p>troisième paramètre (precompile_execution_file) : nom du fichier à compiler</p><h2 id="Utilisation-du-fichier-binaire-1"><a class="docs-heading-anchor" href="#Utilisation-du-fichier-binaire-1">Utilisation du fichier binaire</a><a class="docs-heading-anchor-permalink" href="#Utilisation-du-fichier-binaire-1" title="Permalink"></a></h2><p>Après la génération du fichier binaire <code>ExamplePrecompile.so</code> on peut utiliser les fonctions précompilées (qui se trouvaient dans Exemple.jl) sans faire des <code>using</code></p><pre><code class="language-linux">~$julia -q -JExamplePrecompile.so</code></pre><pre><code class="language-julia">julia&gt; LinearAlgebra.norm([4 5],2)
6.4031242374328485
julia&gt;TestOptinum.tester_algo_newton(true,Optinum.Algorithme_De_Newton)
Test Summary: | Pass Total
L&#39;algo de Newton | 4 4
</code></pre></article></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> on <span class="colophon-date" title="Monday 8 November 2021 11:31">Monday 8 November 2021</span>. Using Julia version 1.4.1.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>