diff --git a/.gitignore b/.gitignore index 16656c6..ae1c0d2 100644 --- a/.gitignore +++ b/.gitignore @@ -176,4 +176,6 @@ $RECYCLE.BIN/ # End of https://www.gitignore.io/api/c,c++,ninja,macos,linux,cmake,windows,visualstudiocode -build \ No newline at end of file +build +output* +results.txt diff --git a/benchmarks.fish b/benchmarks.fish new file mode 100755 index 0000000..6443200 --- /dev/null +++ b/benchmarks.fish @@ -0,0 +1,20 @@ +#!/usr/bin/env fish + +# This script was written to work with the fish shell. If you do not have the +# fish shell installed on your system, please install it before executing this +# script. +# The results will be stored in the output file `results.txt` + +set nb_amelioration 10 50 100 200 500 1000 +set nb_execution 200 100 50 20 10 5 +set available_methods 1 2 3 +set output results.txt + +rm -f $output + +for method in $available_methods + for i in (seq (count $nb_execution)) + perf stat -r $nb_execution[$i] -B ./build/bin/genetic-image -i ./img/mahakala-monochrome.jpg -n $nb_amelioration[$i] -m $method ^| grep -iE "counter|elapsed" >> $output + echo "" >> $output + end +end diff --git a/report/report.org b/report/report.org index 7075cb6..89b1ba6 100644 --- a/report/report.org +++ b/report/report.org @@ -34,7 +34,7 @@ aléatoirement à l’image. Pour évaluer la ressemblance entre deux image, j’évalue une distance euclidienne entre le vecteur de leurs pixels qui peut se résumer à ceci : #+begin_export latex -$$\sqrt{\sum_{i=0}^{n} V_{i}^{2}+W_{i}^{2}}$$ +$$\sqrt{\sum_{i=0}^n(v_i - w_i)^2}$$ #+end_export ~V~ étant le vecteur de pixels de l’image de référence, ~W~ étant le vecteur de pixels de l’image générée, et ~n~ la taille de ces deux vecteurs. @@ -188,7 +188,13 @@ cette modification de l’algorithme. ** Concurrence entre threads -Une utilisation na +Une utilisation de calculs parallèles pourrait être intéressante afin +d’accélerer la génération des images : l’utilisation de threads mis en +concurrence. À chaque tentative d’amélioration de l’image, plusieurs threads +sont lancés, et chacun créera sa propre amélioration possible de l’image. Ces +résultats sont récupérés et évalués, et parmi les résultats améliorant l’image +générée, celle avec le meilleur score est conservée. Cela permet ainsi de +multiplier les chances d’avoir une amélioration de l’image par tentative. * Annexes ** Images diff --git a/report/report.pdf b/report/report.pdf index e881a21..ee86ced 100644 Binary files a/report/report.pdf and b/report/report.pdf differ