From: Francis Russell Date: Mon, 10 Jun 2013 18:06:54 +0000 (+0100) Subject: Initial work on PSL slides. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=99b5e79789580d113bd00f8abc2f1eaa88aadaf5;p=francis%2Fpsl_presentation_20130611.git Initial work on PSL slides. --- 99b5e79789580d113bd00f8abc2f1eaa88aadaf5 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8138dbc --- /dev/null +++ b/.gitignore @@ -0,0 +1,15 @@ +#Vim swap +.*.swp + +#Generated +/pygments.sty +/*.aux +/*.log +/*.nav +/*.out +/*.pdf +/*.snm +/*.toc +/code/*.tex +/images-dot/*.tex +/images-svg/*.pdf diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..4fbd70a --- /dev/null +++ b/Makefile @@ -0,0 +1,64 @@ +IMAGE_FILES=$(wildcard images/*) + +SVG_FOLDER=images-svg +SVG_SOURCES=$(wildcard $(SVG_FOLDER)/*.svg) +SVG_OUTPUTS=${patsubst %.svg,%.pdf,$(SVG_SOURCES)} + +CODE_FOLDER=code +CODE_F90_TEX_FILES=${patsubst %.F90,%.tex,$(wildcard $(CODE_FOLDER)/*.F90)} +CODE_UFL_TEX_FILES=${patsubst %.ufl,%.tex,$(wildcard $(CODE_FOLDER)/*.ufl)} +CODE_RAW_FILES=$(wildcard $(CODE_FOLDER)/*.ofl $(CODE_FOLDER)/*.txt) +CODE_TEX_FILES=$(CODE_F90_TEX_FILES) $(CODE_UFL_TEX_FILES) + +DOT_FOLDER=images-dot +DOT_TEX_FILES=${patsubst %.dot,%.tex,$(wildcard $(DOT_FOLDER)/*.dot)} + + +PDFLATEX_OUTPUT_LOG=pdflatex_output.log + +all: presentation.pdf + +display: presentation.pdf + xpdf presentation.pdf + +display-4up: presentation-4up.pdf + xpdf presentation-4up.pdf + +4up: presentation-4up.pdf + +presentation-4up.pdf: presentation.pdf + pdfnup --nup 2x2 --a4paper --scale 0.95 --frame true presentation.pdf -o presentation-4up.pdf + +presentation.pdf: $(IMAGE_FILES) $(SVG_OUTPUTS) $(CODE_TEX_FILES) $(CODE_RAW_FILES) $(DOT_TEX_FILES) $(wildcard *.tex *.sty) pygments.sty + pdflatex -draftmode presentation &&\ + while(pdflatex presentation | tee $(PDFLATEX_OUTPUT_LOG) && grep "Rerun to get cross-references right" $(PDFLATEX_OUTPUT_LOG)); do true; done &&\ + rm -f $(PDFLATEX_OUTPUT_LOG) + +clean: + rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lot *.lof *.nav *.snm \ + $(SVG_FOLDER)/*.pdf \ + $(BASIS_FUNCTIONS_FOLDER)/*.pdf \ + $(BASIS_FUNCTIONS_BUILD_STAMP) \ + $(CODE_TEX_FILES) \ + $(DOT_FOLDER)/*.tex \ + pygments.sty + +upload: presentation.pdf + rsync -C --progress presentation.pdf shell3.doc.ic.ac.uk:~/public_html/psl_presentation_2013.pdf + +%.pdf: %.svg + inkscape -D -A $@ $< + +pygments.sty: + pygmentize -S friendly -f latex > $@ + +%.tex: %.F90 + pygmentize -f latex -l fortran -o $@ $< + +%.tex: %.ufl + pygmentize -f latex -l python -o $@ $< + +%.tex: %.dot + dot2tex --codeonly --usepdflatex -f tikz $< -o $@ + +.PHONY: all display clean upload 4up display-4up diff --git a/images-svg/interpolation-naive.svg b/images-svg/interpolation-naive.svg new file mode 100644 index 0000000..3389d47 --- /dev/null +++ b/images-svg/interpolation-naive.svg @@ -0,0 +1,1038 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 3D FFT + + Padding + + 3D Inverse-FFT + CoarseRepresentation + CoarseFrequencyRepresentation + FineFrequencyRepresentation + FineRepresentation + + diff --git a/images-svg/interpolation-onetep.svg b/images-svg/interpolation-onetep.svg new file mode 100644 index 0000000..cd5c3c4 --- /dev/null +++ b/images-svg/interpolation-onetep.svg @@ -0,0 +1,1564 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1D Inverse FFTsin Z + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1D Inverse FFTsin Y + + 1D Inverse FFTsin X + + diff --git a/images-svg/simulation_cell.svg b/images-svg/simulation_cell.svg new file mode 100644 index 0000000..ad2ded6 --- /dev/null +++ b/images-svg/simulation_cell.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + α + + + + β + + + + simulation cell + FFT box + zero padding region + bra function + ket function + + + + + + + diff --git a/presentation.tex b/presentation.tex new file mode 100644 index 0000000..34ca1ad --- /dev/null +++ b/presentation.tex @@ -0,0 +1,107 @@ +% vim:tw=80 + +\documentclass{beamer} +\usetheme{Madrid} +\usepackage{graphicx} +\usepackage{verbatim} +\usepackage{fancyvrb} +\usepackage{tikz} +\usepackage{ucs} +\usepackage{alltt} +\usepackage[utf8x]{inputenc} + +\input{pygments.sty} + +\title[PSL Meeting]{PSL Meeting Presentation} +\subtitle{Exploring Performance Optimisation Opportunities in ONETEP} + +\author[F. Russell]{Francis Russell \\ Joint work with Chris-Kriton Skylaris \& Karl Wilkinson} +\date{25/02/2013} +\institute[ICL \& Soton]{Imperial College London \& Southampton University} + +\begin{document} + +\frame{\titlepage} + +\frame{ + +\frametitle{DSLs for Quantum Chemistry} + +\begin{itemize} + +\item I have been looking as domain specific languages (DSLs) for quantum + chemistry, specifically in context of the linear scaling code ONETEP. + +\item In my previous presentation, I concluded that the domain of variability in + the input to a domain-specific language for ONETEP was quite small. + +\item The domain of variability in the code we can generate is a far more +interesting target - primarily from the perspective of increasing performance. + +\item We decided to look at the potential for optimisation in ONETEP's more + computationally intensive routines to determine if they optimisations we'd + like to generate even exist. +\end{itemize} + +} + +\frame{ + +\frametitle{FFT-Boxes} + +\begin{itemize} + +\item Within a simulation cell, ONETEP performs many Discrete Fourier transforms + within regions called FFT-boxes. + +\item The most computationally intensive involve the interpolation of values in + these boxes. + +\end{itemize} + +\centering +\resizebox{0.85\textwidth}{!}{ +\includegraphics{images-svg/simulation_cell} +} + +} + +\frame{ + +\frametitle{Fourier Interpolation of FFT-boxes} + +\small +The interpolation process in ONETEP involves transforming a 3-dimensional block +of data to block 8x the original size. The resolution has been doubled in each +dimension. + +\vspace{1em} + +\centering +\resizebox{0.70\textwidth}{!}{ +\includegraphics{images-svg/interpolation-naive} +} + +} + +\frame{ + +\frametitle{Fourier Interpolation of FFT-boxes} + +\small +ONETEP performs transforms in each dimension so each FFT only operates on 50\% +zeroes instead of 87.5\% of the naïve strategy. + +\vspace{1em} + +\centering +\resizebox{0.50\textwidth}{!}{ +\includegraphics{images-svg/interpolation-onetep} +} + +} + + +\end{document} + +