Skip to content
Snippets Groups Projects
Commit d0f87918 authored by Lionel GUEZ's avatar Lionel GUEZ
Browse files

Polish

parent d0e42b10
No related branches found
No related tags found
No related merge requests found
...@@ -5,3 +5,4 @@ copy.pdf ...@@ -5,3 +5,4 @@ copy.pdf
set_all_outerm.pdf set_all_outerm.pdf
elapsed_time.pdf elapsed_time.pdf
SHPC.pdf SHPC.pdf
plot_test_output.pdf
"Name of test", "elapsed time, shapelib old", "elapsed time, shapelib new"
,s,s
name, time_old, time_new
Medium_mix,181, 394
Small_mix,45, 215
Medium_sep,60, 313
Small_sep,34, 112
Create_mix,23, 111
Create_sep,22, 61
Big_mix,149, 398
Big_sep,59, 315
Name of test,"elapsed time, in s"
Medium_mix,711
Small_mix,377
Medium_sep,532
Small_sep,209
Create_mix,249
Create_sep,98
Big_mix,580
Big_sep,582
#!/usr/bin/env python3
import pandas as pd
import matplotlib.pyplot as plt
def get_size_index(name):
for i, s in enumerate(name_prefix):
if name.startswith(s): break
return pd.Series([i, s.lower()])
perf_report = pd.read_csv("perf_report.csv", skiprows = 2,
skipinitialspace = True)
perf_report["time_ciclad_17"] = pd.read_csv("perf_report_ciclad_17.csv")\
["elapsed time, in s"]
name_prefix = ["Create", "Small", "Medium", "Big"]
mix = perf_report["name"].map(lambda name:name.endswith("mix"))
perf_report[["size_index", "size_name"]] = perf_report["name"]\
.apply(get_size_index)
fig, ax = plt.subplots()
perf_report[~mix].sort_values(by = "size_index")\
.plot(x = "size_name", y = "time_old",
label = "frontal separated old", ax = ax)
perf_report[mix].sort_values(by = "size_index")\
.plot(x = "size_name", y = "time_old",
label = "frontal mixed old", ax = ax)
perf_report[~mix].sort_values(by = "size_index")\
.plot(x = "size_name", y = "time_new",
label = "frontal separated new", ax = ax)
perf_report[mix].sort_values(by = "size_index")\
.plot(x = "size_name", y = "time_new",
label = "frontal mixed new", ax = ax)
perf_report[~mix].sort_values(by = "size_index")\
.plot(x = "size_name", y = "time_ciclad_17",
label = "ciclad 17 separated", ax = ax)
perf_report[mix].sort_values(by = "size_index")\
.plot(x = "size_name", y = "time_ciclad_17",
label = "ciclad 17 mixed", ax = ax)
plt.ylabel("elapsed time, in s")
plt.savefig("plot_test_output.pdf")
##plt.show()
...@@ -1240,8 +1240,8 @@ l'exécutable Fortran. Cf. figure \ref{fig:elapsed_time}. ...@@ -1240,8 +1240,8 @@ l'exécutable Fortran. Cf. figure \ref{fig:elapsed_time}.
\includegraphics[width=\textwidth]{elapsed_time} \includegraphics[width=\textwidth]{elapsed_time}
\caption[Temps écoulé]{Test de performance de \caption[Temps écoulé]{Test de performance de
\texttt{inst\_eddies.py}, temps écoulé par date traitée. Versions \texttt{inst\_eddies.py}, temps écoulé par date traitée. Versions
0.17 et ba6ab118 sur Ciclad, ifort 19, release build. Domaine 0.17 et ba6ab118 sur Ciclad, AMD Opteron, ifort 19, release
global, 59 dates (janvier et février).} build. Domaine global, 59 dates (janvier et février).}
\label{fig:elapsed_time} \label{fig:elapsed_time}
\end{figure} \end{figure}
Avec la version ba6ab118, bizarrement on ne gagne presque rien. \`A la Avec la version ba6ab118, bizarrement on ne gagne presque rien. \`A la
...@@ -1252,7 +1252,9 @@ pour une période plus longue ne le confirme pas : figure ...@@ -1252,7 +1252,9 @@ pour une période plus longue ne le confirme pas : figure
\begin{figure}[htbp] \begin{figure}[htbp]
\centering \centering
\includegraphics[width=\textwidth]{Inst_eddies_9} \includegraphics[width=\textwidth]{Inst_eddies_9}
\caption{Temps d'exécution pour l'expérience Inst\_eddies\_9.} \caption[Temps d'exécution pour l'expérience Inst\_eddies\_9]{Temps
d'exécution pour l'expérience Inst\_eddies\_9. Sur Ciclad, AMD
Opteron.}
\label{fig:Inst_eddies_9} \label{fig:Inst_eddies_9}
\end{figure} \end{figure}
En insérant des appels à \verb+cpu_time+ dans le code Fortran, j'ai En insérant des appels à \verb+cpu_time+ dans le code Fortran, j'ai
...@@ -1268,7 +1270,7 @@ presque pas entre ces deux cas. Le temps des appels à ...@@ -1268,7 +1270,7 @@ presque pas entre ces deux cas. Le temps des appels à
\verb+write_eddy+ est à peu près égal à la partie CPU système \verb+write_eddy+ est à peu près égal à la partie CPU système
rapportée par la commande time. Le temps du reste du code est à peu rapportée par la commande time. Le temps du reste du code est à peu
près égal à la partie CPU user rapportée par la commande time. Exemple près égal à la partie CPU user rapportée par la commande time. Exemple
de temps mesurés, domaine global, en interactif : de temps mesurés, domaine global, sur ciclad en interactif :
\begin{itemize} \begin{itemize}
\item 8 s system time, appels à \verb+write_eddy+, dans un SHPC \item 8 s system time, appels à \verb+write_eddy+, dans un SHPC
contenant une seule date contenant une seule date
...@@ -1282,6 +1284,40 @@ n'est pas mesuré par gprof. On ne peut donc pas cerner plus ...@@ -1282,6 +1284,40 @@ n'est pas mesuré par gprof. On ne peut donc pas cerner plus
précisément avec gprof dans quels appels sous \verb+write_eddy+ passe précisément avec gprof dans quels appels sous \verb+write_eddy+ passe
le temps système. le temps système.
Les tests dans \verb+test_output.json+ montrent, sur ciclad :
\begin{itemize}
\item pas de diminution systématique du temps écoulé lorsqu'on passe
de mixed vrai à faux ;
\item augmentation du temps écoulé lorsqu'on passe de la création d'un
SHPC à l'ajout à un petit SHPC ;
\item augmentation du temps écoulé lorsqu'on passe de l'ajout à un
petit SHPC à l'ajout à un SHPC de taille moyenne ;
\item pas d'augmentation systématique du temps écoulé lorsqu'on passe
de l'ajout à un SHPC de taille moyenne à l'ajout à un SHPC de grande
taille.
\end{itemize}
Cf. figure \ref{fig:plot_test_output}.
\begin{figure}[htbp]
\centering
\includegraphics[width=\textwidth]{plot_test_output}
\caption[Tests dans test\_output.json]{Tests dans test\_output.json,
sur Ciclad en interactif et sur un noeud de calcul, ciclad 17. \og
old\fg{} : avec la vieille bibliothèque shapelib installée avec la
distribution sur ciclad. \og new\fg{} : avec la dernière version
de la bibliothèque shapelib. Il y a un facteur 32 entre le plus
petit et le plus grand temps.}
\label{fig:plot_test_output}
\end{figure}
Sur vierne, jean-zay et spirit1, les huit tests prennent chacun entre
2 et 3 s. Sur ces trois machines, la bibliothèque shp utilisée est
\verb+libshp.so.2.1.0+, tandis que sur ciclad c'est
\verb+libshp.so.1.0.1+. Sur jean-zay, c'est moi qui ai installé shp :
cf. \href{/home/guez/Vierne_documents/Informatique_fonctionnement/User_install_texfol/user_install.pdf}{installation
de Shapelib}. J'ai donc fait le test d'installer la dernière version
de shapelib sur Ciclad et de recompiler avec cette dernière
version. Il n'y a pas de réduction des temps. Cf. figure
\ref{fig:plot_test_output}.
\section{Améliorations, prolongements} \section{Améliorations, prolongements}
Idée de chercher les contours extérieurs dans un rayon de 10 points Idée de chercher les contours extérieurs dans un rayon de 10 points
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment