\documentclass[12pt, oneside]{article} %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% %% Load Packages %% %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% \usepackage[ top=2cm, bottom=2cm, left=2cm, right=2cm, headheight=20pt, centering ]{geometry} \geometry{a4paper} \usepackage[utf8]{inputenc} %% use UTF-8, maybe not needed since 2018 \usepackage[italian,main=english]{babel} %% language \pagestyle{headings} \usepackage{scrlayer-scrpage} \usepackage{csquotes} %% correct language also for citations \ifoot[]{} \cfoot[]{} \ofoot[\pagemark]{\pagemark} \pagestyle{scrplain} \usepackage[ backend=biber, style=numeric, sorting=ynt ]{biblatex} %% for citations \addbibresource{document.bib} \usepackage{import} %% specify path for import %% math packages \usepackage{graphicx} %% for pictures \usepackage{float} \usepackage{amssymb} %% math symbols \usepackage{amsmath} %% math matrix etc \usepackage{minted} %% code block \usepackage{tabularray} %% better tables \usepackage{booktabs} %% rules for tables \usepackage{mathrsfs} \usepackage{mathtools} \usepackage{algorithm} %% for algorithms \usepackage{algpseudocode} %% loads algorithmicx \usepackage{amsthm} \usepackage{thmtools} %% theorems %% plot packages \usepackage{pgfplots} %% plots used with \begin{tikzpicture} \usepackage{tikz} %% for pictures \usetikzlibrary{trees} \pgfplotsset{width=10cm,compat=newest} %% design packages \usepackage{enumitem} %% for lists and enumerating \usepackage{color} \usepackage{xcolor,colortbl} % xcolor for defining colors, colortbl for table colors \usepackage{makecell} %% for multiple lines in cell of table \usepackage{cancel} \usepackage{pgfornament} %% ornaments %% load last \usepackage[hidelinks]{hyperref} %% links for table of contents, load last \usepackage{bookmark} %% for better table of contents %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% %% Configuration of the packages %% %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% \linespread{1} \raggedbottom %% spaces if page is empty % chktex 1 %% set max table of contents recursion to subsection (3->subsubsecition) \setcounter{tocdepth}{3} \setcounter{secnumdepth}{3} %% use bar instead of arrow for vectors \renewcommand{\vec}[1]{\bar{#1}} %% easy norm \newcommand{\norm}[1]{\left\lvert#1\right\rvert} % argmin and argmax \DeclareMathOperator*{\argmax}{argmax} \DeclareMathOperator*{\argmin}{argmin} %% itemize use less vertical space (use olditemize for default behaviour) \let\olditemize=\itemize%% old itemize \let\endolditemize=\enditemize%% old end itemize \renewenvironment{itemize}{\olditemize\itemsep-0.2em}{\endolditemize} %% items in itemize emph+box %% usage: \ieb{Class:} for simple item %% \ieb[4cm]{Class:} for specific size of box \newcommand{\ieb}[2][2cm]{ \makebox[#1][l]{\emph{#2}} } %% TODO: replace with description environment (? maybe) % less vertical space around align & align* \newcommand{\zerodisplayskips}{ \setlength{\abovedisplayskip}{0pt} \setlength{\belowdisplayskip}{0pt} \setlength{\abovedisplayshortskip}{0pt} \setlength{\belowdisplayshortskip}{0pt} } % make dotfill use all the space available \renewcommand{\dotfill}{ \leavevmode\cleaders\hbox to 1.00em{\hss .\hss }\hfill\kern0pt } % chktex 1 chktex 26 \setlength{\fboxsep}{-\fboxrule} % for debugging %% PACKAGE algorithm \floatname{algorithm}{Algorithm} %% PACKAGE tabularray \UseTblrLibrary{amsmath} %% PACKAGE color \definecolor{red}{rgb}{1, 0.1, 0.1} \definecolor{lightgreen}{rgb}{0.55, 0.87, 0.47} \definecolor{gray}{rgb}{0.3, 0.3, 0.3} \newcommand{\lgt}{\cellcolor{lightgreen}} %% light green in tables \newcommand{\gry}{\textcolor{gray}} %% gray text \newcommand{\rd}{\textcolor{red}} %% red text %% PACKAGE minipage \newcommand{\thend}[1]{\begin{center} \begin{minipage}[c][1em][c]{#1} \dotfill{} \end{minipage} \end{center}} %% PACKAGE thmtools \declaretheoremstyle[ headfont=\normalfont\bfseries, notefont=\mdseries, bodyfont=\normalfont, qed=\qedsymbol % chktex 1 ]{steo} \declaretheorem[numbered=no, style=steo]{theorem} \declaretheoremstyle[ headfont=\normalfont\bfseries, notefont=\mdseries, bodyfont=\normalfont, ]{sdef} \declaretheorem[numbered=no, style=sdef]{definition} \declaretheoremstyle[ spaceabove=-6pt, spacebelow=6pt, headfont=\normalfont\bfseries, bodyfont=\normalfont, postheadspace=1em, qed=$\blacksquare$, headpunct={:} ]{sprf} \declaretheorem[name={Proof}, style=sprf, numbered=no]{prof} %% ......................................................................... %% %% local changes % \setcounter{secnumdepth}{0} \graphicspath{ {./import/} } %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% \title{Document} \author{ Elvis Rossi } \date{\today} %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% \begin{document} \section{Implementation Design} \subsection{Design Choices} The class \texttt{Stencil} holds both the parallel implementation using the FastFlow library and using the native C++ threads. The one using C++ threads can be called with the method \texttt{stdthread}. The operator \texttt{()} instead will use the FastFlow library. The class can also be used as a node; an example is given in the file ``main.cpp'', where using the function \texttt{fastflow} creates a pipe between the reader, the stencil and the writer. \begin{figure}[H] \centering \includegraphics[width=0.4\textwidth]{pipeline.eps} \caption{} \end{figure} The class \texttt{Reader} reads a binary file composed of 4 bytes representing the number of rows, 4 bytes representing the number of columns and then the raw matrix data. The result is stored in the class \texttt{Task} which will be passed to the next node in the FastFlow implementation. If instead the operator \texttt{()} is called, the resulting task will be returned via the promise given as input. \end{document} %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - %% %%% Local Variables: %%% TeX-command-extra-options: "-shell-escape" %%% End: