[945] | 1 | % $Id: runs_with_mrun.tex 1226 2013-09-18 13:19:19Z witha $ |
---|
| 2 | \input{header_tmp.tex} |
---|
| 3 | %\input{../header_lectures.tex} |
---|
| 4 | |
---|
| 5 | \usepackage[utf8]{inputenc} |
---|
| 6 | \usepackage{ngerman} |
---|
| 7 | \usepackage{pgf} |
---|
| 8 | \usetheme{Dresden} |
---|
| 9 | \usepackage{subfigure} |
---|
| 10 | \usepackage{units} |
---|
| 11 | \usepackage{multimedia} |
---|
| 12 | \usepackage{hyperref} |
---|
| 13 | \newcommand{\event}[1]{\newcommand{\eventname}{#1}} |
---|
| 14 | \usepackage{xmpmulti} |
---|
| 15 | \usepackage{tikz} |
---|
| 16 | \usetikzlibrary{shapes,arrows,positioning} |
---|
| 17 | \def\Tiny{\fontsize{4pt}{4pt}\selectfont} |
---|
| 18 | \usepackage{amsmath} |
---|
| 19 | \usepackage{amssymb} |
---|
| 20 | \usepackage{multicol} |
---|
| 21 | \usepackage{pdfcomment} |
---|
| 22 | \usepackage{graphicx} |
---|
| 23 | \usepackage{listings} |
---|
| 24 | \lstset{showspaces=false,language=fortran,basicstyle= |
---|
| 25 | \ttfamily,showstringspaces=false,captionpos=b} |
---|
| 26 | |
---|
| 27 | \institute{Institut fÌr Meteorologie und Klimatologie, Leibniz UniversitÀt Hannover} |
---|
| 28 | \date{last update: \today} |
---|
| 29 | \event{PALM Seminar} |
---|
| 30 | \setbeamertemplate{navigation symbols}{} |
---|
| 31 | |
---|
| 32 | \setbeamertemplate{footline} |
---|
| 33 | { |
---|
| 34 | \begin{beamercolorbox}[rightskip=-0.1cm]& |
---|
| 35 | {\includegraphics[height=0.65cm]{imuk_logo.pdf}\hfill \includegraphics[height=0.65cm]{luh_logo.pdf}} |
---|
| 36 | \end{beamercolorbox} |
---|
| 37 | \begin{beamercolorbox}[ht=2.5ex,dp=1.125ex, |
---|
| 38 | leftskip=.3cm,rightskip=0.3cm plus1fil]{title in head/foot} |
---|
| 39 | {\leavevmode{\usebeamerfont{author in head/foot}\insertshortauthor} \hfill \eventname \hfill \insertframenumber \; / \inserttotalframenumber} |
---|
| 40 | \end{beamercolorbox} |
---|
| 41 | \begin{beamercolorbox}[colsep=1.5pt]{lower separation line foot} |
---|
| 42 | \end{beamercolorbox} |
---|
| 43 | } |
---|
[954] | 44 | |
---|
[945] | 45 | %\logo{\includegraphics[width=0.3\textwidth]{luhimuk_logo.pdf}} |
---|
| 46 | |
---|
| 47 | \title[Carrying out runs using mrun]{Carrying out runs using \texttt{mrun}} |
---|
| 48 | \author{Siegfried Raasch} |
---|
| 49 | |
---|
| 50 | \begin{document} |
---|
| 51 | |
---|
| 52 | % Folie 1 |
---|
| 53 | \begin{frame} |
---|
| 54 | \titlepage |
---|
| 55 | \end{frame} |
---|
| 56 | |
---|
| 57 | \section{Carrying out runs using mrun} |
---|
| 58 | \subsection{Carrying out runs using mrun} |
---|
| 59 | |
---|
| 60 | % Folie 2 |
---|
| 61 | \begin{frame} |
---|
| 62 | \frametitle{What is \texttt{mrun}?} |
---|
| 63 | \begin{itemize} |
---|
| 64 | \item<1-> \texttt{mrun} (\textbf{m}odel \textbf{run}) is a shell script (using |
---|
| 65 | \texttt{ksh}-syntax) which can be used to compile and run programs, including |
---|
| 66 | the handling of input/output files. |
---|
[1226] | 67 | \vspace{3mm} |
---|
[945] | 68 | \item<2-> The \texttt{mrun}-command has a number of options to control the |
---|
| 69 | program execution\\ |
---|
[1226] | 70 | \vspace{2mm} |
---|
[954] | 71 | \quad \footnotesize \texttt{mrun -d example\underline{ }cbl -h lcsgih -K parallel -X8 -T2 ...}\\ |
---|
[1226] | 72 | \vspace{2mm} |
---|
[945] | 73 | \normalsize All options including a short description can be displayed by entering\\ |
---|
[1226] | 74 | \vspace{2mm} |
---|
[945] | 75 | \quad \footnotesize \texttt{mrun ?} |
---|
[1226] | 76 | \vspace{3mm} |
---|
[945] | 77 | \item<3-> \normalsize The shellscript execution is also controlled by a configuration file with default name \texttt{.mrun.config} |
---|
| 78 | \end{itemize} |
---|
| 79 | \end{frame} |
---|
| 80 | |
---|
| 81 | % Folie 3 |
---|
| 82 | \begin{frame} |
---|
[954] | 83 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.1\textwidth, font=\tiny] |
---|
| 84 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.22\textwidth, font=\tiny] |
---|
| 85 | \tikzstyle{info} = [rectangle, text width=0.15\textwidth, font=\tiny] |
---|
| 86 | \tikzstyle{white} = [rectangle, text width=0.7\textwidth, font=\tiny] |
---|
| 87 | \tikzstyle{dummy} = [rectangle, text width=0.3\textwidth, font=\tiny] |
---|
[945] | 88 | \tikzstyle{line} = [draw, -] |
---|
| 89 | \tikzstyle{alert} = [rectangle, draw, text width=0.77\textwidth, font=\scriptsize] |
---|
| 90 | |
---|
| 91 | \scriptsize |
---|
| 92 | \frametitle{Carrying Out Runs Using \texttt{mrun}} |
---|
[954] | 93 | \textbf{Carrying out a program run typically needs two steps:}\\ |
---|
[945] | 94 | \vspace{1mm} |
---|
[954] | 95 | \quad 1. compilation\\ |
---|
| 96 | \qquad \texttt{f90 ... file1.f90 file2.f90 ...}\\ |
---|
| 97 | \vspace{1mm} |
---|
| 98 | \onslide<2->\quad 2. execution\\ |
---|
| 99 | \qquad \texttt{a.out}\\ |
---|
| 100 | \vspace{3mm} |
---|
| 101 | \onslide<3->\textbf{Besides, a program needs input data and creates output data:}\\ |
---|
[945] | 102 | |
---|
| 103 | \onslide<4->\begin{tikzpicture}[auto, node distance=0] |
---|
| 104 | \node [green] (first) {\textbf{a.out/} }; |
---|
| 105 | \node [dummy, right=0.1cm of first] (second) {}; |
---|
| 106 | |
---|
[954] | 107 | \node [yellow, above=0.4cm of second] (third) {\textbf{parameter for steering}}; |
---|
| 108 | \node [yellow, below=0.4cm of third] (fourth) {\textbf{control output}}; |
---|
[945] | 109 | \node [yellow, below=0.3cm of fourth] (fifth) {\textbf{output for analysis}}; |
---|
| 110 | |
---|
| 111 | \node [info, above=-0.1cm of third] (sixth) {input file}; |
---|
| 112 | \node [info, above=-0.1cm of fourth] (seventh) {output file 1}; |
---|
| 113 | \node [info, above=-0.1cm of fifth] (eight) {output file 2}; |
---|
| 114 | |
---|
| 115 | \draw [->] (third.west) -- (first.north); |
---|
| 116 | \draw [->] (first.east) -- (fourth.west); |
---|
| 117 | \draw [->] (first.south) -- (fifth.west); |
---|
| 118 | |
---|
| 119 | \uncover<5->{\node [white, right=0.25cm of third] (ninth) { |
---|
| 120 | \texttt{OPEN (11, FILE='PARIN', FORM='FORMATTED')}};} |
---|
| 121 | \uncover<5->{\node [white, right=0.25cm of fourth] (tenth) { |
---|
[954] | 122 | \texttt{OPEN (15, FILE='RUN\underline{ }CONTROL', FORM='FORMATTED')}};} |
---|
[945] | 123 | \uncover<5->{\node [white, right=0.25cm of fifth] (eleventh) { |
---|
[954] | 124 | \texttt{OPEN (40, FILE=âDATA\underline{ }1D\underline{ }PR\underline{ }NETCDF', FORM='FORMATTED')}};} |
---|
[945] | 125 | \end{tikzpicture} |
---|
| 126 | |
---|
[954] | 127 | \vspace{3mm} |
---|
[945] | 128 | \scriptsize |
---|
[954] | 129 | \onslide<6->\textcolor{red}{\textbf{Problems:} The user has to copy or rename output files, if |
---|
[945] | 130 | he/she wants to run the program more than once and if he concurrently wants to keep |
---|
[973] | 131 | the files from the former run(s). If he/she is using different input parameter files for steering, these files also have |
---|
[945] | 132 | to be copied into the working directory before the program is executed.}\\ |
---|
[954] | 133 | \vspace{1mm} |
---|
[945] | 134 | \begin{tikzpicture}[auto, node distance=0] |
---|
[954] | 135 | \uncover<7->{\node [alert] (alert) {\textcolor{red}{\textbf{It is therefore very desirable to automate these tasks!}}};} |
---|
[945] | 136 | \end{tikzpicture} |
---|
| 137 | \end{frame} |
---|
| 138 | |
---|
| 139 | % Folie 4 |
---|
| 140 | \begin{frame} |
---|
[1165] | 141 | \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize] |
---|
[945] | 142 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize] |
---|
| 143 | \tikzstyle{yellowsmall} = [rectangle, draw, fill=yellow!20, text width=0.10\textwidth, font=\scriptsize] |
---|
| 144 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\tiny] |
---|
| 145 | |
---|
| 146 | \frametitle{\texttt{mrun}: Principal Mode of Operation (I)} |
---|
[954] | 147 | \scriptsize \texttt{mrun} \textbf{runs a program (in our case the PALM model) by carrying out the following principle tasks in a sequential order:}\\ |
---|
| 148 | \vspace{1mm} |
---|
[945] | 149 | \begin{enumerate} |
---|
| 150 | \item<2-> Create a temporary working directory and change into this directory:\\ |
---|
[1165] | 151 | \quad \texttt{mkdir <tmpdir>/<username>.<randomnumber>}\\ |
---|
| 152 | \quad \texttt{cd <tmpdir>/<username>.<randomnumber>}\\ |
---|
[945] | 153 | \ \\ |
---|
[1165] | 154 | The path of \texttt{<tmpdir>} is given in the configuration file |
---|
[954] | 155 | \texttt{.mrun.config} by the environment variable \texttt{tmp\underline{ }user\underline{ }catalog}, e.g.:\\ |
---|
| 156 | \quad \texttt{\%tmp\underline{ }user\underline{ }catalog /tmp \hspace{30mm} <hi> parallel}\\ |
---|
[945] | 157 | \ \\ |
---|
| 158 | \onslide<3-> On SGI-ICE: \\ |
---|
[954] | 159 | \quad \texttt{\%tmp\underline{ }user\underline{ }catalog /gfs2/work/<username> |
---|
| 160 | \hspace{5mm} lcsgih parallel} |
---|
[945] | 161 | \begin{center} |
---|
| 162 | \begin{tikzpicture}[auto, node distance=0] |
---|
[1165] | 163 | \uncover<4->{\node [green] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
[945] | 164 | \end{tikzpicture} |
---|
| 165 | \end{center} |
---|
[954] | 166 | \vspace{2mm} |
---|
[945] | 167 | \item<5-> Copy the input files from a directory of the user into this working directory:\\ |
---|
[954] | 168 | \vspace{1mm} |
---|
| 169 | \onslide<6-> \tiny \quad \texttt{cp <user\underline{ }input\underline{ }file1> |
---|
[1165] | 170 | /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }input\underline{ }file1>}\\ |
---|
[954] | 171 | \quad \texttt{cp <user\underline{ }input\underline{ }file2> |
---|
[1165] | 172 | /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }input\underline{ }file2>}\\ |
---|
[954] | 173 | \vspace{2mm} |
---|
| 174 | \scriptsize |
---|
[945] | 175 | \begin{center} |
---|
| 176 | \begin{tikzpicture}[auto, node distance=0] |
---|
| 177 | |
---|
[1165] | 178 | \uncover<8->{\node [green] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
[945] | 179 | |
---|
| 180 | \uncover<7->{\node [yellowsmall, above=0.1cm of green] (yellow2) {JOBS/};} |
---|
[954] | 181 | \uncover<7->{\node [yellow, left=0.2cm of yellow2] (yellow1) {current\underline{ }version/};} |
---|
| 182 | \uncover<7->{\node [yellow, right=0.2cm of yellow2] (yellow3) {example\underline{ }cbl/};} |
---|
[945] | 183 | \uncover<7->{\node [yellowsmall, right=0.2cm of yellow3] (yellow4) {INPUT/};} |
---|
| 184 | |
---|
| 185 | \draw<7-> [-] (yellow1.east) -- (yellow2.west); |
---|
| 186 | \draw<7-> [-] (yellow2.east) -- (yellow3.west); |
---|
| 187 | \draw<7-> [-] (yellow3.east) -- (yellow4.west); |
---|
| 188 | |
---|
[1226] | 189 | \node [dummy, right=0.06cm of yellow4] (dummy1) {}; |
---|
| 190 | \node [dummy, below=0.38cm of dummy1] (dummy2) {}; |
---|
[945] | 191 | |
---|
| 192 | \draw<9-> [-] (yellow4.east) -- (dummy1.center); |
---|
| 193 | \draw<9-> [-] (dummy1.center) -- (dummy2.center); |
---|
| 194 | \draw<9-> [->] (dummy2.center) -- (green.east); |
---|
| 195 | |
---|
| 196 | \end{tikzpicture} |
---|
| 197 | \end{center} |
---|
| 198 | |
---|
| 199 | \end{enumerate} |
---|
| 200 | |
---|
| 201 | \end{frame} |
---|
| 202 | |
---|
| 203 | % Folie 5 |
---|
| 204 | \begin{frame} |
---|
[1165] | 205 | \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize, minimum height=0.6cm] |
---|
[945] | 206 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 207 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 208 | |
---|
| 209 | \frametitle{\texttt{mrun}: Principal Mode of Operation (II)} |
---|
| 210 | |
---|
| 211 | \begin{enumerate} |
---|
| 212 | \setcounter{enumi}{2} |
---|
| 213 | \item<1-> Copy the pre-compiled routines to the temporary working directory:\\ |
---|
| 214 | |
---|
| 215 | \begin{center} |
---|
| 216 | \begin{tikzpicture}[auto, node distance=0] |
---|
[954] | 217 | \uncover<2->{\node [yellow] (yellow) {current\underline{ }version/};} |
---|
[945] | 218 | \uncover<1->{\node [dummy, right=0.0cm of yellow] (dummy1) {};} |
---|
[954] | 219 | \uncover<2->{\node [green, right=0.2cm of yellow] (green1) {MAKE\underline{ }DEPOSITORY\underline{ }\textit{parallel}/};} |
---|
[945] | 220 | \uncover<1->{\node [dummy, right=0.2cm of green1] (dummy2) {};} |
---|
[1165] | 221 | \uncover<3->{\node [green, below=0.5cm of dummy1] (green2) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
[945] | 222 | \uncover<1->{\node [dummy, below=0.5cm of dummy2] (dummy3) {};} |
---|
| 223 | \uncover<4->{\node [dummy, right=0.0cm of dummy3] (text) {Makefile\\ |
---|
| 224 | *.f90\\ |
---|
| 225 | *.o\\ |
---|
| 226 | ...\\ \ \\};} |
---|
| 227 | |
---|
| 228 | \draw<2-> [-] (yellow.east) -- (green1.west); |
---|
| 229 | \draw<4-> [-] (green1.east) -- (dummy2.center); |
---|
| 230 | \draw<4-> [-] (dummy2.center) -- (dummy3.center); |
---|
| 231 | \draw<4-> [->] (dummy3.center) -- (green2.east); |
---|
| 232 | \end{tikzpicture} |
---|
| 233 | \end{center} |
---|
| 234 | |
---|
| 235 | \item<5-> Compile the main program and use pre-compiled object files:\\ |
---|
| 236 | \quad \texttt{f90 palm.f90 *.o ... ( make Makefile)} |
---|
| 237 | \item<6-> Execute the program:\\ |
---|
| 238 | \quad \texttt{a.out} |
---|
| 239 | \end{enumerate} |
---|
| 240 | \end{frame} |
---|
| 241 | |
---|
| 242 | % Folie 6 |
---|
| 243 | \begin{frame} |
---|
[1165] | 244 | \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize, minimum height=0.6cm] |
---|
[1226] | 245 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
[945] | 246 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 247 | |
---|
| 248 | \frametitle{\texttt{mrun}: Principal Mode of Operation (III)} |
---|
[954] | 249 | \footnotesize |
---|
[945] | 250 | \begin{enumerate} |
---|
| 251 | \setcounter{enumi}{5} |
---|
| 252 | \item<1-> Copy the output files from the working directory to a (permanent) directory of the user:\\ |
---|
[1226] | 253 | \vspace{1mm} |
---|
[1165] | 254 | \tiny \quad \texttt{cp /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }output\underline{ }file1> <user\underline{ }output\underline{ }file1>}\\ |
---|
| 255 | \quad \texttt{cp /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }output\underline{ }file2> <user\underline{ }output\underline{ }file2>}\\ |
---|
[954] | 256 | \footnotesize |
---|
[945] | 257 | \begin{center} |
---|
[1226] | 258 | \begin{tikzpicture}[auto, node distance=0] |
---|
| 259 | \uncover<2->{\node [yellow] (yellow1) {MONITORING/ };} |
---|
[945] | 260 | |
---|
| 261 | \uncover<2->{\node [dummy, right=0.2cm of yellow1] (dummy2) {};} |
---|
| 262 | \uncover<2->{\node [dummy, above=0.2cm of dummy2] (dummy1) {};} |
---|
| 263 | \uncover<2->{\node [dummy, below=0.2cm of dummy2] (dummy3) {};} |
---|
| 264 | |
---|
| 265 | \uncover<2->{\node [yellow, left=0.2cm of dummy3] (yellow2) {OUTPUT/};} |
---|
[954] | 266 | \uncover<2->{\node [yellow, left=0.2cm of yellow2] (yellow3) {example\underline{ }cbl/};} |
---|
[945] | 267 | \uncover<2->{\node [yellow, left=0.2cm of yellow3] (yellow4) {JOBS/};} |
---|
[954] | 268 | \uncover<2->{\node [yellow, left=0.2cm of yellow4] (yellow5) {current\underline{ }version/};} |
---|
[945] | 269 | |
---|
[1226] | 270 | \uncover<2-3>{\node [green, left=4.0cm of dummy1] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
[945] | 271 | |
---|
| 272 | \draw<2-3> [-] (green.east) -- (dummy1.center); |
---|
| 273 | \draw<2-3> [-] (dummy2.center) -- (dummy1.center); |
---|
| 274 | \draw<2-3> [-] (dummy3.center) -- (dummy1.center); |
---|
| 275 | |
---|
| 276 | \draw<2-3> [->] (dummy2.center) -- (yellow1.east); |
---|
| 277 | \draw<2-3> [->] (dummy3.center) -- (yellow2.east); |
---|
| 278 | |
---|
| 279 | \draw<2-> [-] (yellow2.west) -- (yellow3.east); |
---|
| 280 | \draw<2-> [-] (yellow3.west) -- (yellow4.east); |
---|
| 281 | \draw<2-> [-] (yellow4.west) -- (yellow5.east); |
---|
| 282 | |
---|
[1226] | 283 | \end{tikzpicture} |
---|
| 284 | \end{center} |
---|
[945] | 285 | |
---|
| 286 | \item<3-> Delete the temporary working directory\\ |
---|
[1165] | 287 | \quad \texttt{rm -rf /<tmpdir>/<username>.<randomnumber>}\\ |
---|
[954] | 288 | \vspace{2mm} |
---|
[945] | 289 | \onslide<5->\textcolor{red}{Question: How does \texttt{mrun} know which files have to be copied and where from or where to they have to be copied?} |
---|
| 290 | |
---|
| 291 | \end{enumerate} |
---|
| 292 | \end{frame} |
---|
| 293 | |
---|
| 294 | % Folie 7 |
---|
| 295 | \begin{frame} |
---|
| 296 | \tikzstyle{small} = [rectangle, text width=0.08\textwidth, font=\scriptsize] |
---|
| 297 | \tikzstyle{large} = [rectangle, text width=0.45\textwidth, font=\scriptsize] |
---|
| 298 | \tikzstyle{box} = [rectangle, draw, text width=0.2\textwidth, font=\scriptsize] |
---|
| 299 | \tikzstyle{boxbig} = [rectangle, draw, text width=0.4\textwidth, font=\scriptsize] |
---|
| 300 | \tikzstyle{dummy} = [rectangle, text width=0.0\textwidth, font=\scriptsize, minimum height=0.5cm] |
---|
| 301 | |
---|
| 302 | \frametitle{Steering File Copy by the Configuration File (I)} |
---|
| 303 | \scriptsize |
---|
[954] | 304 | \textbf{Copying of files is controlled by so called} \textit{file connection statements}. \textbf{They connect local files in the temporary working directory with permanent files residing in the directory of the user.}\\ |
---|
[945] | 305 | \vspace{1mm} |
---|
| 306 | Principle example of a file connection statement (for the PALM parameter file): |
---|
| 307 | \vspace{-3mm} |
---|
| 308 | \begin{center} |
---|
| 309 | \begin{tikzpicture}[auto, node distance=0] |
---|
| 310 | \uncover<1->{\node [small] (part1) {\texttt{PARIN}};} |
---|
| 311 | \uncover<1->{\node [dummy, left=-0.2cm of part1] (dummy1) {};} |
---|
| 312 | \uncover<1->{\node [dummy, below=1.25cm of dummy1] (dummy3) {};} |
---|
| 313 | \uncover<1->{\node [small, right=0.0cm of part1] (part2) {\quad \texttt{in}};} |
---|
| 314 | \uncover<1->{\node [dummy, right=0.0cm of part2] (dummy2) {};} |
---|
| 315 | \uncover<1->{\node [small, right=0.2cm of part2] (part3) {\texttt{d3\#}};} |
---|
[954] | 316 | \uncover<1->{\node [large, right=0.0cm of part3] (part4) {\texttt{\~{}/palm/current\underline{ }version/JOB/INPUT}};} |
---|
| 317 | \uncover<1->{\node [small, right=0.0cm of part4] (part5) {\texttt{\underline{ }p3d}};} |
---|
[945] | 318 | \uncover<1->{\node [small, right=0.2cm of part5] (part6) {\texttt{( \textcolor{red}{nc} )}};} |
---|
| 319 | |
---|
| 320 | \uncover<2->{\node [boxbig, below=1.25cm of dummy2] (box1) {local filename in the working directory (must correspond to the filename in the \texttt{OPEN} statement of the program)};} |
---|
| 321 | \draw<2-> [->] (dummy3.north) -- (dummy1.south); |
---|
| 322 | |
---|
| 323 | \uncover<3->{\node [box, below=0.7cm of part2] (box2) {file attributes};} |
---|
| 324 | \draw<3-> [->] (box2.north) -- (part2.south); |
---|
| 325 | |
---|
| 326 | \uncover<4->{\node [box, below=0.2cm of part3] (box3) {activating string};} |
---|
| 327 | \draw<4-> [->] (box3.north) -- (part3.south); |
---|
| 328 | |
---|
| 329 | \uncover<5->{\node [box, below=0.2cm of part4] (box4) {directory in which the permanent user file resides};} |
---|
| 330 | \draw<5-> [->] (box4.north) -- (part4.south); |
---|
| 331 | |
---|
| 332 | \uncover<6->{\node [box, below=0.2cm of part5] (box5) {suffix of the permanent filename};} |
---|
| 333 | \draw<6-> [->] (box5.north) -- (part5.south); |
---|
| 334 | |
---|
| 335 | \uncover<7->{\node [box, below=1.0cm of part6] (box6) {additional suffix for netCDF files};} |
---|
| 336 | \draw<7-> [->] (box6.north) -- (part6.south); |
---|
| 337 | \end{tikzpicture} |
---|
| 338 | \end{center} |
---|
| 339 | |
---|
| 340 | \onslide<8->The full name of the permanent file results from the directory name, the suffix and the value of \texttt{mrun}-Option \texttt{-d}, which defines the so-called \textbf{base name} of all files handled by \texttt{mrun}:\\ |
---|
[954] | 341 | \quad \texttt{mrun -d \textcolor{blue}{example\underline{ }cbl} ...}\\ |
---|
[945] | 342 | gives the filename\\ |
---|
[954] | 343 | \quad \texttt{\~{}/palm/current\underline{ }version/JOB/INPUT/\textcolor{blue}{example\underline{ }cbl}\underline{ }p3d}\\ |
---|
| 344 | \quad \texttt{( ... /\textcolor{blue}{example\underline{ }cbl}\underline{ }p3d\textcolor{red}{.nc} )} |
---|
[945] | 345 | |
---|
| 346 | \end{frame} |
---|
| 347 | |
---|
| 348 | % Folie 8 |
---|
| 349 | \begin{frame} |
---|
| 350 | \frametitle{Steering File Copy by the Configuration File (II)} |
---|
| 351 | \scriptsize |
---|
| 352 | \onslide<1-> The \textbf{base name} can additionally be a part of the directory name |
---|
[954] | 353 | by using \textcolor{blue}{\texttt{\$fname}} in the directory column of the file connection statement:\\ |
---|
[1226] | 354 | \vspace{1mm} |
---|
[954] | 355 | \quad \texttt{PARIN in d3\# \~{}/palm/current\underline{ }version/JOBS/\textcolor{blue}{\$fname}/INPUT \underline{ }p3d}\\ |
---|
[1226] | 356 | \vspace{1mm} |
---|
[945] | 357 | \onslide<2-> Using the call\\ |
---|
[1226] | 358 | \vspace{1mm} |
---|
[954] | 359 | \quad \texttt{mrun -d \textcolor{blue}{abcde} ...}\\ |
---|
[1226] | 360 | \vspace{1mm} |
---|
[945] | 361 | the input file will be expected under\\ |
---|
[1226] | 362 | \vspace{1mm} |
---|
[954] | 363 | \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/\textcolor{blue}{abcde}/INPUT/\textcolor{blue}{abcde}\underline{ }p3d }\\ |
---|
[1226] | 364 | \vspace{1mm} |
---|
[945] | 365 | \onslide<3-> In this way, all files handled by the \texttt{mrun}-call are stored in |
---|
[954] | 366 | the same subdirectory (\textcolor{blue}{abcde/}) and will have the same string (\texttt{\textcolor{blue}{abcde}}) as |
---|
| 367 | part of their names, so they can be easily identified as \grqq belonging\grqq\, to the model |
---|
[945] | 368 | run initiated by that \texttt{mrun} call.\\ |
---|
| 369 | \ \\ |
---|
| 370 | \onslide<4-> Instead of always writing the full path name (i.e. |
---|
[954] | 371 | \texttt{\~{}/palm/current\underline{ }version/JOBS}), an environment variable can be declared for |
---|
[945] | 372 | this at the beginning of the configuration file and be used in the file |
---|
| 373 | connection statements:\\ |
---|
[1226] | 374 | \vspace{1mm} |
---|
[954] | 375 | \quad \texttt{\%base\underline{ }data \~{}/palm/current\underline{ }version/JOBS}\\ |
---|
| 376 | \quad \texttt{PARIN in d3\# \textcolor{blue}{\$base\underline{ }data}/\textcolor{blue}{\$fname}/INPUT \underline{ }p3d}\\ |
---|
[945] | 377 | \ \\ |
---|
| 378 | \onslide<5-> This easily allows to change the directories for all input/output files |
---|
[954] | 379 | by just changing the value of \texttt{base\underline{ }data}. |
---|
[945] | 380 | |
---|
| 381 | \end{frame} |
---|
| 382 | |
---|
| 383 | % Folie 9 |
---|
| 384 | \begin{frame} |
---|
| 385 | \frametitle{Steering File Copy by the Configuration File (III)} |
---|
| 386 | \scriptsize |
---|
| 387 | \onslide<1-> File connection statements which shall be carried out, |
---|
| 388 | have to be activated by giving their activation string in the |
---|
| 389 | \texttt{mrun}-option \texttt{-r}:\\ |
---|
[1226] | 390 | \vspace{1mm} |
---|
[954] | 391 | \quad \texttt{PARIN in d3\# \~{}/palm/current\underline{ }version/JOBS/\$fname/INPUT \underline{ }p3d}\\ |
---|
[945] | 392 | \ \\ |
---|
| 393 | \onslide<2-> The permanent file |
---|
[1226] | 394 | \vspace{1mm} |
---|
[954] | 395 | \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/INPUT/example\underline{ }cbl\underline{ }p3d} |
---|
[1226] | 396 | \vspace{1mm} |
---|
[945] | 397 | will only be copied to the local file PARIN by using the call:\\ |
---|
[1226] | 398 | \vspace{1mm} |
---|
[954] | 399 | \quad \texttt{mrun -d example\underline{ }cbl -r \dq d3\#\dq\, ...}\\ |
---|
[945] | 400 | \ \\ |
---|
| 401 | \onslide<3-> \textbf{Example for an output file:}\\ |
---|
| 402 | The file connection statement\\ |
---|
[1226] | 403 | \vspace{1mm} |
---|
| 404 | \quad \texttt{DATA\underline{ }1D\underline{ }PR\_NETCDF out:loc pr\# \textbackslash} \\ |
---|
| 405 | ~~~~~~\texttt{\~{}/palm/current\underline{ }version/JOBS/\$fname/OUTPUT \underline{ }pr nc}s\\ |
---|
| 406 | \vspace{1mm} |
---|
[945] | 407 | \onslide<4-> will copy (after program execution) the local file |
---|
[954] | 408 | \texttt{DATA\underline{ }1D\underline{ }PR\underline{ }NETCDF} to the permanent file |
---|
[1226] | 409 | \vspace{1mm} |
---|
[954] | 410 | \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/OUTPUT/example\underline{ }cbl\underline{ }pr.nc} if |
---|
[945] | 411 | \texttt{mrun} is called with the options\\ |
---|
[1226] | 412 | \vspace{1mm} |
---|
[954] | 413 | \quad \texttt{mrun -d example\underline{ }cbl -r \dq d3\# pr\#\dq\, ...} |
---|
[945] | 414 | |
---|
| 415 | \end{frame} |
---|
| 416 | |
---|
| 417 | % Folie 10 |
---|
| 418 | \begin{frame} |
---|
| 419 | \frametitle{Steering File Copy by the Configuration File (IV)} |
---|
| 420 | \scriptsize |
---|
| 421 | \onslide<1-> \texttt{mrun} never replaces/overwrites existing files!\\ |
---|
| 422 | \ \\ |
---|
| 423 | Instead, new, so-called file cycles are created.\\ |
---|
| 424 | If an output file, e.g.\\ |
---|
[954] | 425 | \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/MONITORING/example\underline{ }cbl\underline{ }rc}\\ |
---|
[945] | 426 | \ \\ |
---|
| 427 | has been created from a first call of \texttt{mrun} and if the same \texttt{mrun} |
---|
| 428 | call is submitted again, the second call will not replace the file |
---|
[954] | 429 | \texttt{example\underline{ }cbl\underline{ }rc}, but will create a new file with name:\\ |
---|
| 430 | \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/MONITORING/example\underline{ }cbl\underline{ }rc.1}\\ |
---|
[945] | 431 | \ \\ |
---|
| 432 | \onslide<2->In case of netCDF-files, the file cycle number is inserted before |
---|
| 433 | the netCDF-suffix .nc, e.g.\\ |
---|
[954] | 434 | \quad \texttt{example\underline{ }cbl\underline{ }pr.1.nc}\\ |
---|
[945] | 435 | \ \\ |
---|
| 436 | \onslide<3->The implemented file cycle mechanism does not allow to use |
---|
| 437 | any other dots "'."' in the path or filename:\\ |
---|
[954] | 438 | \quad \texttt{\~{}/palm/version\underline{ }3.6/JOBS/example.sbl/MONITORING/example.sbl\underline{ }rc} |
---|
[945] | 439 | \end{frame} |
---|
| 440 | |
---|
| 441 | % Folie 11 |
---|
| 442 | \begin{frame}[fragile] |
---|
| 443 | \frametitle{\normalsize File Connection Statements From the Default \texttt{.mrun.config} file} |
---|
| 444 | \begin{columns} |
---|
| 445 | \column{1.1\textwidth} |
---|
| 446 | \tiny |
---|
| 447 | \begin{lstlisting} |
---|
| 448 | #---------------------------------------------------------------------------- |
---|
| 449 | # List of input-files |
---|
| 450 | #---------------------------------------------------------------------------- |
---|
| 451 | PARIN in:job d3# $base_data/$fname/INPUT _p3d |
---|
| 452 | PARIN in:job d3f $base_data/$fname/INPUT _p3df |
---|
| 453 | TOPOGRAPHY_DATA in:locopt d3#:d3f $base_data/$fname/INPUT _topo |
---|
[954] | 454 | BININ in:loc:flpe d3f $base_data/$fname/RESTART _d3d |
---|
[945] | 455 | PARTICLE_RESTART_DATA_IN in:loc:flpe prtf $base_data/$fname/RESTART _rprt |
---|
| 456 | DATA_1D_PR_NETCDF in:locopt prf $base_data/$fname/OUTPUT _pr nc |
---|
| 457 | DATA_1D_SP_NETCDF in:locopt spf $base_data/$fname/OUTPUT _sp nc |
---|
| 458 | DATA_1D_TS_NETCDF in:locopt tsf $base_data/$fname/OUTPUT _ts nc |
---|
| 459 | DATA_1D_PTS_NETCDF in:locopt ptsf $base_data/$fname/OUTPUT _pts nc |
---|
| 460 | DATA_2D_XY_NETCDF in:locopt xyf $base_data/$fname/OUTPUT _xy nc |
---|
| 461 | DATA_2D_XY_AV_NETCDF in:locopt xyf $base_data/$fname/OUTPUT _xy_av nc |
---|
| 462 | DATA_2D_XZ_NETCDF in:locopt xzf $base_data/$fname/OUTPUT _xz nc |
---|
| 463 | DATA_2D_YZ_NETCDF in:locopt yzf $base_data/$fname/OUTPUT _yz nc |
---|
| 464 | DATA_3D_NETCDF in:locopt 3df $base_data/$fname/OUTPUT _3d nc |
---|
| 465 | DATA_PRT_NETCDF in:locopt:pe prtf $base_data/$fname/OUTPUT _prt |
---|
| 466 | # |
---|
| 467 | #---------------------------------------------------------------------------- |
---|
| 468 | # List of output-files |
---|
| 469 | #---------------------------------------------------------------------------- |
---|
| 470 | BINOUT out:loc:flpe restart $base_data/$fname/RESTART _d3d |
---|
| 471 | PARTICLE_RESTART_DATA_OUT out:loc:flpe prt#:prtf $base_data/$fname/RESTART _rprt |
---|
| 472 | # |
---|
| 473 | RUN_CONTROL out:loc:tr d3# $base_data/$fname/MONITORING _rc |
---|
| 474 | RUN_CONTROL out:loc:tra d3f $base_data/$fname/MONITORING _rc |
---|
| 475 | HEADER out:loc:tr d3# $base_data/$fname/MONITORING _header |
---|
| 476 | HEADER out:loc:tra d3f $base_data/$fname/MONITORING _header |
---|
| 477 | \end{lstlisting} |
---|
| 478 | \end{columns} |
---|
[1226] | 479 | % CPU_MEASURES out:loc:tr d3# $base_data/$fname/MONITORING _cpu |
---|
| 480 | % CPU_MEASURES out:loc:tra d3f $base_data/$fname/MONITORING _cpu |
---|
| 481 | % # |
---|
| 482 | % DATA_1D_PR_NETCDF out:loc:tr pr#:prf $base_data/$fname/OUTPUT _pr nc |
---|
| 483 | % DATA_1D_SP_NETCDF out:loc:tr sp#:spf $base_data/$fname/OUTPUT _sp nc |
---|
| 484 | % DATA_1D_TS_NETCDF out:loc:tr ts#:tsf $base_data/$fname/OUTPUT _ts nc |
---|
| 485 | % DATA_1D_PTS_NETCDF out:loc:tr pts#:ptsf $base_data/$fname/OUTPUT _pts nc |
---|
| 486 | % DATA_2D_XY_NETCDF out:loc:tr xy#:xyf $base_data/$fname/OUTPUT _xy nc |
---|
| 487 | % DATA_2D_XY_AV_NETCDF out:loc:tr xy#:xyf $base_data/$fname/OUTPUT _xy_av nc |
---|
| 488 | % DATA_2D_XZ_NETCDF out:loc:tr xz#:xzf $base_data/$fname/OUTPUT _xz nc |
---|
| 489 | % DATA_2D_XZ_AV_NETCDF out:loc:tr xz#:xzf $base_data/$fname/OUTPUT _xz_av nc |
---|
| 490 | % DATA_2D_YZ_NETCDF out:loc:tr yz#:yzf $base_data/$fname/OUTPUT _yz nc |
---|
| 491 | % DATA_2D_YZ_AV_NETCDF out:loc:tr yz#:yzf $base_data/$fname/OUTPUT _yz_av nc |
---|
| 492 | % DATA_3D_NETCDF out:loc:tr 3d#:3df $base_data/$fname/OUTPUT _3d nc |
---|
| 493 | % DATA_3D_AV_NETCDF out:loc:tr 3d#:3df $base_data/$fname/OUTPUT _3d_av nc |
---|
| 494 | % DATA_MASK_01_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m01 nc |
---|
| 495 | % DATA_MASK_01_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m01_av nc |
---|
| 496 | % DATA_MASK_02_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m02 nc |
---|
| 497 | % DATA_MASK_02_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m02_av nc |
---|
| 498 | % DATA_MASK_03_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m03 nc |
---|
| 499 | % DATA_MASK_03_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m03_av nc |
---|
| 500 | % DATA_MASK_04_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m04 nc |
---|
| 501 | % DATA_MASK_04_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m04_av nc |
---|
| 502 | % DATA_MASK_05_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m05 nc |
---|
| 503 | % DATA_MASK_05_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m05_av nc |
---|
| 504 | % DATA_MASK_06_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m06 nc |
---|
| 505 | % DATA_MASK_06_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m06_av nc |
---|
| 506 | % DATA_MASK_07_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m07 nc |
---|
| 507 | % DATA_MASK_07_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m07_av nc |
---|
| 508 | % DATA_MASK_08_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m08 nc |
---|
| 509 | % DATA_MASK_08_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m08_av nc |
---|
| 510 | % DATA_MASK_09_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m09 nc |
---|
| 511 | % DATA_MASK_09_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m09_av nc |
---|
| 512 | % DATA_MASK_10_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m10 nc |
---|
| 513 | % DATA_MASK_10_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m10_av nc |
---|
| 514 | % DATA_MASK_11_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m11 nc |
---|
| 515 | % DATA_MASK_11_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m11_av nc |
---|
| 516 | % DATA_MASK_12_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m12 nc |
---|
| 517 | % DATA_MASK_12_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m12_av nc |
---|
| 518 | % DATA_MASK_13_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m13 nc |
---|
| 519 | % DATA_MASK_13_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m13_av nc |
---|
| 520 | % DATA_MASK_14_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m14 nc |
---|
| 521 | % DATA_MASK_14_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m14_av nc |
---|
| 522 | % DATA_MASK_15_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m15 nc |
---|
| 523 | % DATA_MASK_15_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m15_av nc |
---|
| 524 | % DATA_MASK_16_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m16 nc |
---|
| 525 | % DATA_MASK_16_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m16_av nc |
---|
| 526 | % DATA_MASK_17_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m17 nc |
---|
| 527 | % DATA_MASK_17_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m17_av nc |
---|
| 528 | % DATA_MASK_18_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m18 nc |
---|
| 529 | % DATA_MASK_18_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m18_av nc |
---|
| 530 | % DATA_MASK_19_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m19 nc |
---|
| 531 | % DATA_MASK_19_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m19_av nc |
---|
| 532 | % DATA_MASK_20_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m20 nc |
---|
| 533 | % DATA_MASK_20_AV_NETCDF out:loc:tr ma#:maf $base_data/$fname/OUTPUT _m20_av nc |
---|
| 534 | % DATA_PRT_NETCDF out:loc:trpe prt#:prtf $base_data/$fname/OUTPUT _prt nc |
---|
| 535 | % DATA_DVR out:loc:trpe dvr $base_data/$fname/OUTPUT _dvr |
---|
| 536 | % # |
---|
| 537 | % DVRP_LOG out:loc:tr dv# $base_data/$fname/MONITORING _dvrp_log |
---|
| 538 | % DVRP_LOG out:loc:tra dvf $base_data/$fname/MONITORING _dvrp_log |
---|
| 539 | % PARTICLE_INFO out:loc:tr pt# $base_data/$fname/MONITORING _prt_info |
---|
| 540 | % PARTICLE_INFO out:loc:tra ptf $base_data/$fname/MONITORING _prt_info |
---|
| 541 | % PARTICLE_DATA out:loc:flpe prt#:prtf $base_data/$fname/OUTPUT _prt_dat |
---|
| 542 | |
---|
[945] | 543 | \end{frame} |
---|
| 544 | |
---|
| 545 | % Folie 12 |
---|
| 546 | \begin{frame} |
---|
[1226] | 547 | \frametitle{Additional Features of \texttt{mrun} (I)} |
---|
| 548 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=1.15\textwidth, font=\Tiny] |
---|
[945] | 549 | \begin{itemize} |
---|
| 550 | \footnotesize |
---|
| 551 | \item<1-> Generating batch jobs on local \textbf{and} remote host. |
---|
| 552 | \item<2-> Setting of unix environment variables for job and model control (e.g. for determining compiler options, etc.). |
---|
| 553 | \item<3-> Values have to be set in the \texttt{mrun} configuration file \texttt{.mrun.config}: |
---|
| 554 | \end{itemize} |
---|
[1226] | 555 | \onslide<4->{\hspace{-0.95cm}\begin{tikzpicture}[auto] |
---|
| 556 | \node[yellow]{\texttt{\%sgi\_feature \hspace{0.53cm} ice2 \hspace{2.71cm} lcsgih parallel}\\ |
---|
| 557 | \texttt{\%modules \hspace{0.87cm} intel.compiler/11.1.072:mpt:phdf5/1.8.5-mpt-intel-11.1:pnetcdf/4.1.1-mpt-intel-11.1 \quad\quad lcsgih parallel}\\ |
---|
| 558 | \texttt{\%login\_init\_cmd \hspace{0.25cm} .:/usr/share/modules/init/bash \quad\quad lcsgih parallel}\\ |
---|
| 559 | \texttt{\#\%remote\_username \hspace{0.07cm} <replace by your HLRN username> \quad\quad lcsgih parallel}\\ |
---|
| 560 | \texttt{\%compiler\_name \hspace{0.35cm} ifort \hspace{2.61cm} lcsgih parallel}\\ |
---|
| 561 | \texttt{\%compiler\_name\_ser~ ifort \hspace{2.61cm} lcsgih parallel}\\ |
---|
| 562 | \texttt{\%cpp\_options \hspace{0.53cm} -DMPI\_REAL=MPI\_DOUBLE\_PRECISION:-DMPI\_2REAL=MPI\_2DOUBLE\_PRECISION:-D\_\_netcdf:-D\_\_netcdf4:-D\_\_mpi2 \quad lcsgih parallel}\\ |
---|
| 563 | \texttt{\%netcdf\_inc \hspace{0.62cm} -I:/sw/dataformats/pnetcdf/netcdf-4.1.1-mpt-intel-11.1/include:-I:/sw/dataformats/phdf5/hdf5-1.8.5-mpt-intel-11.1/in}\\ %clude lcsgih parallel}\\ |
---|
| 564 | \texttt{\%netcdf\_lib \hspace{0.62cm} -L/sw/dataformats/pnetcdf/netcdf-4.1.1-mpt-intel-11.1/lib:-lnetcdf:-lnetcdff:-L/sw/dataformats/phdf5/hdf5-1.8.5-mpt-}\\ %intel-11.1/lib:-lhdf5:-lhdf5\_hl:-lz lcsgih parallel}\\ |
---|
| 565 | \texttt{\%mopts \hspace{1.06cm} -j:4 \hspace{2.71cm} lcsgih parallel}\\ |
---|
| 566 | \texttt{\%fopts \hspace{1.06cm} -fpe0:-O3:-cpp:-r8:-fp-model:precise:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:}\\ %-convert:little\_endian:-diag-disable:8290,8291 lcsgih parallel}\\ |
---|
| 567 | \texttt{\%lopts \hspace{1.06cm} -fpe0:-O3:-cpp:-r8:-fp-model:precise:-align:all:-ftz:-fno-alias:-no-scalar-rep:-no-prec-div:-no-prec-sqrt:-ip:-nbs:-}\\ %Vaxlib:-lmpi:-limf:-lm lcsgih parallel}\\ |
---|
| 568 | \texttt{\%memory \hspace{0.97cm} 1500 \hspace{2.71cm} lcsgih parallel}\\ |
---|
| 569 | \texttt{\#\%tmp\_data\_catalog~ /gfs2/work/<replace by your HLRN username>/palm\_restart\_data \quad\quad lcsgih parallel}\\ |
---|
| 570 | \texttt{\#\%tmp\_user\_catalog~ /gfs2/tmp/<replace by your HLRN username> \hspace{2.03cm} lcsgih parallel}}; |
---|
| 571 | \end{tikzpicture}} |
---|
| 572 | % \onslide<4->\hspace{-1cm}\includegraphics[scale=0.3]{mrun_figures/add_feat1.png} |
---|
| 573 | % \begin{itemize} |
---|
| 574 | % \footnotesize |
---|
| 575 | % \item<5-> User-defined unix commands are carried out before or after execution of the model (input/output commands) or in case of errors during the compile- or run-step (error commands). |
---|
| 576 | % These commands can also be defined in the \texttt{mrun} configuration file: |
---|
| 577 | % \onslide<6-> \includegraphics[scale=0.3]{mrun_figures/add_feat2.png} |
---|
| 578 | % \item<7-> Automatic generation of restart jobs. |
---|
| 579 | % \end{itemize} |
---|
| 580 | \end{frame} |
---|
| 581 | |
---|
| 582 | \begin{frame} |
---|
| 583 | \frametitle{Additional Features of \texttt{mrun} (II)} |
---|
| 584 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.75\textwidth, font=\Tiny] |
---|
| 585 | |
---|
[945] | 586 | \begin{itemize} |
---|
| 587 | \footnotesize |
---|
[1226] | 588 | \item<1-> User-defined unix commands are carried out before or after execution of the model (input/output commands) or in case of errors during the compile- or run-step (error commands). |
---|
[945] | 589 | These commands can also be defined in the \texttt{mrun} configuration file: |
---|
[1226] | 590 | \begin{center} |
---|
| 591 | \onslide<2->{\begin{tikzpicture} |
---|
| 592 | \node[yellow]{~\texttt{IC:echo ``PALM will soon start to execute in \textbackslash\$PWD'' > /home/h/niksiraa/mrun\_messages}\\ |
---|
| 593 | ~\texttt{EC:ls -al}\\ |
---|
| 594 | \vspace{0.5mm} |
---|
| 595 | ~\texttt{OC:tar -cf DEBUG.tar DEBUG\_*}}; |
---|
| 596 | \end{tikzpicture}} |
---|
| 597 | \end{center} |
---|
| 598 | |
---|
| 599 | % \onslide<2-> \includegraphics[scale=0.3]{mrun_figures/add_feat2.png} |
---|
| 600 | \item<3-> Automatic generation of restart jobs. |
---|
[945] | 601 | \end{itemize} |
---|
[1226] | 602 | |
---|
[945] | 603 | \end{frame} |
---|
| 604 | |
---|
| 605 | % Folie 13 |
---|
| 606 | \begin{frame} |
---|
| 607 | \frametitle{PALM \textit{Interactive} Example Run Using \texttt{mrun}: Tracing the Run by the User} |
---|
[954] | 608 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.35\textwidth, font=\tiny, minimum height=0.6cm] |
---|
| 609 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.35\textwidth, font=\tiny, minimum height=0.6cm] |
---|
| 610 | \tikzstyle{yellow_big} = [rectangle, draw, fill=yellow!20, text width=0.55\textwidth, font=\tiny, minimum height=0.6cm] |
---|
| 611 | \tikzstyle{notes} = [rectangle, text width=0.26\textwidth, font=\tiny, minimum height=0.6cm] |
---|
| 612 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\tiny, minimum height=0.6cm] |
---|
[945] | 613 | \vspace{-1.0cm} |
---|
| 614 | \begin{center} |
---|
| 615 | \begin{tikzpicture}[auto, node distance=0] |
---|
[954] | 616 | \uncover<1->{\node [yellow] (box1) {\textbf{start run on local machine:}\\ |
---|
| 617 | \texttt{mrun -d example\underline{ }cbl -h lcmuk ...}};} |
---|
| 618 | \uncover<1->{\node [dummy, right=1.4cm of box1] (dummy1) {};} |
---|
| 619 | \uncover<2->{\node [notes, above=-0.3cm of dummy1] (notes1) {temporary working directory is created, all required files are copied there};} |
---|
| 620 | \uncover<3->{\node [green, right=1.4cm of dummy1] (box2) {\textbf{follow run messages on terminal}};} |
---|
| 621 | \uncover<4->{\node [green, below=0.5cm of box2] (box3) { |
---|
| 622 | \textbf{as soon as message} |
---|
[945] | 623 | |
---|
[1165] | 624 | \texttt{*** execution starts in directory\\ \quad \dq <tmpdir>\dq\, }\\ |
---|
[954] | 625 | \ \\ |
---|
| 626 | \textbf{you can change to this directory (in a new terminal) and watch the progess of timesteps} |
---|
[945] | 627 | |
---|
[1165] | 628 | \texttt{cd <tmpdir>}\\ |
---|
[954] | 629 | \texttt{tail -f RUN\underline{ }CONTROL}\\ |
---|
| 630 | \ \\ |
---|
[945] | 631 | However, this might be difficult in case of short run times, because the run may have finished before you have entered the commands! |
---|
| 632 | };} |
---|
[954] | 633 | \coordinate[below=0.3cm of box3] (A); |
---|
| 634 | \uncover<1->{\node [dummy, left=0.3cm of box3] (dummy2) {};} |
---|
| 635 | \uncover<5->{\node [notes, below=0.0cm of A, text width=0.35\textwidth] (notes2) {results are copied from temporary working directory to the userâs permanent directory};} |
---|
| 636 | \uncover<6->{\node [yellow_big, left=2.5cm of A] (box4) { |
---|
| 637 | \textbf{check, if the output files have sucessfully been transferred to the permanent directory:}\\ |
---|
| 638 | \texttt{cd \~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/MONITORING}\\ |
---|
[945] | 639 | \texttt{ls -al}\\ |
---|
[954] | 640 | \texttt{cd \~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/OUTPUT}\\ |
---|
[945] | 641 | \texttt{ls -al} |
---|
| 642 | };} |
---|
[954] | 643 | \draw<2-> [->,color=blue] (box1.east) -- (box2.west); |
---|
| 644 | \draw<4-> [->,color=blue] (box2.south) -- (box3.north); |
---|
| 645 | \draw<5-> [-,color=blue] (box3.south) -- (A); |
---|
| 646 | \draw<5-> [->,color=blue] (A) -- (box4.east); |
---|
[945] | 647 | \end{tikzpicture} |
---|
| 648 | \end{center} |
---|
| 649 | \end{frame} |
---|
| 650 | |
---|
| 651 | % Folie 14 |
---|
| 652 | \begin{frame} |
---|
| 653 | \frametitle{PALM \textit{Batch} Example Run (on HLRN, remote) Using \texttt{mrun}: Tracing the Run by the User} |
---|
| 654 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, font=\Tiny] |
---|
[1226] | 655 | \tikzstyle{yellow2} = [rectangle, draw, fill=yellow!20, text width=0.4\textwidth, font=\Tiny] |
---|
[945] | 656 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.4\textwidth, font=\Tiny] |
---|
| 657 | \tikzstyle{dummy} = [text width=0.2\textwidth, font=\Tiny] |
---|
| 658 | \tikzstyle{alert} = [rectangle, draw, text width=0.5\textwidth, font=\scriptsize] |
---|
| 659 | \tikzstyle{line} = [draw, -latex'] |
---|
| 660 | \begin{itemize} |
---|
[954] | 661 | \item Reminder: Running batch jobs requires a directory \texttt{~/job\underline{ }queue} for the job protocol files on the local \underline{and} remote host. |
---|
[945] | 662 | \end{itemize} |
---|
| 663 | \begin{tikzpicture}[auto, node distance=0] |
---|
| 664 | \node [yellow] (first) { |
---|
| 665 | \textbf{start job on local machine:}\\ |
---|
[954] | 666 | \texttt{mrun -d example\underline{ }cbl -h lcsgih ...} |
---|
[945] | 667 | }; |
---|
| 668 | \uncover<2->{ |
---|
| 669 | \node [dummy, right=0.5cm of first] (dummy) { |
---|
| 670 | transfer of job by \texttt{scp} \\ |
---|
| 671 | \ \\ |
---|
| 672 | \ \\ |
---|
| 673 | submit of job by executing the \texttt{msub} command via \texttt{ssh} |
---|
| 674 | }; |
---|
| 675 | } |
---|
| 676 | \uncover<3->{ |
---|
| 677 | \node [green, right=3.5cm of first] (second) { |
---|
| 678 | \textbf{follow job execution on remote host, by} \\ |
---|
| 679 | \texttt{showq} (better: \texttt{showq | grep hzkurs}) |
---|
| 680 | }; |
---|
| 681 | } |
---|
| 682 | \uncover<4->{ |
---|
| 683 | \node [green, below=0.2cm of second] (third) { |
---|
| 684 | \textbf{if job is running, you may follow its progress by watching the job protocol:} \\ |
---|
[1226] | 685 | \texttt{cd \~{}/job\underline{ }queue \\ tail lcmuk\underline{ }example\underline{ }cbl} |
---|
[945] | 686 | }; |
---|
| 687 | } |
---|
| 688 | \uncover<5->{ |
---|
| 689 | \node [green, below=0.2cm of third] (fourth) { |
---|
[954] | 690 | \textbf{when job is running, change to directory \texttt{<tmp\underline{ }usr\underline{ }catalog>} and try to find there the latest directory \texttt{<HLRN-username>.<randomnumber>} \\ change to this directory and execute}\\ |
---|
| 691 | \texttt{tail -f RUN\underline{ }CONTROL} |
---|
[945] | 692 | }; |
---|
| 693 | } |
---|
| 694 | \uncover<6->{ |
---|
| 695 | \node [green, below=0.2cm of fourth] (fifth) { |
---|
| 696 | \textbf{when the job is finished, watch, if the job protocol is transferred to the local host without errors:}\\ |
---|
[1226] | 697 | \texttt{cd \~{}/job\underline{ }queue \\ cat last\underline{ }job\underline{ }transfer\underline{ }protocol} |
---|
[945] | 698 | }; |
---|
| 699 | } |
---|
| 700 | \uncover<7->{ |
---|
[1226] | 701 | \node [dummy, left=0.001mm of fifth] (dummy) { |
---|
[945] | 702 | transfer results by \texttt{scp} \\ |
---|
| 703 | \ \\ |
---|
| 704 | \ \\ |
---|
| 705 | }; |
---|
| 706 | } |
---|
| 707 | \uncover<8->{ |
---|
[1226] | 708 | \node [yellow2, left=2.5cm of fifth] (sixth) { |
---|
[945] | 709 | \textbf{check, if the job protocol and all output files have successfully been transferred to the local machine:}\\ |
---|
[1226] | 710 | \texttt{cd \~{}/job\_queue \\ ls -al \\ cd \~{}/palm/current\_version/JOBS/example \\ ls -al *} |
---|
[945] | 711 | }; |
---|
| 712 | } |
---|
| 713 | \uncover<9->{ |
---|
| 714 | \node [alert, below=0.5cm of first.south east] (alert) { |
---|
[954] | 715 | \textcolor{red}{Attention: Commands for submitting jobs and the behaviour of job protocol files are depending on the queueing system! Manual adjustments may be required in the mrun and subjob script!} |
---|
[945] | 716 | }; |
---|
| 717 | } |
---|
| 718 | \path<2-> [line] (first) -- (second); |
---|
| 719 | \path<4-> [line] (second) -- (third); |
---|
| 720 | \path<5-> [line] (third) -- (fourth); |
---|
| 721 | \path<6-> [line] (fourth) -- (fifth); |
---|
| 722 | \path<7-> [line] (fifth) -- (sixth); |
---|
| 723 | \end{tikzpicture} |
---|
| 724 | \end{frame} |
---|
| 725 | |
---|
| 726 | |
---|
| 727 | |
---|
| 728 | % Folie 15 |
---|
| 729 | \begin{frame} |
---|
| 730 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.45\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 731 | \tikzstyle{green_small} = [rectangle, draw, fill=green!20, text width=0.12\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 732 | \tikzstyle{yellow_small} = [rectangle, draw, fill=yellow!20, text width=0.1\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 733 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 734 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 735 | \tikzstyle{notes} = [rectangle, text width=0.15\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
| 736 | |
---|
| 737 | \frametitle{PALM Runs Using \texttt{mrun}: Further Details} |
---|
| 738 | \begin{itemize} |
---|
| 739 | \footnotesize |
---|
| 740 | \item<2-> For every (initial) run, \texttt{mrun} creates a source directory which contains copies of |
---|
| 741 | \begin{itemize} |
---|
| 742 | \footnotesize |
---|
| 743 | \item<4-> those source code files to be translated (always the main program, \texttt{palm.f90}, plus user interface files) |
---|
| 744 | \item<4-> the Makefile |
---|
| 745 | \item<5-> the configuration file |
---|
| 746 | \item<6-> the mrun script |
---|
| 747 | \end{itemize} |
---|
| 748 | \end{itemize} |
---|
| 749 | |
---|
| 750 | \vspace{-0.8cm} |
---|
| 751 | \begin{center} |
---|
| 752 | \begin{tikzpicture}[auto, node distance=0] |
---|
| 753 | |
---|
| 754 | \uncover<3->{\node [yellow_small] (box1) {\$HOME/};} |
---|
| 755 | \uncover<3->{\node [yellow_small, right=0.2cm of box1] (box2) {palm/};} |
---|
[954] | 756 | \uncover<3->{\node [yellow, right=0.2cm of box2] (box3) {current\underline{ }version/};} |
---|
[945] | 757 | \uncover<3->{\node [green_small, right=0.4cm of box3] (box4) {trunk/};} |
---|
| 758 | |
---|
| 759 | \uncover<1->{\node [dummy, right=1.0cm of box4] (dummy1) {};} |
---|
| 760 | |
---|
| 761 | \uncover<3->{\node [green_small, above=-0.2cm of dummy1] (box5) {SCRIPTS};} |
---|
| 762 | \uncover<3->{\node [green_small, below=-0.2cm of dummy1] (box6) {SOURCE};} |
---|
| 763 | |
---|
| 764 | \uncover<6->{\node [notes, right=0.1cm of box5] (notes1) {\texttt{mrun}};} |
---|
| 765 | \uncover<4->{\node [notes, right=0.1cm of box6] (notes2) {\texttt{Makefile \\ palm.f90}};} |
---|
| 766 | \uncover<5->{\node [notes, below=0.1cm of box3] (notes3) {\texttt{.mrun.config}};} |
---|
| 767 | |
---|
[954] | 768 | \uncover<3->{\node [green, below=0.2cm of box6] (box7) {SOURCES\underline{ }FOR\underline{ }RUN\underline{ }$<$run\underline{ }identifier$>$};} |
---|
[945] | 769 | |
---|
| 770 | \uncover<1->{\node [dummy, left=1.5cm of box7] (dummy2) {};} |
---|
| 771 | \uncover<1->{\node [dummy, right=2.0cm of box5] (dummy3) {};} |
---|
| 772 | \uncover<1->{\node [dummy, right=1.8cm of box6] (dummy4) {};} |
---|
| 773 | \uncover<1->{\node [dummy, below=0.2cm of dummy4] (dummy5) {};} |
---|
| 774 | \draw<3-> [-] (box1.east) -- (box2.west); |
---|
| 775 | \draw<3-> [-] (box2.east) -- (box3.west); |
---|
| 776 | \draw<3-> [-] (box3.east) -- (box4.west); |
---|
| 777 | \draw<3-> [-] (box4.east) -- (box5.west); |
---|
| 778 | \draw<3-> [-] (box4.east) -- (box6.west); |
---|
| 779 | \draw<3-> [-] (box3.east) -- (box7.west); |
---|
| 780 | \draw<6-> [-] ([xshift=-0.8cm]notes1.east) -- (dummy3.center); |
---|
| 781 | \draw<4-> [-] ([xshift=-0.4cm]notes2.east) -- (dummy4.center); |
---|
| 782 | \draw<4-> [-] (dummy4.center) -- ([yshift=0.1cm]dummy5.center); |
---|
| 783 | \draw<4-> [->] ([yshift=0.1cm]dummy5.center) -- ([yshift=0.1cm]box7.east); |
---|
| 784 | \draw<6-> [-] (dummy3.center) -- ([xshift=0.2cm, yshift=-0.1cm]dummy5.center); |
---|
| 785 | \draw<6-> [->] ([xshift=0.2cm, yshift=-0.1cm]dummy5.center) -- ([yshift=-0.1cm]box7.east); |
---|
| 786 | \draw<5-> [-] ([yshift=0.3cm]dummy2.center) -- (dummy2.center); |
---|
| 787 | \draw<5-> [->] (dummy2.center) -- (box7.west); |
---|
| 788 | \end{tikzpicture} |
---|
| 789 | \end{center} |
---|
| 790 | |
---|
| 791 | \begin{itemize} |
---|
| 792 | \footnotesize |
---|
| 793 | \item<7-> These files are used in the run/job. They are also used by restart jobs, which guarantees, that all jobs in a job chain are using the same information. Please never modify these directories, unless you exactly know, what you are doing. |
---|
| 794 | \end{itemize} |
---|
| 795 | \end{frame} |
---|
| 796 | |
---|
| 797 | \end{document} |
---|