Skip to content

Commit 719c712

Browse files
committed
Create slides
1 parent 88459c9 commit 719c712

6 files changed

Lines changed: 244 additions & 12 deletions

File tree

.devcontainer/Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ RUN apt-get update \
2222
texlive-extra-utils=2024.20250309* \
2323
texlive-latex-extra=2024.20250309* \
2424
texlive-bibtex-extra=2024.20250309* \
25+
texlive-fonts-extra=2024.20250309* \
2526
texlive-lang-all=2024.20250309* \
2627
ttf-mscorefonts-installer=3.8.1* \
2728
fontconfig=2.15.0* \
@@ -40,7 +41,7 @@ RUN apt-get update \
4041
&& fc-cache -fv
4142

4243
# latexindent modules
43-
RUN curl -L http://cpanmin.us | perl - App::cpanminus \
44+
RUN curl -L https://cpanmin.us/ | perl - App::cpanminus \
4445
&& cpanm Log::Dispatch::File \
4546
&& cpanm YAML::Tiny \
4647
&& cpanm File::HomeDir \

.latexmkrc

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
@default_files = ('./src/thesis.tex');
21
$do_cd = 1;
32
$pdf_mode = 1;
43
$pdflatex = 'lualatex -interaction=nonstopmode %O %S';
54
$out_dir = '../dist';
65
$aux_dir = '../.latex-aux';
7-
$jobname = 'Szucs_Daniel_BSY9BQ_MSc_Thesis';

.vscode/settings.json

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,50 @@
1717
"latex-workshop.latex.outDir": "%WORKSPACE_FOLDER%/dist",
1818
"latex-workshop.latex.autoBuild.run": "never",
1919
"latex-workshop.latex.autoClean.run": "never",
20-
"latex-workshop.latex.recipe.default": "Build with latexmk",
20+
"latex-workshop.latex.recipe.default": "Build thesis",
2121
"latex-workshop.latex.recipes": [
2222
{
23-
"name": "Build with latexmk",
23+
"name": "Build thesis",
2424
"tools": [
25-
"latexmk"
25+
"latexmk-thesis"
2626
]
2727
},
28+
{
29+
"name": "Build slides",
30+
"tools": [
31+
"latexmk-slides"
32+
]
33+
}
2834
],
2935
"latex-workshop.latex.tools": [
3036
{
31-
"name": "latexmk",
37+
"name": "latexmk-thesis",
3238
"command": "latexmk",
3339
"args": [
3440
"-r",
3541
"%WORKSPACE_FOLDER%/.latexmkrc",
3642
"-synctex=1",
3743
"-file-line-error",
38-
"%DOC%"
39-
],
40-
"env": {}
44+
"-jobname=Szucs_Daniel_BSY9BQ_MSc_Thesis",
45+
"%WORKSPACE_FOLDER%/src/thesis.tex"
46+
]
4147
},
48+
{
49+
"name": "latexmk-slides",
50+
"command": "latexmk",
51+
"args": [
52+
"-r",
53+
"%WORKSPACE_FOLDER%/.latexmkrc",
54+
"-synctex=1",
55+
"-file-line-error",
56+
"-jobname=Szucs_Daniel_BSY9BQ_MSc_Thesis_Slides",
57+
"%WORKSPACE_FOLDER%/src/slides.tex"
58+
]
59+
}
4260
],
4361
"latex-workshop.latex.search.rootFiles.include": [
44-
"**/thesis.tex"
62+
"**/thesis.tex",
63+
"**/slides.tex"
4564
],
4665
"latex-workshop.linting.chktex.enabled": true,
4766
"latex-workshop.view.pdf.viewer": "browser"

build.sh

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,4 +27,7 @@ docker run --rm \
2727
-v "$WORK_DIR:$MOUNT_POINT" \
2828
-w "$MOUNT_POINT" \
2929
-u "$DOCKER_USERNAME" \
30-
ghcr.io/quasar6x/thesis-builder:latest latexmk
30+
ghcr.io/quasar6x/thesis-builder:latest \
31+
/bin/bash -c "\
32+
latexmk -jobname=Szucs_Daniel_BSY9BQ_MSc_Thesis src/thesis.tex; \
33+
latexmk -jobname=Szucs_Daniel_BSY9BQ_MSc_Thesis_Slides src/slides.tex"

src/assets/slides-hero.png

11.4 MB
Loading

src/slides.tex

Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
\documentclass[aspectratio=169,9pt]{beamer}
2+
\usepackage{fontspec}
3+
\setsansfont[Ligatures=Required]{JetBrains Mono}
4+
\usepackage[magyar]{babel}
5+
\usepackage[scale=1]{ccicons}
6+
\usepackage{tabto}
7+
\NumTabs{8}
8+
\usepackage{tasks}
9+
10+
\title{SuperSet}
11+
\subtitle{Elosztott fordítóprogram teszt keretrendszer}
12+
\author[SzD]{Szűcs Dániel}
13+
\institute{Szegedi Tudományegyetem}
14+
\date{\today}
15+
\titlegraphic{\includegraphics[width=10cm]{assets/slides-hero.png}}
16+
17+
18+
\usetheme[
19+
usesourcefonts=false,
20+
sectionstyle=style2,
21+
titlestyle=style2,
22+
slidestyle=cyber,
23+
headingcolor=theme,
24+
]{trigon}
25+
26+
\setbeamerfont{framesubtitle}{size=\footnotesize}
27+
\setbeamercolor{framesubtitle}{fg=gray}
28+
\makeatletter
29+
\setbeamertemplate{footline}{
30+
\hbox{
31+
\hspace*{\beamer@leftmargin}
32+
\begin{beamercolorbox}[wd=.45\paperwidth]{title in head/foot}
33+
\color{gray}
34+
SuperSet
35+
\end{beamercolorbox}
36+
\begin{beamercolorbox}[wd=.3\paperwidth]{page number in head/foot}
37+
\insertframenumber{}
38+
\end{beamercolorbox}
39+
\begin{beamercolorbox}[wd=.25\paperwidth]{page number in head/foot}
40+
CC BY-NC-SA 4.0 \ccbyncsa{}
41+
\end{beamercolorbox}
42+
\hspace*{\beamer@rightmargin}
43+
}
44+
\vspace*{1em}
45+
}
46+
\makeatother
47+
\setbeamercolor{alerted text}{use={example text},fg=example text.fg}
48+
49+
{\usebeamercolor{example text}}
50+
\settasks{
51+
label-width=14pt,
52+
label-offset=0pt,
53+
item-indent=2em,
54+
label=\color{example text.fg}\blacktriangleright{},
55+
}
56+
57+
\begin{document}
58+
\titleframe{}
59+
60+
\section{Bevezetés}
61+
\begin{frame}{Bevezetés}
62+
\usebeamertemplate*{triangle}
63+
\onslide<1>{A \alert{SuperSet} egy elosztott fordítóprogram teszt keretrendszer modern Python alapokon.}
64+
65+
\vspace{12pt}
66+
Technológiai alapok:
67+
68+
\only<1>{
69+
\begin{itemize}
70+
\item Python 3.12
71+
\item SQLite
72+
\item XML, HTML
73+
\item WebSocket
74+
\end{itemize}
75+
}
76+
77+
\only<2>{
78+
\begin{itemize}
79+
\item Python 3.12 \tab{} => implementációs nyelv
80+
\item SQLite \tab{} \tab{} => eredmények tárolása
81+
\item XML, HTML \tab{} => report formátumok
82+
\item WebSocket \tab{} => kliens-szerver kommunikáció
83+
\end{itemize}
84+
}
85+
\end{frame}
86+
87+
\section{Motiváció}
88+
89+
\begin{frame}{Motiváció}{Különbségek alternatív megoldásokhoz képest}
90+
Természetesen a \alert{SuperSet} előtt is léteztek megoldások:
91+
\begin{tasks} (2)
92+
\task{} \textit{GCC DejaGNU}
93+
\task{} \textit{LLVM Lit}
94+
\end{tasks}
95+
96+
A \alert{SuperSet} azonban többet kínál ezen megoldásoknál:
97+
\begin{tasks} (2)
98+
\task{} Bővíthető \textit{DSL} konfiguráció
99+
\task{} Bővítmény rendszer
100+
\task{} Caching stratégia
101+
\task{} Report generálás
102+
\task{} Elosztott működés
103+
\task{} Teszt generálás
104+
\end{tasks}
105+
\end{frame}
106+
107+
\begin{frame}{Motiváció}{Erőforrás kihasználás}
108+
A \alert{SuperSet} fő motivációja az erőforrások jobb kihasználása.
109+
110+
\vspace{12pt}
111+
\begin{columns}[T]
112+
\begin{column}{.475\textwidth}
113+
A probléma:
114+
115+
\begin{itemize}
116+
\item Rengeteg teszt eset \textit{\~{}250\,000}
117+
\item Még több kapcsoló kombináció:
118+
\begin{tasks} (2)
119+
\task{} Target
120+
\task{} OptLevel
121+
\task{} ABI
122+
\task{} \dots
123+
\end{tasks}
124+
\item \dots exponenciális robbanás
125+
\end{itemize}
126+
\end{column}
127+
128+
\begin{column}{.475\textwidth}
129+
Futásidőt redukáló tényezők:
130+
\begin{itemize}
131+
\item Teszcsomagok közötti átfedés
132+
\item Fordítási idejű tesztek (nincs szimulátor)
133+
\end{itemize}
134+
\end{column}
135+
\end{columns}
136+
\end{frame}
137+
138+
\section{Implementáció}
139+
140+
\begin{frame}{Implementáció}{Standard és bővíthető konfiguráció}
141+
\begin{itemize}
142+
\item Mappa struktúra független
143+
\item Hierarchikus konfigurálhatóság az \textit{.INI szekciók} által
144+
\item Teszt redukciós beállítások: \textit{MATRIX, CONSTRAINTS}
145+
\item Lehetőség saját kapcsolók definiálására \textit{(DSL)}
146+
\end{itemize}
147+
\end{frame}
148+
149+
\begin{frame}{Implementáció}{Tesztgenerálás}
150+
\begin{itemize}
151+
\item Lehetőség tesztgeneráló alkalmazások integrálására
152+
\begin{itemize}
153+
\item Jelenleg: \textit{Csmith}
154+
\end{itemize}
155+
\item A tesztesetek formátuma átalakításra kerül a \alert{SuperSet} formátumra
156+
\item Teszteset validálás host fordítókkal
157+
\end{itemize}
158+
\end{frame}
159+
160+
\begin{frame}{Implementáció}{Bővítmény rendszer}
161+
A bővítmény rendszer lehetőséget ad a tesztcsomagok futtatási parancsainak személyreszabására, különböző
162+
fordítóprogramok számára.
163+
164+
\vspace{12pt}
165+
\begin{itemize}
166+
\item Teszt életciklus kezelés
167+
\item Cache stratégia meghatározás
168+
\item Futás idejű betöltés
169+
\end{itemize}
170+
\end{frame}
171+
172+
\begin{frame}{Implementáció}{Futtatás és eredmény reportálás}
173+
\begin{itemize}
174+
\item Lehetőség lokális futtatásra
175+
\item Eredmény tárolás \textit{SQLite} adatbázisban
176+
\item Elosztott futtatás
177+
\begin{itemize}
178+
\item Kommunikáció \textit{WebSocketen} át
179+
\item Saját állapotalapú protokoll
180+
\item Feladat felosztási heurisztika a kliensek képességei alapján
181+
\end{itemize}
182+
\item Eredmény jelentés készítés \textit{(HTML, JUnit XML)}
183+
\end{itemize}
184+
\end{frame}
185+
186+
\section{Eredmények}
187+
188+
\begin{frame}{Eredmények}
189+
\begin{itemize}
190+
\item Teszt futásidő csökkenés: \~{}2 nap -> \~{}9 óra
191+
\item Könnyen bővíthető rendszer
192+
\item Modern technológiai alapok -> könnyeb fenntarthatóság
193+
\item Robusztus működés
194+
\end{itemize}
195+
\end{frame}
196+
197+
\section{Licenc}
198+
\begingroup
199+
\setbeamertemplate{footline}{}
200+
\begin{frame}{Licenc}
201+
\centering
202+
Ezek a fóliák a
203+
\textbf{Creative Commons Nevezd meg! --- Ne add el! --- Így add tovább! 4.0 Nemzetközi Licenc (CC-BY-NC-SA)}
204+
védelme alatt állnak.\protect{\\}
205+
\url{https://creativecommons.org/licenses/by-nc-sa/4.0/}\protect{\\}
206+
\vspace{\fill}
207+
{\huge\ccbyncsa{}}
208+
\end{frame}
209+
\endgroup
210+
211+
\end{document}

0 commit comments

Comments
 (0)