Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
S
SDA
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package Registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Julien David
SDA
Commits
23156934
Commit
23156934
authored
4 years ago
by
david
Browse files
Options
Downloads
Patches
Plain Diff
sujet tp2 à valider
parent
a96c4e67
Branches
tp2
Branches containing commit
No related tags found
No related merge requests found
Pipeline
#655
failed
4 years ago
Stage: test
Changes
2
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
.gitlab-ci.yml
+2
-7
2 additions, 7 deletions
.gitlab-ci.yml
README.md
+24
-86
24 additions, 86 deletions
README.md
with
26 additions
and
93 deletions
.gitlab-ci.yml
+
2
−
7
View file @
23156934
...
@@ -7,15 +7,10 @@ sda:test:
...
@@ -7,15 +7,10 @@ sda:test:
script
:
script
:
-
echo "Exercice 1"
-
echo "Exercice 1"
-
ls -lF AUTHORS.md
-
ls -lF AUTHORS.md
-
ls -lF plots/*_alpha_bench.pdf
-
echo "Exercice 2"
-
echo "Exercice 2"
-
ls -lF plots/*_alpha_
2
.pdf
-
ls -lF plots/*_alpha_
1.5_p_bench
.pdf
-
echo "Exercice 3"
-
echo "Exercice 3"
-
ls -lF plots/my_plot_result
-
grep my_plot_result launch_analysis.sh
-
ALPHA=$(head -n 1 AUTHORS.md)
-
echo "ALPHA ${ALPHA}"
-
ls -lF plots/*_alpha_${TEST}.pdf
-
echo "Exercice 4"
-
ls -lF RAPPORT.md
-
ls -lF RAPPORT.md
This diff is collapsed.
Click to expand it.
README.md
+
24
−
86
View file @
23156934
# Sujet de TP
1
:
Gitlab,
Benchmarks
et tableaux dynamiques
# Sujet de TP
2
: Benchmarks
optimisation
## Règles pour ce semestre
## Règles pour ce semestre
...
@@ -15,104 +15,42 @@ rendre le TP si vous ne finissez pas à temps) via gitlab.
...
@@ -15,104 +15,42 @@ rendre le TP si vous ne finissez pas à temps) via gitlab.
Vos travaux seront évalués une fois à mi-semestre et une fois à la fin du semestre.
Vos travaux seront évalués une fois à mi-semestre et une fois à la fin du semestre.
## Exercice 1: git
## Exercice 1: Optimisation de la structure, en faisant uniquement des ajouts.
### Clonez le projet sda sur votre compte étudiant
Dans votre terminal, placez vous dans le répertoire où vous souhaitez créer le dossier
Le nom de votre branche est constitué de vos numéros d'étudiants séparés par un _
`git clone git@depot.lipn.univ-paris13.fr:david/sda.git`
`
cd sda`
`
git checkout -b tp2_NUMERO1_NUMERO2`
### Vérifiez que
vo
u
s
êtes dans la branche tp1
Rajouter le fichier
`AUTHORS.md`
avec
vos
noms, prénoms et numéros d'étudiants.
`git branch`
Dans le langage de votre choix, effectuez un benchmark permettant
d'identifier la valeur de
`alpha`
qui permet d'otenir le plus petit temps amorti
pour l'ajout d'une valeur dans le tableau dynamique.
Si n'êtes pas dans la branche tp1, tapez
Vous produirez des fichiers pdf sur lequel toutes les courbes de toutes vos experiences
apparaîtront. Le nom des fichiers terminera par
`alpha_bench.pdf`
.
`git checkout tp1`
##
# Créez votre propre branche
##
Exercice 2: ajout et suppression
Le nom de votre branche est constitué de vos numéros d'étudiants séparés par un
`_`
Créer second programme (avec une nouvelle fonction
`main`
donc), dans lequel vous reproduirez
l'expérience précédente, avec une modification: au lieu d'ajouter un élément dans la table à chaque itération,
vous ajouterez l'élément
`i`
avec une probabilité
`p`
et vous supprimerez le dernier élément du tableau
avec une probabilité
`1-p`
.
`git checkout -b NUMERO1_NUMERO2`
Dans vos expériences, vous fixerez
`alpha`
à
`1.5`
et ferez varier
`p`
.
Le nom des fichiers pdf terminera par
`alpha_1.5_p_bench.pdf`
.
### Ajoutez un fichier `AUTHORS.md` à votre branche
A la ra
ci
n
e
du projet, créez un fichier
`AUTHORS.md`
contenant 2 lignes avec vos noms, prénoms et numéros d'étudiants.
## Exer
ci
c
e
3: Au rapport
Ajoutez ensuite ce fichier au projet
Commentez le resultat de vos expériences dans un fichier
`RAPPORT.md`
`git add AUTHORS.md`
1) Dans l'exercice 1, quel est l'alpha le plus efficace en temps? Est-il également le plus efficace
en terme de mémoire gaspillée? Quel est le lien entre temps gagné et mémoire gaspillée?
`git commit -am "Ajout du fichier AUTHORS.md"`
2) Dans l'exercice 2, commentez les différents benchmarks quand
`p=0.5`
,
`p < 0.5`
et
`p > 0.5`
Tentez d'expliquer ces différents résultats.
### Poussez votre branche sur gitlab
`git push`
### Vérifiez sur gitlab
A RENDRE AVANT DIMANCHE!
\ No newline at end of file
Sur la page de gitlab:
-
vérifiez que la branche a été poussée dans
`Repository -> Branches`
-
vérifiez que le pipeline a échoué (car vous n'avez pas encore fini le TP), dans
`CI/CD -> Pipelines`
-
cliquez sur
`failed`
pour voir le détail des tests effectués
## Exercice 2: Lancer les benchmarks
Vérifiez que le répertoire
`plots`
ne contient que le fichier
`plot_result`
.
Nous allons à présent tester différentes implémentations des tableaux dynamiques dans différents langages.
Lisez les fichiers
`main`
de chaque langage et vérifiez que la même expérience est bien effectuée à chaque fois.
Exécutez le script
`SHELL`
(le lire ne vous fera pas de mal non plus):
`sh launch_analysis.sh`
Une fois les calculs effectués, regardez les fichiers
`pdf`
obtenus dans le répertoire
`plots`
Ajoutez tous les fichiers pdf obtenus à votre branche en utilisant les commandes
`git add plots/*.pdf`
`git commit -am "Première expérience"`
`git push`
## Exercice 3: A vous de jouer!
Dans le langage de votre choix (C, C++, JAVA, pas possible en Python), modifiez la fonction
`enlarge_capacity`
afin de multiplier la capacité du tableaux par une autre constante
`alpha`
que 2 (Demandez à votre chargé de TP
de choisir une constante alpha pour votre binôme).
Ajouter une ligne au début du fichier AUTHORS.md contenant la valeur de alpha (et uniquement cette valeur).
Dans la fonction
`main`
, changez le nom de fichiers de sortie en ramplaçant
`alpha_2`
par
`alpha_votre_valeur`
Dans le répertoire
`plots`
, faites une copie du fichier
`plot_result`
`cp plot_result my_plot_result`
Modifiez le fichier
`my_plot_result`
pour ne fournir que des courbes dans le langage que vous avez choisi.
Modifiez également le nom des fichiers pdf en sortie afin qu'ils contiennent la bonne valeur de alpha.
Modifiez le fichier
`launch_analysis.sh`
afin qu'il exécute gnuplot à partir de
`my_plot_result`
Relancez le script
`launch_analysis.sh`
Ajoutez les résultats (fichiers pdf) à votre branche.
## Exercice 4: Au rapport!
Créez un fichier RAPPORT.md à la racine projet.
1) Tentez d'expliquer pourquoi certains langages sont plus rapides que d'autres dans cette expérience.
2) Observez l'espace mémoire inutilisé au fur et à mesure du programme. Qu'en pensez vous?
Imaginez un scénario dans lequel cela pourrait poser problème.
3) Décrivez les différences obtenues en faisant varier alpha dans les deux expériences.
A FINIR AVANT DIMANCHE !
Votre travail n'est validé que si le pipeline réussi.
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment