diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6ec328e --- /dev/null +++ b/.gitignore @@ -0,0 +1,302 @@ +## Core latex/pdflatex auxiliary files: +*.aux +*.lof +*.log +*.lot +*.fls +*.out +*.toc +*.fmt +*.fot +*.cb +*.cb2 +.*.lb + +## Intermediate documents: +*.dvi +*.xdv +*-converted-to.* +# these rules might exclude image files for figures etc. +# *.ps +# *.eps +# *.pdf + +## Generated if empty string is given at "Please type another file name for output:" +.pdf + +## Bibliography auxiliary files (bibtex/biblatex/biber): +*.bbl +*.bcf +*.blg +*-blx.aux +*-blx.bib +*.run.xml + +## Build tool auxiliary files: +*.fdb_latexmk +*.synctex +*.synctex(busy) +*.synctex.gz +*.synctex.gz(busy) +*.pdfsync + +## Build tool directories for auxiliary files +# latexrun +latex.out/ + +## Auxiliary and intermediate files from other packages: +# algorithms +*.alg +*.loa + +# achemso +acs-*.bib + +# amsthm +*.thm + +# beamer +*.nav +*.pre +*.snm +*.vrb + +# changes +*.soc + +# comment +*.cut + +# cprotect +*.cpt + +# elsarticle (documentclass of Elsevier journals) +*.spl + +# endnotes +*.ent + +# fixme +*.lox + +# feynmf/feynmp +*.mf +*.mp +*.t[1-9] +*.t[1-9][0-9] +*.tfm + +#(r)(e)ledmac/(r)(e)ledpar +*.end +*.?end +*.[1-9] +*.[1-9][0-9] +*.[1-9][0-9][0-9] +*.[1-9]R +*.[1-9][0-9]R +*.[1-9][0-9][0-9]R +*.eledsec[1-9] +*.eledsec[1-9]R +*.eledsec[1-9][0-9] +*.eledsec[1-9][0-9]R +*.eledsec[1-9][0-9][0-9] +*.eledsec[1-9][0-9][0-9]R + +# glossaries +*.acn +*.acr +*.glg +*.glo +*.gls +*.glsdefs +*.lzo +*.lzs +*.slg +*.slo +*.sls + +# uncomment this for glossaries-extra (will ignore makeindex's style files!) +# *.ist + +# gnuplot +*.gnuplot +*.table + +# gnuplottex +*-gnuplottex-* + +# gregoriotex +*.gaux +*.glog +*.gtex + +# htlatex +*.4ct +*.4tc +*.idv +*.lg +*.trc +*.xref + +# hyperref +*.brf + +# knitr +*-concordance.tex +# TODO Uncomment the next line if you use knitr and want to ignore its generated tikz files +# *.tikz +*-tikzDictionary + +# listings +*.lol + +# luatexja-ruby +*.ltjruby + +# makeidx +*.idx +*.ilg +*.ind + +# minitoc +*.maf +*.mlf +*.mlt +*.mtc[0-9]* +*.slf[0-9]* +*.slt[0-9]* +*.stc[0-9]* + +# minted +_minted* +*.pyg + +# morewrites +*.mw + +# newpax +*.newpax + +# nomencl +*.nlg +*.nlo +*.nls + +# pax +*.pax + +# pdfpcnotes +*.pdfpc + +# sagetex +*.sagetex.sage +*.sagetex.py +*.sagetex.scmd + +# scrwfile +*.wrt + +# svg +svg-inkscape/ + +# sympy +*.sout +*.sympy +sympy-plots-for-*.tex/ + +# pdfcomment +*.upa +*.upb + +# pythontex +*.pytxcode +pythontex-files-*/ + +# tcolorbox +*.listing + +# thmtools +*.loe + +# TikZ & PGF +*.dpth +*.md5 +*.auxlock + +# titletoc +*.ptc + +# todonotes +*.tdo + +# vhistory +*.hst +*.ver + +# easy-todo +*.lod + +# xcolor +*.xcp + +# xmpincl +*.xmpi + +# xindy +*.xdy + +# xypic precompiled matrices and outlines +*.xyc +*.xyd + +# endfloat +*.ttt +*.fff + +# Latexian +TSWLatexianTemp* + +## Editors: +# WinEdt +*.bak +*.sav + +# Texpad +.texpadtmp + +# LyX +*.lyx~ + +# Kile +*.backup + +# gummi +.*.swp + +# KBibTeX +*~[0-9]* + +# TeXnicCenter +*.tps + +# auto folder when using emacs and auctex +./auto/* +*.el + +# expex forward references with \gathertags +*-tags.tex + +# standalone packages +*.sta + +# Makeindex log files +*.lpz + +# xwatermark package +*.xwm + +# REVTeX puts footnotes in the bibliography by default, unless the nofootinbib +# option is specified. Footnotes are the stored in a file with suffix Notes.bib. +# Uncomment the next line to have this generated file ignored. +#*Notes.bib + diff --git a/Project0/project0.pdf b/Project0/project0.pdf new file mode 100644 index 0000000..54193fc Binary files /dev/null and b/Project0/project0.pdf differ diff --git a/Project1/Makefile b/Project1/Makefile new file mode 100644 index 0000000..69c32f1 --- /dev/null +++ b/Project1/Makefile @@ -0,0 +1,13 @@ +filename=project_1_maggioni_claudio + +pdf: + pdflatex ${filename} + pdflatex ${filename} + make clean + +read: + evince ${filename}.pdf & + + +clean: + rm -f ${filename}.out ${filename}.log ${filename}.bbl ${filename}.blg ${filename}.au ${filename}.log ${filename}.ps ${filename}.aux ${filename}.out ${filename}.dvi ${filename}.bbl ${filename}.blg ${filename}.toc ${filename}.nav ${filename}.vrb ${filename}.snm diff --git a/Project1/assignment.sty b/Project1/assignment.sty new file mode 100644 index 0000000..a4f1a80 --- /dev/null +++ b/Project1/assignment.sty @@ -0,0 +1,95 @@ +\usepackage{ifthen} +\usepackage[utf8]{inputenc} +\usepackage{graphics} +\usepackage{graphicx} +\usepackage{hyperref} + +\pagestyle{plain} +\voffset -5mm +\oddsidemargin 0mm +\evensidemargin -11mm +\marginparwidth 2cm +\marginparsep 0pt +\topmargin 0mm +\headheight 0pt +\headsep 0pt +\topskip 0pt +\textheight 255mm +\textwidth 165mm + +\newcommand{\duedate} {} +\newcommand{\setduedate}[1]{% +\renewcommand\duedate {Due date:~ #1}} +\newcommand\isassignment {false} +\newcommand{\setassignment}{\renewcommand\isassignment {true}} +\newcommand{\ifassignment}[1]{\ifthenelse{\boolean{\isassignment}}{#1}{}} +\newcommand{\ifnotassignment}[1]{\ifthenelse{\boolean{\isassignment}}{}{#1}} + +\newcommand{\assignmentpolicy}{ +\begin{table}[h] +\begin{center} +\scalebox{0.8} {% +\begin{tabular}{|p{0.02cm}p{16cm}|} +\hline +&\\ +\multicolumn{2}{|c|}{\Large\textbf{HPC 2022 --- Submission Instructions}}\\ +\multicolumn{2}{|c|}{\large\textbf{(Please, notice that following instructions are mandatory: }}\\ +\multicolumn{2}{|c|}{\large\textbf{submissions that don't comply with, won't be considered)}}\\ +&\\ +\textbullet & Assignments must be submitted to \href{https://www.icorsi.ch/course/view.php?id=14652}{iCorsi} (i.e. in electronic format).\\ +\textbullet & Provide both executable package and sources (e.g. C/C++ files, Matlab). +If you are using libraries, please add them in the file. Sources must be organized in directories called:\\ +\multicolumn{2}{|c|}{\textit{Project\_number\_lastname\_firstname}}\\ +& and the file must be called:\\ +\multicolumn{2}{|c|}{\textit{project\_number\_lastname\_firstname.zip}}\\ +\multicolumn{2}{|c|}{\textit{project\_number\_lastname\_firstname.pdf}}\\ +\textbullet & The TAs will grade your project by reviewing your project write-up, and looking at the implementation + you attempted, and benchmarking your code's performance.\\ + +\textbullet & You are allowed to discuss all questions with anyone you like; however: (i) your submission must list anyone you discussed problems with and (ii) you must write up your submission independently.\\ +\hline +\end{tabular} +} +\end{center} +\end{table} +} +\newcommand{\punkte}[1]{\hspace{1ex}\emph{\mdseries\hfill(#1~\ifcase#1{Points}\or{Points}\else{Points}\fi)}} + + +\newcommand\serieheader[6]{ +\thispagestyle{empty}% +\begin{flushleft} +\includegraphics[width=0.4\textwidth]{usi_inf.png} +\end{flushleft} + \noindent% + {\large\ignorespaces{\textbf{#1}}\hspace{\fill}\ignorespaces{ \textbf{#2}}}\\ \\% + {\large\ignorespaces #3 \hspace{\fill}\ignorespaces #4}\\ + \noindent% + \bigskip + \hrule\par\bigskip\noindent% + \bigskip {\ignorespaces {\Large{\textbf{#5}}} + \hspace{\fill}\ignorespaces \large \ifthenelse{\boolean{\isassignment}}{\duedate}{#6}} + \hrule\par\bigskip\noindent% \linebreak + } + +\makeatletter +\def\enumerateMod{\ifnum \@enumdepth >3 \@toodeep\else + \advance\@enumdepth \@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}\list + {\csname label\@enumctr\endcsname}{\usecounter + {\@enumctr}%%%? the following differs from "enumerate" + \topsep0pt% + \partopsep0pt% + \itemsep0pt% + \def\makelabel##1{\hss\llap{##1}}}\fi} +\let\endenumerateMod =\endlist +\makeatother + + + + +\usepackage{textcomp} + + + + diff --git a/Project1/project1.pdf b/Project1/project1.pdf new file mode 100644 index 0000000..22ede9d Binary files /dev/null and b/Project1/project1.pdf differ diff --git a/Project1/project_1_maggioni_claudio.pdf b/Project1/project_1_maggioni_claudio.pdf new file mode 100644 index 0000000..c342322 Binary files /dev/null and b/Project1/project_1_maggioni_claudio.pdf differ diff --git a/Project1/project_1_maggioni_claudio.tex b/Project1/project_1_maggioni_claudio.tex new file mode 100644 index 0000000..872ec4e --- /dev/null +++ b/Project1/project_1_maggioni_claudio.tex @@ -0,0 +1,79 @@ +\documentclass[unicode,11pt,a4paper,oneside,numbers=endperiod,openany]{scrartcl} + +\input{assignment.sty} +\usepackage{fancyvrb} +\begin{document} + + +\setassignment +\setduedate{12.10.2022 (midnight)} + +\serieheader{High-Performance Computing Lab}{2022}{Student: Claudio +Maggioni}{Discussed with: ---}{Solution for Project 1}{} +\newline + +\assignmentpolicy +In this project you will practice memory access optimization, performance-oriented programming, and OpenMP parallelizaton +on the ICS Cluster . + +\section{Explaining Memory Hierarchies \punkte{25}} + +By identifying the memory hierarchy parameters through \texttt{likwid-topology} +for the cache topology and \texttt{free -g} for the amount of primary memory I +find the following values: + +\begin{center} +\begin{tabular}{llll} +Main memory & 62 GB \\ +L3 cache & 25 MB per socket \\ +L2 cache & 256 kB per core \\ +L1 cache & 32 kB per core +\end{tabular} +\end{center} + +All values are reported using base 2 IEC byte units. The cluster has 2 sockets +and a total of 20 cores (10 per socket). The cache topology diagram reported by +\texttt{likwid-topology -g} is the following: + +\pagebreak[4] +% https://tex.stackexchange.com/a/171818 +\begin{Verbatim}[fontsize=\tiny] +Socket 0: ++---------------------------------------------------------------------------------------------------------------+ +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| | 0 | | 1 | | 2 | | 3 | | 4 | | 5 | | 6 | | 7 | | 8 | | 9 | | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| +-----------------------------------------------------------------------------------------------------------+ | +| | 25 MB | | +| +-----------------------------------------------------------------------------------------------------------+ | ++---------------------------------------------------------------------------------------------------------------+ +Socket 1: ++---------------------------------------------------------------------------------------------------------------+ +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | 32 kB | | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | 256 kB | | +| +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ +--------+ | +| +-----------------------------------------------------------------------------------------------------------+ | +| | 25 MB | | +| +-----------------------------------------------------------------------------------------------------------+ | ++---------------------------------------------------------------------------------------------------------------+ +\end{Verbatim} + +\section{Optimize Square Matrix-Matrix Multiplication \punkte{60}} + + +\section{Quality of the Report \punkte{15}} + + +\end{document} diff --git a/Project1/usi_inf.png b/Project1/usi_inf.png new file mode 100644 index 0000000..72f750f Binary files /dev/null and b/Project1/usi_inf.png differ