77 lines
2.2 KiB
Text
77 lines
2.2 KiB
Text
#set page(
|
||
numbering: "1 / 1",
|
||
header: [
|
||
#set text(8pt)
|
||
_IFT630 #h(1fr) Violette Paulin_
|
||
],
|
||
)
|
||
|
||
#let title(content) = {
|
||
pagebreak(weak:true)
|
||
set text(size:17pt, weight: "bold")
|
||
set align(center)
|
||
v(70pt)
|
||
[#content]
|
||
v(50pt)
|
||
}
|
||
|
||
#set par(
|
||
first-line-indent: 1em,
|
||
justify: true,
|
||
)
|
||
|
||
#title[
|
||
IFT630 - Projet #3
|
||
]
|
||
|
||
#show outline.entry.where(
|
||
level: 1
|
||
): it => {
|
||
v(14pt, weak: false)
|
||
strong(it)
|
||
}
|
||
|
||
|
||
#v(20pt)
|
||
|
||
#image("logo.png")
|
||
|
||
#align(center)[
|
||
#text(size: 15pt)[
|
||
Violette PAULIN – PAUM1202\
|
||
_Violette.Paulin\@USherbrooke.ca_\ \
|
||
]
|
||
]
|
||
|
||
#v(20pt)
|
||
|
||
#pagebreak()
|
||
= Build et test
|
||
Une fois le dossier `build` créé, on peut build directement en exécutant
|
||
`make all`. Pour tester MPI, `make runmpi`. Pour tester OpenMP, `make runomp`.
|
||
Ces commandes créent des fichiers `OutX.txt`. Ceux-ci montrent la clef testée à
|
||
gauche, et le temps pour la trouver à droite, séparée par un ':'.
|
||
|
||
= Performance
|
||
Je ne comprends pas la question de mesure de performance. Dans mon cas, mesurer
|
||
les performances revient à mesurer la totalité du temps écoulé, ce qui va
|
||
comprendre une part non négligeable d'allocation, ainsi que l'overhead des
|
||
différentes librairies. Alors que si je mesure le temps moyen pour trouver une
|
||
clef, je mesurerais la même chose dans les deux cas. Il m'est donc impossible de
|
||
pouvoir tirer une conclusion satisfaisante sur les performances, pour mon
|
||
implémentation. J'ai quand même fait le choix de mesurer le temps pour trouver
|
||
une clef, sans prendre en compte l'allocation.
|
||
|
||
Cependant, OpenMP peut marcher sur tous les cœurs logiques (thread) de ma
|
||
machine, alors que MPI ne fonctionne qu'avec les cœurs physiques (il me semble).
|
||
Ainsi, on gagne théoriquement en temps global avec OpenMP.
|
||
|
||
De plus, je n'ai pas utilisé OpenMP de la manière la plus optimale, faute de
|
||
temps. A la place de diviser sur une boucle, je l'ai divisé comme je l'ai fait
|
||
pour MPI. Ceci coute plus de temps en allocation, et l'on est contraint à
|
||
utiliser plusieurs fichiers
|
||
|
||
Dans les deux cas, on s'aperçoit que plus une clef est loin, plus elle est difficile à charger.
|
||
C'est le comportement attendu. De plus, les temps semblent être linéaire, ce
|
||
qui est encore une fois attendu.
|