WIP
This commit is contained in:
parent
f2f59cc736
commit
22a66f5d6b
BIN
beamerbackgroundtrex.png
Normal file
BIN
beamerbackgroundtrex.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 31 KiB |
25
beamercolorthemetrex.sty
Normal file
25
beamercolorthemetrex.sty
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
\mode<presentation>
|
||||||
|
|
||||||
|
% Settings
|
||||||
|
\setbeamercolor*{title page header}{fg=red!80!black}
|
||||||
|
\setbeamercolor*{author}{fg=blue!50!cyan!80!black}
|
||||||
|
\setbeamercolor*{institute}{fg=blue!80!cyan!50!black}
|
||||||
|
\setbeamercolor*{date}{fg=blue!80!cyan!50!black}
|
||||||
|
|
||||||
|
\setbeamercolor*{item}{fg=blue!50!cyan!80!black}
|
||||||
|
\setbeamertemplate{items}[square]
|
||||||
|
\setbeamertemplate{sections/subsections in toc}[square]
|
||||||
|
|
||||||
|
\setbeamercolor{block title}{fg=white,bg=blue!50!cyan!80!black}
|
||||||
|
%\setbeamercolor{block body}{bg=block title.bg!30!bg}
|
||||||
|
|
||||||
|
% alertblock
|
||||||
|
\setbeamercolor{block title alerted}{fg=white,bg=red!80!black}
|
||||||
|
%\setbeamercolor{block body alerted}{bg=block title alerted.bg!10!bg}
|
||||||
|
|
||||||
|
% exampleblock
|
||||||
|
\setbeamercolor{block title example}{fg=white,bg=blue!50!cyan!80!black}
|
||||||
|
%\setbeamercolor{block body example}{bg=white}
|
||||||
|
|
||||||
|
\mode
|
||||||
|
<all>
|
313
beamerfontthemetrex.sty
Normal file
313
beamerfontthemetrex.sty
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
%%
|
||||||
|
%% This is file `beamerfontthemetrex.sty',
|
||||||
|
%% generated with the docstrip utility.
|
||||||
|
%%
|
||||||
|
%% The original source files were:
|
||||||
|
%%
|
||||||
|
%% beamerfontthemetrex.dtx (with options: `package')
|
||||||
|
%% ---------------------------------------------------------------------------
|
||||||
|
%% Copyright 2015 Matthias Vogelgesang and the LaTeX community. A full list of
|
||||||
|
%% contributors can be found at
|
||||||
|
%%
|
||||||
|
%% https://github.com/matze/mtheme/graphs/contributors
|
||||||
|
%%
|
||||||
|
%% and the original template was based on the HSRM theme by Benjamin Weiss.
|
||||||
|
%%
|
||||||
|
%% This work is licensed under a Creative Commons Attribution-ShareAlike 4.0
|
||||||
|
%% International License (https://creativecommons.org/licenses/by-sa/4.0/).
|
||||||
|
%% ---------------------------------------------------------------------------
|
||||||
|
\NeedsTeXFormat{LaTeX2e}
|
||||||
|
\ProvidesPackage{beamerfontthemetrex}[2017/01/23 trex font theme]
|
||||||
|
\RequirePackage{etoolbox}
|
||||||
|
\RequirePackage{ifxetex}
|
||||||
|
\RequirePackage{ifluatex}
|
||||||
|
\RequirePackage{pgfopts}
|
||||||
|
\ifboolexpr{bool {xetex} or bool {luatex}}{
|
||||||
|
\@ifpackageloaded{fontspec}{
|
||||||
|
\PassOptionsToPackage{no-math}{fontspec}
|
||||||
|
}{
|
||||||
|
\RequirePackage[no-math]{fontspec}
|
||||||
|
}
|
||||||
|
\newcounter{fontsnotfound}
|
||||||
|
\newcommand{\checkfont}[1]{%
|
||||||
|
\suppressfontnotfounderror=1%
|
||||||
|
\font\x = "#1" at 10pt
|
||||||
|
\selectfont
|
||||||
|
\ifx\x\nullfont%
|
||||||
|
\stepcounter{fontsnotfound}%
|
||||||
|
\fi%
|
||||||
|
\suppressfontnotfounderror=0%
|
||||||
|
}
|
||||||
|
|
||||||
|
\newcommand{\iffontsavailable}[3]{%
|
||||||
|
\setcounter{fontsnotfound}{0}%
|
||||||
|
\expandafter\forcsvlist\expandafter%
|
||||||
|
\checkfont\expandafter{#1}%
|
||||||
|
\ifnum\value{fontsnotfound}=0%
|
||||||
|
#2%
|
||||||
|
\else%
|
||||||
|
#3%
|
||||||
|
\fi%
|
||||||
|
}
|
||||||
|
\iffontsavailable{Fira Sans Light,%
|
||||||
|
Fira Sans Light Italic,%
|
||||||
|
Fira Sans,%
|
||||||
|
Fira Sans Italic}%
|
||||||
|
{%
|
||||||
|
\setsansfont[ItalicFont={Fira Sans Light Italic},%
|
||||||
|
BoldFont={Fira Sans},%
|
||||||
|
BoldItalicFont={Fira Sans Italic}]%
|
||||||
|
{Fira Sans Light}%
|
||||||
|
}{%
|
||||||
|
\iffontsavailable{Fira Sans Light OT,%
|
||||||
|
Fira Sans Light Italic OT,%
|
||||||
|
Fira Sans OT,%
|
||||||
|
Fira Sans Italic OT}%
|
||||||
|
{%
|
||||||
|
\setsansfont[ItalicFont={Fira Sans Light Italic OT},%
|
||||||
|
BoldFont={Fira Sans OT},%
|
||||||
|
BoldItalicFont={Fira Sans Italic OT}]%
|
||||||
|
{Fira Sans Light OT}%
|
||||||
|
}{%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Could not find Fira Sans fonts%
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\iffontsavailable{Fira Mono, Fira Mono Bold}{%
|
||||||
|
\setmonofont[BoldFont={Fira Mono Medium}]{Fira Mono}%
|
||||||
|
}{%
|
||||||
|
\iffontsavailable{Fira Mono OT, Fira Mono Bold OT}{%
|
||||||
|
\setmonofont[BoldFont={Fira Mono Medium OT}]{Fira Mono OT}%
|
||||||
|
}{%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Could not find Fira Mono fonts%
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\AtBeginEnvironment{tabular}{%
|
||||||
|
\addfontfeature{Numbers={Monospaced}}%
|
||||||
|
}
|
||||||
|
}{%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
You need to compile with XeLaTeX or LuaLaTeX to use the Fira fonts%
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\setbeamerfont{title}{size=\Large,%
|
||||||
|
series=\bfseries}
|
||||||
|
\setbeamerfont{author}{size=\small}
|
||||||
|
\setbeamerfont{date}{size=\small}
|
||||||
|
\setbeamerfont{section title}{size=\Large,%
|
||||||
|
series=\bfseries}
|
||||||
|
\setbeamerfont{block title}{size=\normalsize,%
|
||||||
|
series=\bfseries}
|
||||||
|
\setbeamerfont{block title alerted}{size=\normalsize,%
|
||||||
|
series=\bfseries}
|
||||||
|
\setbeamerfont*{subtitle}{size=\large}
|
||||||
|
\setbeamerfont{frametitle}{size=\large,%
|
||||||
|
series=\bfseries}
|
||||||
|
\setbeamerfont{caption}{size=\small}
|
||||||
|
\setbeamerfont{caption name}{series=\bfseries}
|
||||||
|
\setbeamerfont{description item}{series=\bfseries}
|
||||||
|
\setbeamerfont{page number in head/foot}{size=\scriptsize}
|
||||||
|
\setbeamerfont{bibliography entry author}{size=\normalsize,%
|
||||||
|
series=\normalfont}
|
||||||
|
\setbeamerfont{bibliography entry title}{size=\normalsize,%
|
||||||
|
series=\bfseries}
|
||||||
|
\setbeamerfont{bibliography entry location}{size=\normalsize,%
|
||||||
|
series=\normalfont}
|
||||||
|
\setbeamerfont{bibliography entry note}{size=\small,%
|
||||||
|
series=\normalfont}
|
||||||
|
\setbeamerfont{standout}{size=\Large,%
|
||||||
|
series=\bfseries}
|
||||||
|
\pgfkeys{
|
||||||
|
/trex/font/titleformat title/.cd,
|
||||||
|
.is choice,
|
||||||
|
regular/.code={%
|
||||||
|
\let\trex@titleformat\@empty%
|
||||||
|
\setbeamerfont{title}{shape=\normalfont}%
|
||||||
|
},
|
||||||
|
smallcaps/.code={%
|
||||||
|
\let\trex@titleformat\@empty%
|
||||||
|
\setbeamerfont{title}{shape=\scshape}%
|
||||||
|
},
|
||||||
|
allsmallcaps/.code={%
|
||||||
|
\let\trex@titleformat\lowercase%
|
||||||
|
\setbeamerfont{title}{shape=\scshape}%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat title=allsmallcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
allcaps/.code={%
|
||||||
|
\let\trex@titleformat\uppercase%
|
||||||
|
\setbeamerfont{title}{shape=\normalfont}
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat title=allcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
\pgfkeys{
|
||||||
|
/trex/font/titleformat subtitle/.cd,
|
||||||
|
.is choice,
|
||||||
|
regular/.code={%
|
||||||
|
\let\trex@subtitleformat\@empty%
|
||||||
|
\setbeamerfont{subtitle}{shape=\normalfont}%
|
||||||
|
},
|
||||||
|
smallcaps/.code={%
|
||||||
|
\let\trex@subtitleformat\@empty%
|
||||||
|
\setbeamerfont{subtitle}{shape=\scshape}%
|
||||||
|
},
|
||||||
|
allsmallcaps/.code={%
|
||||||
|
\let\trex@subtitleformat\lowercase%
|
||||||
|
\setbeamerfont{subtitle}{shape=\scshape}%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat subtitle=allsmallcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
allcaps/.code={%
|
||||||
|
\let\trex@subtitleformat\uppercase%
|
||||||
|
\setbeamerfont{subtitle}{shape=\normalfont}%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat subtitle=allcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
\pgfkeys{
|
||||||
|
/trex/font/titleformat section/.cd,
|
||||||
|
.is choice,
|
||||||
|
regular/.code={%
|
||||||
|
\let\trex@sectiontitleformat\@empty%
|
||||||
|
\setbeamerfont{section title}{shape=\normalfont}%
|
||||||
|
},
|
||||||
|
smallcaps/.code={%
|
||||||
|
\let\trex@sectiontitleformat\@empty%
|
||||||
|
\setbeamerfont{section title}{shape=\scshape}%
|
||||||
|
},
|
||||||
|
allsmallcaps/.code={%
|
||||||
|
\let\trex@sectiontitleformat\MakeLowercase%
|
||||||
|
\setbeamerfont{section title}{shape=\scshape}%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat section=allsmallcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
allcaps/.code={%
|
||||||
|
\let\trex@sectiontitleformat\MakeUppercase%
|
||||||
|
\setbeamerfont{section title}{shape=\normalfont}%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat section=allcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
\pgfkeys{
|
||||||
|
/trex/font/titleformat frame/.cd,
|
||||||
|
.is choice,
|
||||||
|
regular/.code={%
|
||||||
|
\let\trex@frametitleformat\@empty%
|
||||||
|
\setbeamerfont{frametitle}{shape=\normalfont}%
|
||||||
|
},
|
||||||
|
smallcaps/.code={%
|
||||||
|
\let\trex@frametitleformat\@empty%
|
||||||
|
\setbeamerfont{frametitle}{shape=\scshape}%
|
||||||
|
},
|
||||||
|
allsmallcaps/.code={%
|
||||||
|
\let\trex@frametitleformat\MakeLowercase%
|
||||||
|
\setbeamerfont{frametitle}{shape=\scshape}%
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat frame=allsmallcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
allcaps/.code={%
|
||||||
|
\let\trex@frametitleformat\MakeUppercase%
|
||||||
|
\setbeamerfont{frametitle}{shape=\normalfont}
|
||||||
|
\PackageWarning{beamerthemetrex}{%
|
||||||
|
Be aware that titleformat frame=allcaps can lead to problems%
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
\pgfkeys{
|
||||||
|
/trex/font/.cd,
|
||||||
|
titleformattitle/.code=\pgfkeysalso{titleformat title=#1},
|
||||||
|
titleformatsubtitle/.code=\pgfkeysalso{titleformat subtitle=#1},
|
||||||
|
titleformatsection/.code=\pgfkeysalso{titleformat section=#1},
|
||||||
|
titleformatframe/.code=\pgfkeysalso{titleformat frame=#1},
|
||||||
|
}
|
||||||
|
\newcommand{\trex@font@setdefaults}{
|
||||||
|
\pgfkeys{/trex/font/.cd,
|
||||||
|
titleformat title=regular,
|
||||||
|
titleformat subtitle=regular,
|
||||||
|
titleformat section=regular,
|
||||||
|
titleformat frame=regular,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
\def\trex@titleformat#1{#1}
|
||||||
|
\def\trex@subtitleformat#1{#1}
|
||||||
|
\def\trex@sectiontitleformat#1{#1}
|
||||||
|
\def\trex@frametitleformat#1{#1}
|
||||||
|
\patchcmd{\beamer@title}%
|
||||||
|
{\def\inserttitle{#2}}%
|
||||||
|
{\def\inserttitle{\trex@titleformat{#2}}}%
|
||||||
|
{}%
|
||||||
|
{\PackageError{beamerfontthemetrex}{Patching title failed}\@ehc}
|
||||||
|
\patchcmd{\beamer@subtitle}%
|
||||||
|
{\def\insertsubtitle{#2}}%
|
||||||
|
{\def\insertsubtitle{\trex@subtitleformat{#2}}}%
|
||||||
|
{}%
|
||||||
|
{\PackageError{beamerfontthemetrex}{Patching subtitle failed}\@ehc}
|
||||||
|
\patchcmd{\sectionentry}
|
||||||
|
{\def\insertsectionhead{#2}}
|
||||||
|
{\def\insertsectionhead{\trex@sectiontitleformat{#2}}}
|
||||||
|
{}
|
||||||
|
{\PackageError{beamerfontthemetrex}{Patching section title failed}\@ehc}
|
||||||
|
\@tempswafalse
|
||||||
|
\patchcmd{\beamer@section}
|
||||||
|
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
|
||||||
|
{\def\insertsectionhead{\hyperlink{Navigation\the\c@page}{%
|
||||||
|
\trex@sectiontitleformat{#1}}}}
|
||||||
|
{\@tempswatrue}
|
||||||
|
{}
|
||||||
|
\patchcmd{\beamer@section}
|
||||||
|
{\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
|
||||||
|
{\protected@edef\insertsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
|
||||||
|
\noexpand\trex@sectiontitleformat{#1}}}}
|
||||||
|
{\@tempswatrue}
|
||||||
|
{}
|
||||||
|
\if@tempswa\else
|
||||||
|
\PackageError{beamerfontthemetrex}{Patching section title failed}\@ehc
|
||||||
|
\fi
|
||||||
|
\@tempswafalse
|
||||||
|
\patchcmd{\beamer@subsection}
|
||||||
|
{\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{#1}}}
|
||||||
|
{\def\insertsubsectionhead{\hyperlink{Navigation\the\c@page}{%
|
||||||
|
\trex@sectiontitleformat{#1}}}}
|
||||||
|
{\@tempswatrue}
|
||||||
|
{}
|
||||||
|
\patchcmd{\beamer@subsection}
|
||||||
|
{\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{#1}}}
|
||||||
|
{\protected@edef\insertsubsectionhead{\noexpand\hyperlink{Navigation\the\c@page}{%
|
||||||
|
\noexpand\trex@sectiontitleformat{#1}}}}
|
||||||
|
{\@tempswatrue}
|
||||||
|
{}
|
||||||
|
\if@tempswa\else
|
||||||
|
\PackageError{beamerfontthemetrex}{Patching section title failed}\@ehc
|
||||||
|
\fi
|
||||||
|
\patchcmd{\beamer@@frametitle}
|
||||||
|
{{%
|
||||||
|
\gdef\insertframetitle{{#2\ifnum\beamer@autobreakcount>0\relax{}\space%
|
||||||
|
\usebeamertemplate*{frametitle continuation}\fi}}%
|
||||||
|
\gdef\beamer@frametitle{#2}%
|
||||||
|
\gdef\beamer@shortframetitle{#1}%
|
||||||
|
}}
|
||||||
|
{{%
|
||||||
|
\gdef\insertframetitle{{\trex@frametitleformat{#2}\ifnum%
|
||||||
|
\beamer@autobreakcount>0\relax{}\space%
|
||||||
|
\usebeamertemplate*{frametitle continuation}\fi}}%
|
||||||
|
\gdef\beamer@frametitle{#2}%
|
||||||
|
\gdef\beamer@shortframetitle{#1}%
|
||||||
|
}}
|
||||||
|
{}
|
||||||
|
{\PackageError{beamerfontthemetrex}{Patching frame title failed}\@ehc}
|
||||||
|
\trex@font@setdefaults
|
||||||
|
\ProcessPgfPackageOptions{/trex/font}
|
||||||
|
\endinput
|
||||||
|
%%
|
||||||
|
%% End of file `beamerfontthemetrex.sty'.
|
53
beamerinnerthemetrex.sty
Normal file
53
beamerinnerthemetrex.sty
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
\mode<presentation>
|
||||||
|
|
||||||
|
\setbeamertemplate{background}{
|
||||||
|
\ifnum\thepage>1
|
||||||
|
\includegraphics[height=\paperheight]{beamerbackgroundtrex.png}
|
||||||
|
\else
|
||||||
|
\includegraphics[height=\paperheight]{beamertitletrex.png}
|
||||||
|
\fi
|
||||||
|
}
|
||||||
|
|
||||||
|
% Title page
|
||||||
|
\defbeamertemplate*{title page}{trex}[1][]
|
||||||
|
{
|
||||||
|
\vskip3cm%
|
||||||
|
\begin{beamercolorbox}[wd=6.cm,leftskip=-0.5cm,#1]{title page header}
|
||||||
|
\usebeamerfont{title}\inserttitle\par%
|
||||||
|
\end{beamercolorbox}%
|
||||||
|
\vskip0.2cm%
|
||||||
|
\begin{beamercolorbox}[wd=6.cm,leftskip=-0.5cm,#1]{author}
|
||||||
|
\usebeamerfont{author}\insertauthor%
|
||||||
|
\end{beamercolorbox}
|
||||||
|
\vskip0.3cm%
|
||||||
|
\begin{beamercolorbox}[wd=6.cm,leftskip=-0.5cm,#1]{date}
|
||||||
|
\usebeamerfont{author}\insertdate%
|
||||||
|
\end{beamercolorbox}
|
||||||
|
\vskip0.3cm%
|
||||||
|
\begin{beamercolorbox}[wd=7.cm,leftskip=-0.5cm,#1]{institute}
|
||||||
|
\usebeamerfont{author}{\tiny \insertinstitute}%
|
||||||
|
\end{beamercolorbox}
|
||||||
|
\vfill
|
||||||
|
}
|
||||||
|
|
||||||
|
% Section page
|
||||||
|
\defbeamertemplate*{section page}{trex}{
|
||||||
|
\centering
|
||||||
|
\begin{minipage}{22em}
|
||||||
|
\raggedright
|
||||||
|
\usebeamercolor[fg]{section title}
|
||||||
|
\usebeamerfont{section title}
|
||||||
|
\insertsectionhead\\[-1ex]
|
||||||
|
\par
|
||||||
|
\ifx\insertsubsectionhead\@empty\else%
|
||||||
|
\usebeamercolor[fg]{subsection title}%
|
||||||
|
\usebeamerfont{subsection title}%
|
||||||
|
\insertsubsectionhead
|
||||||
|
\fi
|
||||||
|
\end{minipage}
|
||||||
|
\par
|
||||||
|
\vspace{\baselineskip}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\mode<all>
|
399
beamerouterthemetrex.log
Normal file
399
beamerouterthemetrex.log
Normal file
@ -0,0 +1,399 @@
|
|||||||
|
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex 2020.4.29) 7 OCT 2020 00:03
|
||||||
|
entering extended mode
|
||||||
|
restricted \write18 enabled.
|
||||||
|
file:line:error style messages enabled.
|
||||||
|
%&-line parsing enabled.
|
||||||
|
**beamerouterthemetrex.sty
|
||||||
|
(./beamerouterthemetrex.sty
|
||||||
|
LaTeX2e <2017-04-15>
|
||||||
|
Babel <3.18> and hyphenation patterns for 7 language(s) loaded.
|
||||||
|
./beamerouterthemetrex.sty:1: Undefined control sequence.
|
||||||
|
l.1 \mode
|
||||||
|
<presentation>
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:1: LaTeX Error: Missing \begin{document}.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.1 \mode<
|
||||||
|
presentation>
|
||||||
|
You're in trouble here. Try typing <return> to proceed.
|
||||||
|
If that doesn't work, type X <return> to quit.
|
||||||
|
|
||||||
|
Missing character: There is no < in font nullfont!
|
||||||
|
Missing character: There is no p in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no s in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no i in font nullfont!
|
||||||
|
Missing character: There is no o in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no > in font nullfont!
|
||||||
|
|
||||||
|
Overfull \hbox (20.0pt too wide) in paragraph at lines 1--2
|
||||||
|
[]
|
||||||
|
[]
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:4: Undefined control sequence.
|
||||||
|
l.4 \defbeamertemplate
|
||||||
|
*{frametitle}{trex}[1][]
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:4: LaTeX Error: Missing \begin{document}.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.4 \defbeamertemplate*
|
||||||
|
{frametitle}{trex}[1][]
|
||||||
|
You're in trouble here. Try typing <return> to proceed.
|
||||||
|
If that doesn't work, type X <return> to quit.
|
||||||
|
|
||||||
|
Missing character: There is no * in font nullfont!
|
||||||
|
Missing character: There is no f in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no m in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no i in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no l in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no x in font nullfont!
|
||||||
|
Missing character: There is no [ in font nullfont!
|
||||||
|
Missing character: There is no 1 in font nullfont!
|
||||||
|
Missing character: There is no ] in font nullfont!
|
||||||
|
Missing character: There is no [ in font nullfont!
|
||||||
|
Missing character: There is no ] in font nullfont!
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:6: LaTeX Error: Environment beamercolorbox undefined
|
||||||
|
.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.6 \begin{beamercolorbox}
|
||||||
|
[wd=\paperwidth,ht=0.95cm]{frametitle}
|
||||||
|
Your command was ignored.
|
||||||
|
Type I <command> <return> to replace it with another command,
|
||||||
|
or <return> to continue without it.
|
||||||
|
|
||||||
|
Missing character: There is no [ in font nullfont!
|
||||||
|
Missing character: There is no w in font nullfont!
|
||||||
|
Missing character: There is no d in font nullfont!
|
||||||
|
Missing character: There is no = in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:6: Illegal unit of measure (pt inserted).
|
||||||
|
<to be read again>
|
||||||
|
h
|
||||||
|
l.6 \begin{beamercolorbox}[wd=\paperwidth,h
|
||||||
|
t=0.95cm]{frametitle}
|
||||||
|
Dimensions can be in units of em, ex, in, pt, pc,
|
||||||
|
cm, mm, dd, cc, nd, nc, bp, or sp; but yours is a new one!
|
||||||
|
I'll assume that you meant to say pt, for printer's points.
|
||||||
|
To recover gracefully from this error, it's best to
|
||||||
|
delete the erroneous units; e.g., type `2' to delete
|
||||||
|
two letters. (See Chapter 27 of The TeXbook.)
|
||||||
|
|
||||||
|
Missing character: There is no h in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no = in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no 9 in font nullfont!
|
||||||
|
Missing character: There is no 5 in font nullfont!
|
||||||
|
Missing character: There is no c in font nullfont!
|
||||||
|
Missing character: There is no m in font nullfont!
|
||||||
|
Missing character: There is no ] in font nullfont!
|
||||||
|
Missing character: There is no f in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no m in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no i in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no l in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:7: LaTeX Error: Environment tikzpicture undefined.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.7 \begin{tikzpicture}
|
||||||
|
|
||||||
|
Your command was ignored.
|
||||||
|
Type I <command> <return> to replace it with another command,
|
||||||
|
or <return> to continue without it.
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:12: Undefined control sequence.
|
||||||
|
l.12 \useasboundingbox
|
||||||
|
[](0,0) rectangle(\the\paperwidth,1.);
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no [ in font nullfont!
|
||||||
|
Missing character: There is no ] in font nullfont!
|
||||||
|
Missing character: There is no ( in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no ) in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no c in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no g in font nullfont!
|
||||||
|
Missing character: There is no l in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no ( in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no p in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no 1 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no ) in font nullfont!
|
||||||
|
Missing character: There is no ; in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:16: Undefined control sequence.
|
||||||
|
l.16 {\node
|
||||||
|
[anchor= west, white,font=\large] at (6.2,0.61){\insertframe...
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no [ in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no c in font nullfont!
|
||||||
|
Missing character: There is no h in font nullfont!
|
||||||
|
Missing character: There is no o in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no = in font nullfont!
|
||||||
|
Missing character: There is no w in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no s in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no w in font nullfont!
|
||||||
|
Missing character: There is no h in font nullfont!
|
||||||
|
Missing character: There is no i in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no f in font nullfont!
|
||||||
|
Missing character: There is no o in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no = in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:16: Undefined control sequence.
|
||||||
|
l.16 {\node[anchor= west, white,font=\large
|
||||||
|
] at (6.2,0.61){\insertframe...
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no ] in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no ( in font nullfont!
|
||||||
|
Missing character: There is no 6 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no 2 in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no 6 in font nullfont!
|
||||||
|
Missing character: There is no 1 in font nullfont!
|
||||||
|
Missing character: There is no ) in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:16: Undefined control sequence.
|
||||||
|
l.16 ...nt=\large] at (6.2,0.61){\insertframetitle
|
||||||
|
};%
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no ; in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:17: Undefined control sequence.
|
||||||
|
l.17 \node
|
||||||
|
[anchor= west, white,font=\small] at (6.2,0.11){\insertframe...
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no [ in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no c in font nullfont!
|
||||||
|
Missing character: There is no h in font nullfont!
|
||||||
|
Missing character: There is no o in font nullfont!
|
||||||
|
Missing character: There is no r in font nullfont!
|
||||||
|
Missing character: There is no = in font nullfont!
|
||||||
|
Missing character: There is no w in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no s in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no w in font nullfont!
|
||||||
|
Missing character: There is no h in font nullfont!
|
||||||
|
Missing character: There is no i in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no e in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no f in font nullfont!
|
||||||
|
Missing character: There is no o in font nullfont!
|
||||||
|
Missing character: There is no n in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no = in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:17: Undefined control sequence.
|
||||||
|
l.17 \node[anchor= west, white,font=\small
|
||||||
|
] at (6.2,0.11){\insertframe...
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no ] in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no t in font nullfont!
|
||||||
|
Missing character: There is no ( in font nullfont!
|
||||||
|
Missing character: There is no 6 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no 2 in font nullfont!
|
||||||
|
Missing character: There is no , in font nullfont!
|
||||||
|
Missing character: There is no 0 in font nullfont!
|
||||||
|
Missing character: There is no . in font nullfont!
|
||||||
|
Missing character: There is no 1 in font nullfont!
|
||||||
|
Missing character: There is no 1 in font nullfont!
|
||||||
|
Missing character: There is no ) in font nullfont!
|
||||||
|
./beamerouterthemetrex.sty:17: Undefined control sequence.
|
||||||
|
l.17 ...\small] at (6.2,0.11){\insertframesubtitle
|
||||||
|
};}%
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
Missing character: There is no ; in font nullfont!
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:19: LaTeX Error: \begin{document} ended by \end{tikz
|
||||||
|
picture}.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.19 \end{tikzpicture}
|
||||||
|
|
||||||
|
Your command was ignored.
|
||||||
|
Type I <command> <return> to replace it with another command,
|
||||||
|
or <return> to continue without it.
|
||||||
|
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:20: LaTeX Error: \begin{document} ended by \end{beam
|
||||||
|
ercolorbox}.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.20 \end{beamercolorbox}
|
||||||
|
|
||||||
|
Your command was ignored.
|
||||||
|
Type I <command> <return> to replace it with another command,
|
||||||
|
or <return> to continue without it.
|
||||||
|
|
||||||
|
|
||||||
|
Overfull \hbox (20.0pt too wide) in paragraph at lines 4--22
|
||||||
|
[]
|
||||||
|
[]
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:23: Undefined control sequence.
|
||||||
|
l.23 \mode
|
||||||
|
<all>
|
||||||
|
The control sequence at the end of the top line
|
||||||
|
of your error message was never \def'ed. If you have
|
||||||
|
misspelled it (e.g., `\hobx'), type `I' and the correct
|
||||||
|
spelling (e.g., `I\hbox'). Otherwise just continue,
|
||||||
|
and I'll forget about whatever was undefined.
|
||||||
|
|
||||||
|
|
||||||
|
./beamerouterthemetrex.sty:23: LaTeX Error: Missing \begin{document}.
|
||||||
|
|
||||||
|
See the LaTeX manual or LaTeX Companion for explanation.
|
||||||
|
Type H <return> for immediate help.
|
||||||
|
...
|
||||||
|
|
||||||
|
l.23 \mode<
|
||||||
|
all>
|
||||||
|
You're in trouble here. Try typing <return> to proceed.
|
||||||
|
If that doesn't work, type X <return> to quit.
|
||||||
|
|
||||||
|
Missing character: There is no < in font nullfont!
|
||||||
|
Missing character: There is no a in font nullfont!
|
||||||
|
Missing character: There is no l in font nullfont!
|
||||||
|
Missing character: There is no l in font nullfont!
|
||||||
|
Missing character: There is no > in font nullfont!
|
||||||
|
|
||||||
|
Overfull \hbox (20.0pt too wide) in paragraph at lines 23--24
|
||||||
|
[]
|
||||||
|
[]
|
||||||
|
|
||||||
|
)
|
||||||
|
! Emergency stop.
|
||||||
|
<*> beamerouterthemetrex.sty
|
||||||
|
|
||||||
|
*** (job aborted, no legal \end found)
|
||||||
|
|
||||||
|
|
||||||
|
Here is how much of TeX's memory you used:
|
||||||
|
10 strings out of 494847
|
||||||
|
246 string characters out of 6179080
|
||||||
|
46295 words of memory out of 5000000
|
||||||
|
3434 multiletter control sequences out of 15000+600000
|
||||||
|
3640 words of font info for 14 fonts, out of 8000000 for 9000
|
||||||
|
59 hyphenation exceptions out of 8191
|
||||||
|
6i,0n,6p,110b,29s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||||
|
! ==> Fatal error occurred, no output PDF file produced!
|
20
beamerouterthemetrex.sty
Normal file
20
beamerouterthemetrex.sty
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
\mode<presentation>
|
||||||
|
|
||||||
|
% Frame title
|
||||||
|
\defbeamertemplate*{frametitle}{trex}[1][]
|
||||||
|
{
|
||||||
|
\begin{beamercolorbox}[wd=\paperwidth,ht=0.95cm]{frametitle}
|
||||||
|
\begin{tikzpicture}
|
||||||
|
% \useasboundingbox[fill=white](0,0) rectangle(\the\paperwidth,1.);
|
||||||
|
%\fill[red!80!black] (0,0) rectangle(2.95,1.);
|
||||||
|
%\fill[blue!50!cyan!80!black] (3.05,0) rectangle(\the\paperwidth,1.);
|
||||||
|
%\fill[white!50] (3.05,0) rectangle(\the\paperwidth,1.);
|
||||||
|
\useasboundingbox[](0,0) rectangle(\the\paperwidth,1.);
|
||||||
|
\node[anchor=east, white,font=\large] at
|
||||||
|
(\paperwidth,0.25){\insertframetitle \phantom{m}};
|
||||||
|
\end{tikzpicture}
|
||||||
|
\end{beamercolorbox}
|
||||||
|
}
|
||||||
|
|
||||||
|
\mode<all>
|
||||||
|
|
29
beamerthemetrex.sty
Normal file
29
beamerthemetrex.sty
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
\mode<presentation>
|
||||||
|
|
||||||
|
|
||||||
|
% Requirement
|
||||||
|
\RequirePackage{tikz}
|
||||||
|
|
||||||
|
% Settings
|
||||||
|
\useinnertheme{trex}
|
||||||
|
\useoutertheme{trex}
|
||||||
|
\usecolortheme{trex}
|
||||||
|
\usefonttheme{trex}
|
||||||
|
|
||||||
|
|
||||||
|
% we remove the navigation symbols and define blocks aspect.
|
||||||
|
\setbeamertemplate{navigation symbols}{}
|
||||||
|
\setbeamertemplate{blocks}[rounded][shadow=true]
|
||||||
|
|
||||||
|
\AtBeginSection[]{%
|
||||||
|
\begin{frame}[plain]
|
||||||
|
\usebeamertemplate{section page}
|
||||||
|
\end{frame}
|
||||||
|
}
|
||||||
|
|
||||||
|
\setbeamertemplate{footline}{
|
||||||
|
\vspace{0.6cm}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
\mode<all>
|
BIN
beamertitletrex.png
Normal file
BIN
beamertitletrex.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.0 MiB |
260
scemama.org
Normal file
260
scemama.org
Normal file
@ -0,0 +1,260 @@
|
|||||||
|
#+TITLE: Library development within TREX
|
||||||
|
#+DATE: 12/03/2021
|
||||||
|
#+AUTHOR: Anthony Scemama
|
||||||
|
|
||||||
|
#+LaTeX_HEADER: \institute{Lab. Chimie et Physique Quantiques, IRSAMC, UPS/CNRS, Toulouse (France)}
|
||||||
|
#+LATEX_CLASS: beamer
|
||||||
|
#+LaTeX_CLASS_OPTIONS:[aspectratio=169]
|
||||||
|
#+BEAMER_THEME: trex
|
||||||
|
#+LaTeX_HEADER: \usepackage{minted}
|
||||||
|
#+LaTeX_HEADER: \usemintedstyle{emacs}
|
||||||
|
#+LaTeX_HEADER: \newminted{f90}{fontsize=\footnotesize}
|
||||||
|
#+LaTeX_HEADER: \usepackage[utf8]{inputenc}
|
||||||
|
#+LaTeX_HEADER: \usepackage[T1]{fontenc}
|
||||||
|
#+LaTeX_HEADER: \usepackage{hyperref}
|
||||||
|
#+LaTeX_HEADER: \usepackage{mathtools}
|
||||||
|
#+LaTeX_HEADER: \usepackage{physics}
|
||||||
|
#+LaTeX_HEADER: \definecolor{darkgreen}{rgb}{0.,0.6,0.}
|
||||||
|
#+LaTeX_HEADER: \definecolor{darkblue}{rgb}{0.,0.2,0.7}
|
||||||
|
#+LaTeX_HEADER: \definecolor{darkred}{rgb}{0.6,0.1,0.1}
|
||||||
|
#+LaTeX_HEADER: \definecolor{darkpink}{rgb}{0.7,0.0,0.7}
|
||||||
|
#+LaTeX_HEADER: \newcommand{\coord }{{\bf r}_1, \dots, {\bf r}_N }
|
||||||
|
#+LaTeX_HEADER: \newcommand{\dcoord }{\dd {\bf r}_1 \dots \dd{\bf r}_N }
|
||||||
|
#+EXPORT_EXCLUDE_TAGS: noexport
|
||||||
|
|
||||||
|
#+startup: beamer
|
||||||
|
#+options: H:1 toc:nil
|
||||||
|
|
||||||
|
* Quantum chemistry
|
||||||
|
|
||||||
|
#+LATEX: \begin{columns}
|
||||||
|
#+LATEX: \begin{column}{0.25\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./dirac_4.jpg]]
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \begin{column}{0.75\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./dirac2.png]]
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \end{columns}
|
||||||
|
|
||||||
|
* Quantum chemistry
|
||||||
|
|
||||||
|
#+LATEX: \begin{columns}
|
||||||
|
#+LATEX: \begin{column}{0.6\textwidth}
|
||||||
|
#+LATEX: \begin{exampleblock}{}
|
||||||
|
- Describing matter with quantum mechanics (Schrödinger's equation)
|
||||||
|
- Users: theoretical chemists and physicists
|
||||||
|
#+LATEX: \end{exampleblock}
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \begin{column}{0.4\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./Water.png]]
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \end{columns}
|
||||||
|
|
||||||
|
#+LATEX: \begin{columns}
|
||||||
|
#+LATEX: \begin{column}{0.4\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./casula.png]]
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \begin{column}{0.6\textwidth}
|
||||||
|
#+LATEX: \begin{exampleblock}{Implications for society}
|
||||||
|
| - Health | Drug design |
|
||||||
|
| - Electronics | Nano- and micro-electronics |
|
||||||
|
| - Materials | Carbon nanotubes, graphene, \dots |
|
||||||
|
| - Catalysis | Enzymatic reactions, petroleum |
|
||||||
|
#+LATEX: \end{exampleblock}
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \end{columns}
|
||||||
|
|
||||||
|
* TREX: Targeting REal chemical accuracy at the EXascale
|
||||||
|
|
||||||
|
#+LATEX: \begin{columns}
|
||||||
|
#+LATEX: \begin{column}{0.4\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./Curve.png]]
|
||||||
|
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \begin{column}{0.6\textwidth}
|
||||||
|
#+LATEX: \begin{exampleblock}{Objective: Make codes ready for exascale}
|
||||||
|
How: Instead of re-writing codes, provide libraries
|
||||||
|
- One library for exchanging information between codes (*TREXIO*)
|
||||||
|
- One library for high-performance (*QMCkl*)
|
||||||
|
#+LATEX: \end{exampleblock}
|
||||||
|
#+LATEX: \begin{exampleblock}{QMC: Quantum Monte Carlo methods}
|
||||||
|
- Highly accurate
|
||||||
|
- Massively parallelisable (multiple QMC trajectories)
|
||||||
|
- CPU intensive
|
||||||
|
#+LATEX: \end{exampleblock}
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \end{columns}
|
||||||
|
|
||||||
|
* Quantum Monte Carlo (QMC)
|
||||||
|
|
||||||
|
#+BEGIN_SRC latex
|
||||||
|
\alert{Problem}: Stochastic resolution of the Schr\"odinger equation for $N$ electrons
|
||||||
|
\begin{eqnarray}
|
||||||
|
E &= &\frac{\int \dcoord \Phi(\coord) {\cal H} \Phi(\coord)}
|
||||||
|
{\int \dcoord \Phi(\coord) \Phi(\coord)} \nonumber \\
|
||||||
|
&\sim & \sum \frac{ {\cal H}\Psi(\coord )}{\Psi(\coord )}
|
||||||
|
\text{, sampled with } (\Psi \times \Phi)
|
||||||
|
\nonumber
|
||||||
|
\end{eqnarray}
|
||||||
|
\begin{columns}
|
||||||
|
\begin{column}{.5\textwidth}
|
||||||
|
\begin{itemize}
|
||||||
|
\item[$\cal H $: ] Hamiltonian operator
|
||||||
|
\item[$E$: ] Energy
|
||||||
|
\end{itemize}
|
||||||
|
\end{column}
|
||||||
|
\begin{column}{.4\textwidth}
|
||||||
|
\begin{itemize}
|
||||||
|
\item[$\coord $: ] Electron coordinates
|
||||||
|
\item[$\Phi $: ] Almost exact wave function
|
||||||
|
\item[$\Psi $: ] Trial wave function
|
||||||
|
\end{itemize}
|
||||||
|
\end{column}
|
||||||
|
\end{columns}
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
* Quantum Monte Carlo (QMC)
|
||||||
|
|
||||||
|
#+LATEX: \begin{columns}
|
||||||
|
#+LATEX: \begin{column}{0.4\textwidth}
|
||||||
|
- Very low memory requirements (no integrals)
|
||||||
|
- Distribute walkers on different cores or compute nodes
|
||||||
|
- No blocking communication: near-ideal scaling
|
||||||
|
- Difficulty: parallelize within a QMC trajectory
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \begin{column}{0.6\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./Qmc.png]]
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \end{columns}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
* QMC kernel library (QMCkl)
|
||||||
|
|
||||||
|
** Computational kernels
|
||||||
|
- QMCkl will contain the main kernels of QMC methods
|
||||||
|
- Written together by QMC experts and HPC experts
|
||||||
|
- Multiple high performance implementations of the kernels, tuned
|
||||||
|
for different
|
||||||
|
- architectures
|
||||||
|
- problem sizes
|
||||||
|
- requested accuracy (reduced precision)
|
||||||
|
- The sequence of kernels will be scheduled with the StarPU runtime
|
||||||
|
|
||||||
|
|
||||||
|
* QMC kernel library (QMCkl)
|
||||||
|
|
||||||
|
** Two implementations
|
||||||
|
- /Documentation/ : easy to read and understand, not necessarily efficient
|
||||||
|
- /High performance/ : efficient, but not necessarily readable by physicists/chemists
|
||||||
|
- Both /Documentation/ and /High performance/ have the same API.
|
||||||
|
|
||||||
|
** Advantages
|
||||||
|
- The code can stay easy to understand by the physicists/chemists
|
||||||
|
Performance-related aspects are delegated to the library
|
||||||
|
- Changing architecture requires only linking with another
|
||||||
|
version of the library
|
||||||
|
- Scientific code development does not break the performance
|
||||||
|
- Better re-use of the optimization effort among the community
|
||||||
|
|
||||||
|
* Literate programming :noexport:
|
||||||
|
|
||||||
|
#+BEGIN_quote
|
||||||
|
Literate programming is a programming paradigm introduced by Donald
|
||||||
|
Knuth in which a computer program is given an explanation of its
|
||||||
|
logic in a natural language, such as English, interspersed with
|
||||||
|
snippets of macros and traditional source code, from which
|
||||||
|
compilable source code can be generated. (Wikipedia)
|
||||||
|
#+END_quote
|
||||||
|
|
||||||
|
* Documentation library :noexport:
|
||||||
|
Literate programming with org-mode:
|
||||||
|
- Here, comments are more important than code
|
||||||
|
- Can add graphics, \LaTeX formulas, tables, etc
|
||||||
|
- Documentation always synchronized with the code
|
||||||
|
- Some routines can be generated by embedded scripts
|
||||||
|
- Most of the the first report was generated from the documentation
|
||||||
|
- Kernels are implemented in Fortran for readability
|
||||||
|
- The API is C-compatible: QMCkl appears like a C library
|
||||||
|
$\Longrightarrow$ can be used in all other languages
|
||||||
|
|
||||||
|
* Design strategy
|
||||||
|
|
||||||
|
1. Kernel extraction: QMC specialists agree on the
|
||||||
|
mathematical expression of the problem
|
||||||
|
2. A mini-application is written to find the optimal data layout
|
||||||
|
with HPC experts from real-size examples
|
||||||
|
3. The kernel is written in the documentation library
|
||||||
|
4. The documentation library is linked in a QMC code to check correctness
|
||||||
|
5. HPC experts provide an HPC version of the kernel
|
||||||
|
6. The HPC library is linked in the QMC codes of the CoE
|
||||||
|
|
||||||
|
* Our first application : 3-body Jastrow factor
|
||||||
|
|
||||||
|
#+LATEX: \newcommand{\Jeen}{J_{\text{een}}}
|
||||||
|
#+LATEX: \newcommand{\Nel}{N_{\text{elec}}}
|
||||||
|
#+LATEX: \newcommand{\Nat}{N_{\text{nucl}}}
|
||||||
|
#+LATEX: \newcommand{\Nord}{N_{\text{nord}}}
|
||||||
|
#+LATEX: \newcommand{\lmax}{p-k-2\delta_{k,0}}
|
||||||
|
#+LATEX: \newcommand{\br}{\mathbf{r}}
|
||||||
|
#+LATEX: \newcommand{\bR}{\mathbf{R}}
|
||||||
|
#+LATEX: \newcommand{\ttr}{\, \bar{\mathtt{r}}}
|
||||||
|
#+LATEX: \newcommand{\tR}{\, \bar{\mathtt{R}}}
|
||||||
|
#+LATEX: \newcommand{\tP}{\, \bar{\mathtt{P}}}
|
||||||
|
|
||||||
|
\[
|
||||||
|
\Jeen (\br,\bR) = \sum_{\alpha=1}^{\Nat} \sum_{i=1}^{\Nel} \sum_{j=1}^{i-1}
|
||||||
|
\sum_{p=2}^{\Nord} \sum_{k=0}^{p-1}
|
||||||
|
\sum_{l=0}^{\lmax} c_{lkp\alpha}
|
||||||
|
\left( {r}_{ij} \right)^k
|
||||||
|
\left[ \left( {R}_{i\alpha} \right)^l + \left( {R}_{j\alpha} \right)^l \right]
|
||||||
|
\left( {R}_{i\,\alpha} \, {R}_{j\alpha} \right)^{(p-k-l)/2}
|
||||||
|
\]
|
||||||
|
|
||||||
|
#+LATEX: \begin{columns}
|
||||||
|
#+LATEX: \begin{column}{0.5\textwidth}
|
||||||
|
#+ATTR_LATEX: :width \textwidth
|
||||||
|
[[./speedup.pdf]]
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \begin{column}{0.5\textwidth}
|
||||||
|
- Gradient and Laplacian are also required
|
||||||
|
- Up to $20\times$ faster than in the original code
|
||||||
|
- $\sim 80\%$ of the AVX-512 peak is reached
|
||||||
|
- Expressed with a DGEMM kernel $\Longrightarrow$ also efficient on GPU
|
||||||
|
#+LATEX: \end{column}
|
||||||
|
#+LATEX: \end{columns}
|
||||||
|
|
||||||
|
|
||||||
|
* Links
|
||||||
|
|
||||||
|
- TREX web site : https://trex-coe.eu
|
||||||
|
- QMCkl documentation : https://trex-coe.github.io/qmckl
|
||||||
|
- QMCkl repository : https://github.com/trex-coe/qmckl
|
||||||
|
|
||||||
|
* Export :noexport:
|
||||||
|
#+BEGIN_SRC elisp :output none
|
||||||
|
(setq org-latex-listings 'minted)
|
||||||
|
(setq org-latex-custom-lang-environments
|
||||||
|
'(
|
||||||
|
(f90 "fortran")
|
||||||
|
))
|
||||||
|
(setq org-latex-minted-options
|
||||||
|
'(("frame" "lines")
|
||||||
|
("fontsize" "\\scriptsize")
|
||||||
|
("linenos" "")))
|
||||||
|
(setq org-latex-to-pdf-process
|
||||||
|
'("pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
|
||||||
|
"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"
|
||||||
|
"pdflatex -shell-escape -interaction nonstopmode -output-directory %o %f"))
|
||||||
|
(org-beamer-export-to-pdf)
|
||||||
|
#+END_SRC
|
||||||
|
|
||||||
|
#+RESULTS:
|
||||||
|
: /home/scemama/TEX/ISC2021/scemama.pdf
|
445
scemama.tex
445
scemama.tex
@ -1,4 +1,4 @@
|
|||||||
% Created 2021-06-28 Mon 14:25
|
% Created 2021-06-30 Wed 12:12
|
||||||
% Intended LaTeX compiler: pdflatex
|
% Intended LaTeX compiler: pdflatex
|
||||||
\documentclass[aspectratio=169]{beamer}
|
\documentclass[aspectratio=169]{beamer}
|
||||||
\usepackage[utf8]{inputenc}
|
\usepackage[utf8]{inputenc}
|
||||||
@ -27,6 +27,8 @@
|
|||||||
\definecolor{darkblue}{rgb}{0.,0.2,0.7}
|
\definecolor{darkblue}{rgb}{0.,0.2,0.7}
|
||||||
\definecolor{darkred}{rgb}{0.6,0.1,0.1}
|
\definecolor{darkred}{rgb}{0.6,0.1,0.1}
|
||||||
\definecolor{darkpink}{rgb}{0.7,0.0,0.7}
|
\definecolor{darkpink}{rgb}{0.7,0.0,0.7}
|
||||||
|
\newcommand{\coord }{{\bf r}_1, \dots, {\bf r}_N }
|
||||||
|
\newcommand{\dcoord }{\dd {\bf r}_1 \dots \dd{\bf r}_N }
|
||||||
\usetheme{trex}
|
\usetheme{trex}
|
||||||
\author{Anthony Scemama}
|
\author{Anthony Scemama}
|
||||||
\date{12/03/2021}
|
\date{12/03/2021}
|
||||||
@ -42,7 +44,7 @@
|
|||||||
|
|
||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\begin{frame}[label={sec:org58acecb}]{Quantum chemistry}
|
\begin{frame}[label={sec:org52bec56}]{Quantum chemistry}
|
||||||
\begin{columns}
|
\begin{columns}
|
||||||
\begin{column}{0.25\textwidth}
|
\begin{column}{0.25\textwidth}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@ -57,7 +59,7 @@
|
|||||||
\end{columns}
|
\end{columns}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:org07dc1a1}]{Quantum chemistry}
|
\begin{frame}[label={sec:org2a0da55}]{Quantum chemistry}
|
||||||
\begin{columns}
|
\begin{columns}
|
||||||
\begin{column}{0.6\textwidth}
|
\begin{column}{0.6\textwidth}
|
||||||
\begin{exampleblock}{}
|
\begin{exampleblock}{}
|
||||||
@ -87,7 +89,7 @@
|
|||||||
- Health & Drug design\\
|
- Health & Drug design\\
|
||||||
- Electronics & Nano- and micro-electronics\\
|
- Electronics & Nano- and micro-electronics\\
|
||||||
- Materials & Carbon nanotubes, graphene, \dots{}\\
|
- Materials & Carbon nanotubes, graphene, \dots{}\\
|
||||||
- Catalysis & Enzymatic reactions, petrol\\
|
- Catalysis & Enzymatic reactions, petroleum\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{exampleblock}
|
\end{exampleblock}
|
||||||
@ -95,7 +97,7 @@
|
|||||||
\end{columns}
|
\end{columns}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:orgf844e6b}]{TREX: Targeting REal chemical accuracy at the EXascale}
|
\begin{frame}[label={sec:org7ad98d0}]{TREX: Targeting REal chemical accuracy at the EXascale}
|
||||||
\begin{columns}
|
\begin{columns}
|
||||||
\begin{column}{0.4\textwidth}
|
\begin{column}{0.4\textwidth}
|
||||||
\begin{center}
|
\begin{center}
|
||||||
@ -104,12 +106,6 @@
|
|||||||
|
|
||||||
\end{column}
|
\end{column}
|
||||||
\begin{column}{0.6\textwidth}
|
\begin{column}{0.6\textwidth}
|
||||||
\begin{exampleblock}{QMC: Quantum Monte Carlo methods}
|
|
||||||
\begin{itemize}
|
|
||||||
\item Massively parallelisable (multiple QMC trajectories)
|
|
||||||
\item Difficulty: take advantage of parallelism within a trajectory
|
|
||||||
\end{itemize}
|
|
||||||
\end{exampleblock}
|
|
||||||
\begin{exampleblock}{Objective: Make codes ready for exascale}
|
\begin{exampleblock}{Objective: Make codes ready for exascale}
|
||||||
How: Instead of re-writing codes, provide libraries
|
How: Instead of re-writing codes, provide libraries
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@ -117,21 +113,69 @@ How: Instead of re-writing codes, provide libraries
|
|||||||
\item One library for high-performance (\alert{QMCkl})
|
\item One library for high-performance (\alert{QMCkl})
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{exampleblock}
|
\end{exampleblock}
|
||||||
|
\begin{exampleblock}{QMC: Quantum Monte Carlo methods}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Highly accurate
|
||||||
|
\item Massively parallelisable (multiple QMC trajectories)
|
||||||
|
\item CPU intensive
|
||||||
|
\end{itemize}
|
||||||
|
\end{exampleblock}
|
||||||
\end{column}
|
\end{column}
|
||||||
\end{columns}
|
\end{columns}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:org9bd59c0}]{Presentation of TREX}
|
\begin{frame}[label={sec:orgd075e20}]{Quantum Monte Carlo (QMC)}
|
||||||
|
\alert{Problem}: Stochastic resolution of the Schr\"odinger equation for $N$ electrons
|
||||||
|
\begin{eqnarray}
|
||||||
|
E &= &\frac{\int \dcoord \Phi(\coord) {\cal H} \Phi(\coord)}
|
||||||
|
{\int \dcoord \Phi(\coord) \Phi(\coord)} \nonumber \\
|
||||||
|
&\sim & \sum \frac{ {\cal H}\Psi(\coord )}{\Psi(\coord )}
|
||||||
|
\text{, sampled with } (\Psi \times \Phi)
|
||||||
|
\nonumber
|
||||||
|
\end{eqnarray}
|
||||||
|
\begin{columns}
|
||||||
|
\begin{column}{.5\textwidth}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item TREX CoE: Targeting REal chemical accuracy at the eXascale
|
\item[$\cal H $: ] Hamiltonian operator
|
||||||
\item Started in Oct. 2020
|
\item[$E$: ] Energy
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
\end{column}
|
||||||
|
\begin{column}{.4\textwidth}
|
||||||
|
\begin{itemize}
|
||||||
|
\item[$\coord $: ] Electron coordinates
|
||||||
|
\item[$\Phi $: ] Almost exact wave function
|
||||||
|
\item[$\Psi $: ] Trial wave function
|
||||||
|
\end{itemize}
|
||||||
|
\end{column}
|
||||||
|
\end{columns}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:orgfb14f88}]{QMC kernel library (QMCkl)}
|
\begin{frame}[label={sec:org933f7ec}]{Quantum Monte Carlo (QMC)}
|
||||||
|
\begin{columns}
|
||||||
|
\begin{column}{0.4\textwidth}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Codesign: Written together by QMC experts and HPC experts
|
\item Very low memory requirements (no integrals)
|
||||||
\item Contains all major kernels of QMC methods
|
\item Distribute walkers on different cores or compute nodes
|
||||||
|
\item No blocking communication: near-ideal scaling
|
||||||
|
\item Difficulty: parallelize within a QMC trajectory
|
||||||
|
\end{itemize}
|
||||||
|
\end{column}
|
||||||
|
\begin{column}{0.6\textwidth}
|
||||||
|
\begin{center}
|
||||||
|
\includegraphics[width=\textwidth]{./Qmc.png}
|
||||||
|
\end{center}
|
||||||
|
\end{column}
|
||||||
|
\end{columns}
|
||||||
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
\begin{frame}[label={sec:org8b6768c}]{QMC kernel library (QMCkl)}
|
||||||
|
\begin{block}{Computational kernels}
|
||||||
|
\begin{itemize}
|
||||||
|
\item QMCkl will contain the main kernels of QMC methods
|
||||||
|
\item Written together by QMC experts and HPC experts
|
||||||
\item Multiple high performance implementations of the kernels, tuned
|
\item Multiple high performance implementations of the kernels, tuned
|
||||||
for different
|
for different
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
@ -139,14 +183,22 @@ for different
|
|||||||
\item problem sizes
|
\item problem sizes
|
||||||
\item requested accuracy (reduced precision)
|
\item requested accuracy (reduced precision)
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\item Reference implementation : \emph{Documentation} : easy to read and
|
\item Kernels will be scheduled with the StarPU runtime
|
||||||
understand, not necessarily efficient
|
|
||||||
\item Final implementations : \emph{High performance} : efficient, but not
|
|
||||||
necessarily readable by physicists/chemists
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
\end{block}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:org929f042}]{Advantages}
|
|
||||||
|
\begin{frame}[label={sec:org24ef7da}]{QMC kernel library (QMCkl)}
|
||||||
|
\begin{block}{Two implementations}
|
||||||
|
\begin{itemize}
|
||||||
|
\item \emph{Documentation} : easy to read and understand, not necessarily efficient
|
||||||
|
\item \emph{High performance} : efficient, but not necessarily readable by physicists/chemists
|
||||||
|
\item Both \emph{Documentation} and \emph{High performance} have the same API.
|
||||||
|
\end{itemize}
|
||||||
|
\end{block}
|
||||||
|
|
||||||
|
\begin{block}{Advantages}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item The code can stay easy to understand by the physicists/chemists
|
\item The code can stay easy to understand by the physicists/chemists
|
||||||
Performance-related aspects are delegated to the library
|
Performance-related aspects are delegated to the library
|
||||||
@ -155,46 +207,23 @@ version of the library
|
|||||||
\item Scientific code development does not break the performance
|
\item Scientific code development does not break the performance
|
||||||
\item Better re-use of the optimization effort among the community
|
\item Better re-use of the optimization effort among the community
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
\end{block}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:org8ded82f}]{Literate programming}
|
\begin{frame}[label={sec:org8e1f375}]{Design strategy}
|
||||||
\begin{quote}
|
|
||||||
Literate programming is a programming paradigm introduced by Donald
|
|
||||||
Knuth in which a computer program is given an explanation of its
|
|
||||||
logic in a natural language, such as English, interspersed with
|
|
||||||
snippets of macros and traditional source code, from which
|
|
||||||
compilable source code can be generated. (Wikipedia)
|
|
||||||
\end{quote}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{frame}[label={sec:org01ef9da}]{Documentation library}
|
|
||||||
Literate programming with org-mode:
|
|
||||||
\begin{itemize}
|
|
||||||
\item Here, comments are more important than code
|
|
||||||
\item Can add graphics, \LaTeX formulas, tables, etc
|
|
||||||
\item Documentation always synchronized with the code
|
|
||||||
\item Some routines can be generated by embedded scripts
|
|
||||||
\item Most of the the first report was generated from the documentation
|
|
||||||
\item Kernels are implemented in Fortran for readability
|
|
||||||
\item The API is C-compatible: QMCkl appears like a C library
|
|
||||||
\(\Longrightarrow\) can be used in all other languages
|
|
||||||
\end{itemize}
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}[label={sec:orge55dfb7}]{Codesign strategy}
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Kernel extraction: QMC specialists agree on the
|
\item Kernel extraction: QMC specialists agree on the
|
||||||
mathematical expression of the problem
|
mathematical expression of the problem
|
||||||
\item A mini-application is written to find the best data layout
|
\item A mini-application is written to find the optimal data layout
|
||||||
with HPC experts from real-size examples
|
with HPC experts from real-size examples
|
||||||
\item The kernel is written in the documentation library
|
\item The kernel is written in the documentation library
|
||||||
|
\item The documentation library is linked in a QMC code to check correctness
|
||||||
\item HPC experts provide an HPC version of the kernel
|
\item HPC experts provide an HPC version of the kernel
|
||||||
\item The library is linked in the QMC codes of the CoE
|
\item The HPC library is linked in the QMC codes of the CoE
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:orgfdcab81}]{Our first application : 3-body Jastrow factor}
|
\begin{frame}[label={sec:orge2ab500}]{Our first application : 3-body Jastrow factor}
|
||||||
\newcommand{\Jeen}{J_{\text{een}}}
|
\newcommand{\Jeen}{J_{\text{een}}}
|
||||||
\newcommand{\Nel}{N_{\text{elec}}}
|
\newcommand{\Nel}{N_{\text{elec}}}
|
||||||
\newcommand{\Nat}{N_{\text{nucl}}}
|
\newcommand{\Nat}{N_{\text{nucl}}}
|
||||||
@ -215,315 +244,29 @@ with HPC experts from real-size examples
|
|||||||
\left( {R}_{i\,\alpha} \, {R}_{j\alpha} \right)^{(p-k-l)/2}
|
\left( {R}_{i\,\alpha} \, {R}_{j\alpha} \right)^{(p-k-l)/2}
|
||||||
\]
|
\]
|
||||||
|
|
||||||
can be rewritten as
|
\begin{columns}
|
||||||
|
\begin{column}{0.5\textwidth}
|
||||||
\[
|
|
||||||
\Jeen(\br,\bR) =
|
|
||||||
\sum_{p=2}^{\Nord}\sum_{k=0}^{p-1}
|
|
||||||
\sum_{l=0}^{\lmax}
|
|
||||||
\sum_{\alpha=1}^{\Nat}
|
|
||||||
c_{lkp\alpha}
|
|
||||||
\sum_{i=1}^{\Nel}
|
|
||||||
{\tR}_{i,\alpha,(p-k-l)/2}\,
|
|
||||||
{\tP}_{i,\alpha,k,(p-k+l)/2} \; \text{\scriptsize \alert{($\downarrow$ complexity)}}
|
|
||||||
\]
|
|
||||||
with
|
|
||||||
\[
|
|
||||||
{\tP}_{i, \alpha, k, l} = \sum_{j=1}^{\Nel}
|
|
||||||
{\ttr}_{i,j,k}\,{\tR}_{j,\alpha,l}. \; \text{\alert{\scriptsize (GEMM)}}
|
|
||||||
\]
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}[label={sec:org3e25bfe}]{Our first application : Gradient and Laplacian}
|
|
||||||
\newcommand{\Jeen}{J_{\text{een}}}
|
|
||||||
\newcommand{\Nel}{N_{\text{elec}}}
|
|
||||||
\newcommand{\Nat}{N_{\text{nucl}}}
|
|
||||||
\newcommand{\Nord}{N_{\text{nord}}}
|
|
||||||
\newcommand{\lmax}{p-k-2\delta_{k,0}}
|
|
||||||
\newcommand{\br}{\mathbf{r}}
|
|
||||||
\newcommand{\bR}{\mathbf{R}}
|
|
||||||
\newcommand{\ttr}{\, \bar{\mathtt{r}}}
|
|
||||||
\newcommand{\tR}{\, \bar{\mathtt{R}}}
|
|
||||||
\newcommand{\tP}{\, \bar{\mathtt{P}}}
|
|
||||||
\newcommand{\tg}{\, \bar{\mathtt{g}}}
|
|
||||||
\newcommand{\tG}{\, \bar{\mathtt{G}}}
|
|
||||||
\newcommand{\tQ}{\, \bar{\mathtt{Q}}}
|
|
||||||
|
|
||||||
\begin{eqnarray*}
|
|
||||||
\nabla_{im} \Jeen(\br,\bR) & = &
|
|
||||||
\sum_{p=2}^{\Nord}\sum_{k=0}^{p-1}
|
|
||||||
\sum_{l=0}^{\lmax}
|
|
||||||
\sum_{\alpha=1}^{\Nat}
|
|
||||||
c_{lkp\alpha}
|
|
||||||
\sum_{i=1}^{\Nel}
|
|
||||||
{\tG}_{i,m,\alpha,(p-k-l)/2} {\tP}_{i,\alpha,k,(p-k+l)/2} + \\
|
|
||||||
&& {\tG}_{i,m,\alpha,(p-k+l)/2} {\tP}_{i,\alpha,k,(p-k-l)/2} +
|
|
||||||
{\tR}_{i,\alpha,(p-k-l)/2} {\tQ}_{i,m,\alpha,k,(p-k+l)/2} + \\
|
|
||||||
&& {\tR}_{i,\alpha,(p-k+l)/2} {\tQ}_{i,m,\alpha,k,(p-k-l)/2} +
|
|
||||||
\delta_{m,4} \big( \\
|
|
||||||
&& {\tG}_{i,1,\alpha,(p-k+l)/2} {\tQ}_{i,1,\alpha,k,(p-k-l)/2} +
|
|
||||||
{\tG}_{i,2,\alpha,(p-k+l)/2} {\tQ}_{i,2,\alpha,k,(p-k-l)/2} + \\
|
|
||||||
&& {\tG}_{i,3,\alpha,(p-k+l)/2} {\tQ}_{i,3,\alpha,k,(p-k-l)/2} +
|
|
||||||
{\tG}_{i,1,\alpha,(p-k-l)/2} {\tQ}_{i,1,\alpha,k,(p-k+l)/2} + \\
|
|
||||||
&& {\tG}_{i,2,\alpha,(p-k-l)/2} {\tQ}_{i,2,\alpha,k,(p-k+l)/2} +
|
|
||||||
{\tG}_{i,3,\alpha,(p-k-l)/2} {\tQ}_{i,3,\alpha,k,(p-k+l)/2} \big)
|
|
||||||
\end{eqnarray*}
|
|
||||||
|
|
||||||
with
|
|
||||||
|
|
||||||
\[
|
|
||||||
{\tG}_{i, m, \alpha, l} = \frac{\partial \left( {R}_{i\alpha} \right)^l}
|
|
||||||
{\partial r_i}, \phantom{ space }
|
|
||||||
{\tg}_{i, m, j, k} = \frac{\partial \left( {r}_{ij} \right)^k}
|
|
||||||
{\partial r_i}, \phantom{ space }
|
|
||||||
\text{ and }
|
|
||||||
{\tQ}_{i, m, \alpha, k, l} = \sum_{j=1}^{\Nel}
|
|
||||||
{\tg}_{i,m,j,k}\,{\tR}_{j,\alpha,l}
|
|
||||||
\]
|
|
||||||
\end{frame}
|
|
||||||
|
|
||||||
\begin{frame}[label={sec:org0200bcf}]{Speed up}
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\includegraphics[height=0.8\textheight]{./speedup.pdf}
|
\includegraphics[width=\textwidth]{./speedup.pdf}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
\end{column}
|
||||||
\(\sim 80\%\) of the AVX-512 peak is reached on a Skylake CPU.
|
\begin{column}{0.5\textwidth}
|
||||||
|
\begin{itemize}
|
||||||
|
\item Gradient and Laplacian are also required
|
||||||
|
\item Up to \(20\times\) faster than in the original code
|
||||||
|
\item \(\sim 80\%\) of the AVX-512 peak is reached
|
||||||
|
\item Using a DGEMM kernel \(\Longrightarrow\) also efficient on GPU
|
||||||
|
\end{itemize}
|
||||||
|
\end{column}
|
||||||
|
\end{columns}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
|
|
||||||
|
\begin{frame}[label={sec:org5b9dcc8}]{Links}
|
||||||
\begin{frame}[label={sec:org4f9d92a}]{Links}
|
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item TREX web site : \url{https://trex-coe.eu}
|
\item TREX web site : \url{https://trex-coe.eu}
|
||||||
\item QMCkl documentation : \url{https://trex-coe.github.io/qmckl}
|
\item QMCkl documentation : \url{https://trex-coe.github.io/qmckl}
|
||||||
\item QMCkl repository : \url{https://github.com/trex-coe/qmckl}
|
\item QMCkl repository : \url{https://github.com/trex-coe/qmckl}
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}[label={sec:orgd018cbe},fragile]{CoEs Co-Design Workshop}
|
|
||||||
March 12 – 9:00-12:00 and 14:00-17:00
|
|
||||||
|
|
||||||
The goal of this workshop is to first get an overview of what CoEs think of co-design and what they do in that context and then to build a shared and common view on this important issue.
|
|
||||||
The workshop consists of two round tables where each panellist will make a short presentation that will be followed by a discussion among the panellists and with all participants. The workshop is open to all CoE members, so please disseminate largely.
|
|
||||||
|
|
||||||
\begin{block}{Session 1 - 9:00 – 12:00}
|
|
||||||
Different levels of co-design, where do CoEs come in ?
|
|
||||||
|
|
||||||
Panelists: Fabio Affinito, Guillaume Houzeaux, Jesus Labarta, Soline
|
|
||||||
Laforet, Antony Scemama,
|
|
||||||
|
|
||||||
Supercomputer are rather complex systems build using innovative technologies, both on the hardware and software sides. Therefore, co-design can be applied at different levels : chip, network, low-level software, programming models and environment, libraries or applications….
|
|
||||||
In its design, a computer can also be more general purpose or tuned for a specific class of application.
|
|
||||||
This round table will discuss all these issues and how CoEs can best contribute.
|
|
||||||
|
|
||||||
Zoom link :
|
|
||||||
\url{https://zoom.us/j/96850634356?pwd=Q0ViUlVYL0tSWXlEeGVVTTJYcWpBdz09}
|
|
||||||
|
|
||||||
\begin{enumerate}
|
|
||||||
\item Short presentation of yourself and of your background.
|
|
||||||
\begin{itemize}
|
|
||||||
\item Guillaume Houzeaux: BSC. Sticks : Comp. mechanics
|
|
||||||
\item Jesus Labarta: BSC
|
|
||||||
\item Soline Laforet: Atos, Earth Science
|
|
||||||
\item Fabio Affinito: CINECA, Coordinator of support team
|
|
||||||
\end{itemize}
|
|
||||||
\end{enumerate}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{enumerate}
|
|
||||||
\item Questions :
|
|
||||||
\end{enumerate}
|
|
||||||
• How would you define co-design ? (Introduction)
|
|
||||||
Each of you can make a short speech to present your global view on co-design.
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item JS
|
|
||||||
\begin{itemize}
|
|
||||||
\item Codesign implies design. We design applications
|
|
||||||
\item Codimensioning is not codesign
|
|
||||||
\item Holistic: every layer in the architecture take design
|
|
||||||
decisions on the same project
|
|
||||||
\end{itemize}
|
|
||||||
\item SL:
|
|
||||||
\begin{itemize}
|
|
||||||
\item HPC is not the main field of activity of hardware providers
|
|
||||||
\item Software environment is important
|
|
||||||
\end{itemize}
|
|
||||||
\item FA: \ldots{}
|
|
||||||
\item GH: Application developer rely on the lower level
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
Multiple people of different communities work on the same project, each
|
|
||||||
bringing its domain-specific expertise. Better than the sum of its parts.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• What are the new challenges for co-design related to the future exascale system?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
The software stack is becoming inceasingly complex. In HPC, we
|
|
||||||
need to use programming languages close to the hardware, with lots
|
|
||||||
of dangerous constructs. Writing correct software in these
|
|
||||||
languages becomes increasingly difficult.
|
|
||||||
|
|
||||||
Scientists can't understand their codes any more.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
\begin{itemize}
|
|
||||||
\item JL:
|
|
||||||
\begin{itemize}
|
|
||||||
\item Applications are more important than "shining" showing Flops/s
|
|
||||||
\item People program to their own mental model of the machine
|
|
||||||
\item General purpose vs specific : specific is suicide
|
|
||||||
\end{itemize}
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
• How does your CoE address the co-design activity? (SL)
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
- Move the critical performance outside of the codes in libraries
|
|
||||||
- QMCkl
|
|
||||||
- Design an API : collaboration between quantum chemists and computational
|
|
||||||
scientists. Documentation library were computational kernels are understandable
|
|
||||||
by HPC experts. The library is re-implemented by HPC experts for targeted
|
|
||||||
architectures.
|
|
||||||
- Kernel extraction: we go back to latex formulas, and write a mini-application.
|
|
||||||
Figure out the data structures for the kernel with HPC experts, and tune the
|
|
||||||
mini-application. Then, re-implement the kernel in the library.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• What are the co-desing activities operated in you CoE and to
|
|
||||||
what extent do you think that these activities will actually
|
|
||||||
influence the HPC hardware design?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
- Move the critical performance outside of the codes in libraries
|
|
||||||
- QMCkl
|
|
||||||
- Design an API : collaboration between quantum chemists and computational
|
|
||||||
scientists. Documentation library were computational kernels are understandable
|
|
||||||
by HPC experts. The library is re-implemented by HPC experts for targeted
|
|
||||||
architectures.
|
|
||||||
- Kernel extraction: we go back to latex formulas, and write a mini-application.
|
|
||||||
Figure out the data structures for the kernel with HPC experts, and tune the
|
|
||||||
mini-application. Then, re-implement the kernel in the library.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• how general purpose/special purpose should designs be?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
Don't re-invent the wheel. But to get the wheel, you often
|
|
||||||
need to buy the bus and take away the wheel.
|
|
||||||
Lots of systems preventing you to extract the wheel
|
|
||||||
because the bus should be used without the wheel.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• Which levels of co-design are relevant?
|
|
||||||
|
|
||||||
• What are the differences between developing a library and a program?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
- In a code, you can trust that the parameters are valid.
|
|
||||||
Many checks before a the routine can do its job.
|
|
||||||
- Error handling: the library should not decide to crash the program
|
|
||||||
but return the error and its description to the calling code.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• How holistic is holistic?
|
|
||||||
• Can we measure the speed/rate/success of co-design?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
- In the 1st 6 months, we have reritten a kernel in co-design.
|
|
||||||
It give the same result as the naive formulation, but with a 20x speedup,
|
|
||||||
reaching 80% of the peak of a CPU.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• what is the importance of the role of CoEs in helping scientific
|
|
||||||
communities to follow the evolution of the next HPC architectures?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
- Isolated users are afraid of architecture changes. A CoE builds a community,
|
|
||||||
and it is a riving force that helps the users to change, and adapt their codes.
|
|
||||||
\end{verbatim}
|
|
||||||
|
|
||||||
• separation of concerns: how much this concept is working when
|
|
||||||
co-designing applications?
|
|
||||||
|
|
||||||
\begin{verbatim}
|
|
||||||
- Our libraries are good examples.
|
|
||||||
\end{verbatim}
|
|
||||||
\end{block}
|
|
||||||
|
|
||||||
\begin{block}{Questions / comments}
|
|
||||||
\begin{itemize}
|
|
||||||
\item JSC: We need different supercomputing centers specialized
|
|
||||||
for different application profiles.
|
|
||||||
\item Miguel Vasquez: Compromises. Need workload managers
|
|
||||||
\item Gavin Pringle (Excellerat): No CoE will even convince a hardware vendor.
|
|
||||||
Access to hardware prototypes.
|
|
||||||
\item Mariano Vazquez (CompBioMed): Centralize Codesign and
|
|
||||||
dissemination plan
|
|
||||||
\item Pasqua d'ambra CNR: appreciates vision of library design
|
|
||||||
\item Jesus Labrata: EPI
|
|
||||||
\begin{itemize}
|
|
||||||
\item ARM-based, SVE cores.
|
|
||||||
\item RISCV core
|
|
||||||
\item High bandwidth per code
|
|
||||||
\item Large vector operations
|
|
||||||
\item Emulator is available
|
|
||||||
\item How to handle locality
|
|
||||||
\item Sparse matrix vector is a kernel to optimize
|
|
||||||
\item \url{https://ssh.hca.bsc.es/epi/ftp/}
|
|
||||||
\url{https://ssh.hca.bsc.es/epi/ftp/doc/}
|
|
||||||
\item Pasqua d'Ambra (CNR), EoCoE : BLAS is a succes of codesign strategy
|
|
||||||
Same for Graph operations
|
|
||||||
\end{itemize}
|
|
||||||
\end{itemize}
|
|
||||||
|
|
||||||
Pasqua d'Ambra: sparse linear algebra kernels
|
|
||||||
Jesus Labarta: EPI
|
|
||||||
Karim H: MdlS
|
|
||||||
Miguel Vasquez: containers are not a solution
|
|
||||||
Peter V Coveney: Exascale Linpack is nonsense
|
|
||||||
\end{block}
|
|
||||||
|
|
||||||
|
|
||||||
\begin{block}{Session 2 – 14:00-17:00}
|
|
||||||
\url{https://zoom.us/j/94418315362?pwd=VWRESW95dzkySWZyU1NiSkhzK3JQdz09}
|
|
||||||
Co-Design for new usage
|
|
||||||
|
|
||||||
Panelists : Peter Coveney, Marta Garcia, Berk Hess, Leopold Talirz, Bruno Raffin
|
|
||||||
|
|
||||||
Exascale computer are very likely to run more complex workloads than present supercomputer. This evolution is mainly driven by the development of data-analytics and the need to couple “standard” HPC computation and sophisticated data treatments. The new workloads will require to (co-)design hardware and software tools to manage complex workflows, code coupling, large ensemble runs, (in situ)data-analytics,…
|
|
||||||
|
|
||||||
|
|
||||||
Zoom link :
|
|
||||||
\url{https://zoom.us/j/94418315362?pwd=VWRESW95dzkySWZyU1NiSkhzK3JQdz09}
|
|
||||||
|
|
||||||
\begin{enumerate}
|
|
||||||
\item Short presentation of yourself and of your background.
|
|
||||||
|
|
||||||
\item Questions :
|
|
||||||
\end{enumerate}
|
|
||||||
• How do you think HPC workloads will evolve with exascale computers ? How does this influence the design of the system / applications
|
|
||||||
|
|
||||||
• what makes ensemble simulation and complex workflows prime candidates for exascale computing/computers?
|
|
||||||
|
|
||||||
• What are the possibility offered by new hardware, especially those allowing data-intensive workload (GPU, NVRam, flash,…) ?
|
|
||||||
|
|
||||||
• Data : Should HPC centers archiving/hosting Large scientific data set ?
|
|
||||||
• Should HPC centers be designed to host science portals?
|
|
||||||
• Should HPC centers host workflow-management-type workloads ? How should workflow be properly integrate in HPC centers ?
|
|
||||||
|
|
||||||
• What is your center of excellence doing to promote new usage of HPC or adapt to them ?
|
|
||||||
|
|
||||||
• What spread of maturity do we expect in codes concerning parallelization and acceleration?
|
|
||||||
• Which levels of co-design are relevant?
|
|
||||||
• Should we target more than software/software co-design?
|
|
||||||
|
|
||||||
• Which are the "must-have" or key things to succeed in the co-design task ?
|
|
||||||
• Which are the pitfalls or dangers along the road that can make co-design fail?
|
|
||||||
|
|
||||||
Idea: leave linpack to the americans, and propose a better benchmark.
|
|
||||||
\end{block}
|
|
||||||
\end{frame}
|
|
||||||
\end{document}
|
\end{document}
|
BIN
speedup.pdf
Normal file
BIN
speedup.pdf
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user