1 | % $Id: runs_with_mrun.tex 1526 2015-01-22 12:47:21Z maronga $ |
---|
2 | \input{header_tmp.tex} |
---|
3 | %\input{../header_lectures.tex} |
---|
4 | |
---|
5 | \usepackage[utf8]{inputenc} |
---|
6 | \usepackage{ngerman} |
---|
7 | \usepackage{pgf} |
---|
8 | \usepackage{subfigure} |
---|
9 | \usepackage{units} |
---|
10 | \usepackage{multimedia} |
---|
11 | \usepackage{hyperref} |
---|
12 | \newcommand{\event}[1]{\newcommand{\eventname}{#1}} |
---|
13 | \usepackage{xmpmulti} |
---|
14 | \usepackage{tikz} |
---|
15 | \usetikzlibrary{shapes,arrows,positioning} |
---|
16 | \def\Tiny{\fontsize{4pt}{4pt}\selectfont} |
---|
17 | \usepackage{amsmath} |
---|
18 | \usepackage{amssymb} |
---|
19 | \usepackage{multicol} |
---|
20 | \usepackage{pdfcomment} |
---|
21 | \usepackage{graphicx} |
---|
22 | \usepackage{listings} |
---|
23 | \lstset{showspaces=false,language=fortran,basicstyle= |
---|
24 | \ttfamily,showstringspaces=false,captionpos=b,aboveskip=0pt,belowskip=0pt} |
---|
25 | |
---|
26 | \institute{Institute of Meteorology and Climatology, Leibniz UniversitÀt Hannover} |
---|
27 | \selectlanguage{english} |
---|
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 | } |
---|
44 | |
---|
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{PALM group} |
---|
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 | \footnotesize |
---|
64 | \begin{itemize} |
---|
65 | \item<1-> \texttt{mrun} (\textbf{m}odel \textbf{run}) is a shell script (using |
---|
66 | \texttt{bash}/\texttt{ksh}-syntax) which can be used to compile and run programs, including |
---|
67 | the handling of input/output files. |
---|
68 | \vspace{3mm} |
---|
69 | \item<2-> The \texttt{mrun}-command has a number of options to control the |
---|
70 | program execution\\ |
---|
71 | \vspace{3mm} |
---|
72 | \quad \texttt{mrun -d example\underline{ }cbl -h lcsgih -K parallel -X8 -T2 ...}\\ |
---|
73 | \vspace{3mm} |
---|
74 | All options including a short description can be displayed by entering\\ |
---|
75 | \vspace{3mm} |
---|
76 | \quad \texttt{mrun ?} |
---|
77 | \vspace{4mm} |
---|
78 | \item<3-> The shellscript execution is also controlled by a configuration file with default name \texttt{.mrun.config} |
---|
79 | \end{itemize} |
---|
80 | \end{frame} |
---|
81 | |
---|
82 | % Folie 3 |
---|
83 | \begin{frame} |
---|
84 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.1\textwidth, font=\tiny] |
---|
85 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.22\textwidth, font=\tiny] |
---|
86 | \tikzstyle{info} = [rectangle, text width=0.15\textwidth, font=\tiny] |
---|
87 | \tikzstyle{white} = [rectangle, text width=0.7\textwidth, font=\tiny] |
---|
88 | \tikzstyle{dummy} = [rectangle, text width=0.3\textwidth, font=\tiny] |
---|
89 | \tikzstyle{line} = [draw, -] |
---|
90 | \tikzstyle{alert} = [rectangle, draw, text width=0.77\textwidth, font=\scriptsize] |
---|
91 | |
---|
92 | \scriptsize |
---|
93 | \frametitle{Carrying Out Runs Using \texttt{mrun}} |
---|
94 | \textbf{Carrying out a program run typically needs two steps:}\\ |
---|
95 | \vspace{1mm} |
---|
96 | \quad 1. compilation\\ |
---|
97 | \qquad \texttt{f95 ... file1.f90 file2.f90 ...}\\ |
---|
98 | \vspace{1mm} |
---|
99 | \onslide<2->\quad 2. execution\\ |
---|
100 | \qquad \texttt{a.out}\\ |
---|
101 | \vspace{3mm} |
---|
102 | \onslide<3->\textbf{Besides, a program needs input data and creates output data:}\\ |
---|
103 | |
---|
104 | \onslide<4->\begin{tikzpicture}[auto, node distance=0] |
---|
105 | \node [green] (first) {\textbf{a.out/} }; |
---|
106 | \node [dummy, right=0.1cm of first] (second) {}; |
---|
107 | |
---|
108 | \node [yellow, above=0.4cm of second] (third) {\textbf{parameter for steering}}; |
---|
109 | \node [yellow, below=0.4cm of third] (fourth) {\textbf{control output}}; |
---|
110 | \node [yellow, below=0.3cm of fourth] (fifth) {\textbf{output for analysis}}; |
---|
111 | |
---|
112 | \node [info, above=-0.1cm of third] (sixth) {input file}; |
---|
113 | \node [info, above=-0.1cm of fourth] (seventh) {output file 1}; |
---|
114 | \node [info, above=-0.1cm of fifth] (eight) {output file 2}; |
---|
115 | |
---|
116 | \draw [->] (third.west) -- (first.north); |
---|
117 | \draw [->] (first.east) -- (fourth.west); |
---|
118 | \draw [->] (first.south) -- (fifth.west); |
---|
119 | |
---|
120 | \uncover<5->{\node [white, right=0.25cm of third] (ninth) { |
---|
121 | \texttt{OPEN (11, FILE='PARIN', FORM='FORMATTED')}};} |
---|
122 | \uncover<5->{\node [white, right=0.25cm of fourth] (tenth) { |
---|
123 | \texttt{OPEN (15, FILE='RUN\underline{ }CONTROL', FORM='FORMATTED')}};} |
---|
124 | \uncover<5->{\node [white, right=0.25cm of fifth] (eleventh) { |
---|
125 | \texttt{OPEN (40, FILE=âDATA\underline{ }1D\underline{ }PR\underline{ }NETCDF', FORM='FORMATTED')}};} |
---|
126 | \end{tikzpicture} |
---|
127 | |
---|
128 | \vspace{3mm} |
---|
129 | \scriptsize |
---|
130 | \onslide<6->\textcolor{red}{\textbf{Problems:} The user has to copy or rename output files, if |
---|
131 | he/she wants to run the program more than once and if he concurrently wants to keep |
---|
132 | the files from the former run(s). If he/she is using different input parameter files for steering, these files also have |
---|
133 | to be copied into the working directory before the program is executed.}\\ |
---|
134 | \vspace{1mm} |
---|
135 | \begin{tikzpicture}[auto, node distance=0] |
---|
136 | \uncover<7->{\node [alert] (alert) {\textcolor{red}{\textbf{It is therefore very desirable to automate these tasks!}}};} |
---|
137 | \end{tikzpicture} |
---|
138 | \end{frame} |
---|
139 | |
---|
140 | % Folie 4 |
---|
141 | \begin{frame} |
---|
142 | \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize] |
---|
143 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize] |
---|
144 | \tikzstyle{yellowsmall} = [rectangle, draw, fill=yellow!20, text width=0.10\textwidth, font=\scriptsize] |
---|
145 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\tiny] |
---|
146 | \scriptsize |
---|
147 | \frametitle{\texttt{mrun}: Principal Mode of Operation (I)} |
---|
148 | \texttt{mrun} \textbf{runs a program (in our case the PALM model) by carrying out the following principle tasks in a sequential order:}\\ |
---|
149 | \begin{enumerate} |
---|
150 | \tiny |
---|
151 | \item<2-> Create a temporary working directory and change into this directory:\\ |
---|
152 | \vspace{1.5mm} |
---|
153 | \scriptsize \quad \texttt{mkdir <tmpdir>/<username>.<randomnumber>}\\ |
---|
154 | \quad \texttt{cd <tmpdir>/<username>.<randomnumber>}\\ |
---|
155 | \tiny \ \\ |
---|
156 | The path of \texttt{<tmpdir>} is given in the configuration file |
---|
157 | \texttt{.mrun.config} by the environment variable \texttt{tmp\underline{ }user\underline{ }catalog}, e.g.:\\ |
---|
158 | \vspace{1.5mm} |
---|
159 | \scriptsize \quad \texttt{\%tmp\underline{ }user\underline{ }catalog /tmp \hspace{30mm} <hi> parallel}\\ |
---|
160 | \tiny \ \\ |
---|
161 | \onslide<3-> On Cray-XC30: \\ |
---|
162 | \vspace{1.5mm} |
---|
163 | \scriptsize \quad \texttt{\%tmp\underline{ }user\underline{ }catalog /gfs1/work/<username> |
---|
164 | \hspace{5mm} lcsgih parallel} |
---|
165 | \vspace{1mm} |
---|
166 | \begin{center} |
---|
167 | \begin{tikzpicture}[auto, node distance=0] |
---|
168 | \uncover<4->{\node [green] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
169 | \end{tikzpicture} |
---|
170 | \end{center} |
---|
171 | \vspace{2mm} |
---|
172 | \item<5-> \fontsize{7}{1} Copy the input files from a directory of the user into this working directory:\\ |
---|
173 | \vspace{1mm} |
---|
174 | \onslide<6-> \tiny \quad \texttt{cp <user\underline{ }input\underline{ }file1> |
---|
175 | /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }input\underline{ }file1>}\\ |
---|
176 | \quad \texttt{cp <user\underline{ }input\underline{ }file2> |
---|
177 | /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }input\underline{ }file2>}\\ |
---|
178 | \vspace{2mm} |
---|
179 | \scriptsize |
---|
180 | \begin{center} |
---|
181 | \begin{tikzpicture}[auto, node distance=0] |
---|
182 | |
---|
183 | \uncover<8->{\node [green] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
184 | |
---|
185 | \uncover<7->{\node [yellowsmall, above=0.1cm of green] (yellow2) {JOBS/};} |
---|
186 | \uncover<7->{\node [yellow, left=0.2cm of yellow2] (yellow1) {current\underline{ }version/};} |
---|
187 | \uncover<7->{\node [yellow, right=0.2cm of yellow2] (yellow3) {example\underline{ }cbl/};} |
---|
188 | \uncover<7->{\node [yellowsmall, right=0.2cm of yellow3] (yellow4) {INPUT/};} |
---|
189 | |
---|
190 | \draw<7-> [-] (yellow1.east) -- (yellow2.west); |
---|
191 | \draw<7-> [-] (yellow2.east) -- (yellow3.west); |
---|
192 | \draw<7-> [-] (yellow3.east) -- (yellow4.west); |
---|
193 | |
---|
194 | \node [dummy, right=0.06cm of yellow4] (dummy1) {}; |
---|
195 | \node [dummy, below=0.38cm of dummy1] (dummy2) {}; |
---|
196 | |
---|
197 | \draw<9-> [-] (yellow4.east) -- (dummy1.center); |
---|
198 | \draw<9-> [-] (dummy1.center) -- (dummy2.center); |
---|
199 | \draw<9-> [->] (dummy2.center) -- (green.east); |
---|
200 | |
---|
201 | \end{tikzpicture} |
---|
202 | \end{center} |
---|
203 | |
---|
204 | \end{enumerate} |
---|
205 | |
---|
206 | \end{frame} |
---|
207 | |
---|
208 | % Folie 5 |
---|
209 | \begin{frame} |
---|
210 | \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize, minimum height=0.6cm] |
---|
211 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
212 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
213 | |
---|
214 | \frametitle{\texttt{mrun}: Principal Mode of Operation (II)} |
---|
215 | |
---|
216 | \begin{enumerate} |
---|
217 | \setcounter{enumi}{2} |
---|
218 | \item<1-> Copy the pre-compiled routines to the temporary working directory:\\ |
---|
219 | |
---|
220 | \begin{center} |
---|
221 | \begin{tikzpicture}[auto, node distance=0] |
---|
222 | \uncover<2->{\node [yellow] (yellow) {current\underline{ }version/};} |
---|
223 | \uncover<1->{\node [dummy, right=0.0cm of yellow] (dummy1) {};} |
---|
224 | \uncover<2->{\node [green, right=0.2cm of yellow] (green1) {MAKE\underline{ }DEPOSITORY\underline{ }\textit{parallel}/};} |
---|
225 | \uncover<1->{\node [dummy, right=0.2cm of green1] (dummy2) {};} |
---|
226 | \uncover<3->{\node [green, below=0.5cm of dummy1] (green2) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
227 | \uncover<1->{\node [dummy, below=0.5cm of dummy2] (dummy3) {};} |
---|
228 | \uncover<4->{\node [dummy, right=0.0cm of dummy3] (text) {Makefile\\ |
---|
229 | *.f90\\ |
---|
230 | *.o\\ |
---|
231 | ...\\ \ \\};} |
---|
232 | |
---|
233 | \draw<2-> [-] (yellow.east) -- (green1.west); |
---|
234 | \draw<4-> [-] (green1.east) -- (dummy2.center); |
---|
235 | \draw<4-> [-] (dummy2.center) -- (dummy3.center); |
---|
236 | \draw<4-> [->] (dummy3.center) -- (green2.east); |
---|
237 | \end{tikzpicture} |
---|
238 | \end{center} |
---|
239 | |
---|
240 | \item<5-> Compile the main program and use pre-compiled object files:\\ |
---|
241 | \quad \texttt{f95 palm.f90 *.o ... ( make Makefile)} |
---|
242 | \item<6-> Execute the program:\\ |
---|
243 | \quad \texttt{a.out} |
---|
244 | \end{enumerate} |
---|
245 | \end{frame} |
---|
246 | |
---|
247 | % Folie 6 |
---|
248 | \begin{frame} |
---|
249 | \tikzstyle{green} = [rectangle, draw, fill=green!20, font=\scriptsize, minimum height=0.6cm] |
---|
250 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.2\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
251 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
252 | |
---|
253 | \frametitle{\texttt{mrun}: Principal Mode of Operation (III)} |
---|
254 | \footnotesize |
---|
255 | \begin{enumerate} |
---|
256 | \setcounter{enumi}{5} |
---|
257 | \item<1-> Copy the output files from the working directory to a (permanent) directory of the user:\\ |
---|
258 | \vspace{1mm} |
---|
259 | \tiny \quad \texttt{cp /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }output\underline{ }file1> <user\underline{ }output\underline{ }file1>}\\ |
---|
260 | \quad \texttt{cp /<tmpdir>/<username>.<randomnumber>/<temporary\underline{ }output\underline{ }file2> <user\underline{ }output\underline{ }file2>}\\ |
---|
261 | \footnotesize |
---|
262 | \begin{center} |
---|
263 | \begin{tikzpicture}[auto, node distance=0] |
---|
264 | \uncover<2->{\node [yellow] (yellow1) {MONITORING/ };} |
---|
265 | |
---|
266 | \uncover<2->{\node [dummy, right=0.2cm of yellow1] (dummy2) {};} |
---|
267 | \uncover<2->{\node [dummy, above=0.2cm of dummy2] (dummy1) {};} |
---|
268 | \uncover<2->{\node [dummy, below=0.2cm of dummy2] (dummy3) {};} |
---|
269 | |
---|
270 | \uncover<2->{\node [yellow, left=0.2cm of dummy3] (yellow2) {OUTPUT/};} |
---|
271 | \uncover<2->{\node [yellow, left=0.2cm of yellow2] (yellow3) {example\underline{ }cbl/};} |
---|
272 | \uncover<2->{\node [yellow, left=0.2cm of yellow3] (yellow4) {JOBS/};} |
---|
273 | \uncover<2->{\node [yellow, left=0.2cm of yellow4] (yellow5) {current\underline{ }version/};} |
---|
274 | |
---|
275 | \uncover<2-3>{\node [green, left=4.0cm of dummy1] (green) {/$<$tmpdir$>$/$<$username$>$.$<$randomnumber$>$};} |
---|
276 | |
---|
277 | \draw<2-3> [-] (green.east) -- (dummy1.center); |
---|
278 | \draw<2-3> [-] (dummy2.center) -- (dummy1.center); |
---|
279 | \draw<2-3> [-] (dummy3.center) -- (dummy1.center); |
---|
280 | |
---|
281 | \draw<2-3> [->] (dummy2.center) -- (yellow1.east); |
---|
282 | \draw<2-3> [->] (dummy3.center) -- (yellow2.east); |
---|
283 | |
---|
284 | \draw<2-> [-] (yellow2.west) -- (yellow3.east); |
---|
285 | \draw<2-> [-] (yellow3.west) -- (yellow4.east); |
---|
286 | \draw<2-> [-] (yellow4.west) -- (yellow5.east); |
---|
287 | |
---|
288 | \end{tikzpicture} |
---|
289 | \end{center} |
---|
290 | |
---|
291 | \item<3-> Delete the temporary working directory\\ |
---|
292 | \quad \texttt{rm -rf /<tmpdir>/<username>.<randomnumber>}\\ |
---|
293 | \vspace{2mm} |
---|
294 | \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?} |
---|
295 | |
---|
296 | \end{enumerate} |
---|
297 | \end{frame} |
---|
298 | |
---|
299 | % Folie 7 |
---|
300 | \begin{frame} |
---|
301 | \tikzstyle{small} = [rectangle, text width=0.08\textwidth, font=\scriptsize] |
---|
302 | \tikzstyle{large} = [rectangle, text width=0.45\textwidth, font=\scriptsize] |
---|
303 | \tikzstyle{box} = [rectangle, draw, text width=0.2\textwidth, font=\scriptsize] |
---|
304 | \tikzstyle{boxbig} = [rectangle, draw, text width=0.4\textwidth, font=\scriptsize] |
---|
305 | \tikzstyle{dummy} = [rectangle, text width=0.0\textwidth, font=\scriptsize, minimum height=0.5cm] |
---|
306 | |
---|
307 | \frametitle{Steering File Copy by the Configuration File (I)} |
---|
308 | \scriptsize |
---|
309 | \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.}\\ |
---|
310 | \vspace{3mm} |
---|
311 | Principle example of a file connection statement (for the PALM parameter file): |
---|
312 | \vspace{-3mm} |
---|
313 | \begin{center} |
---|
314 | \begin{tikzpicture}[auto, node distance=0] |
---|
315 | \uncover<1->{\node [small] (part1) {\texttt{PARIN}};} |
---|
316 | \uncover<1->{\node [dummy, left=-0.2cm of part1] (dummy1) {};} |
---|
317 | \uncover<1->{\node [dummy, below=1.25cm of dummy1] (dummy3) {};} |
---|
318 | \uncover<1->{\node [small, right=0.0cm of part1] (part2) {\quad \texttt{in}};} |
---|
319 | \uncover<1->{\node [dummy, right=0.0cm of part2] (dummy2) {};} |
---|
320 | \uncover<1->{\node [small, right=0.2cm of part2] (part3) {\texttt{d3\#}};} |
---|
321 | \uncover<1->{\node [large, right=0.0cm of part3] (part4) {\texttt{\~{}/palm/current\underline{ }version/JOB/INPUT}};} |
---|
322 | \uncover<1->{\node [small, right=0.0cm of part4] (part5) {\texttt{\underline{ }p3d}};} |
---|
323 | \uncover<1->{\node [small, right=0.2cm of part5] (part6) {\texttt{( \textcolor{red}{nc} )}};} |
---|
324 | |
---|
325 | \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)};} |
---|
326 | \draw<2-> [->] (dummy3.north) -- (dummy1.south); |
---|
327 | |
---|
328 | \uncover<3->{\node [box, below=0.7cm of part2] (box2) {file attributes};} |
---|
329 | \draw<3-> [->] (box2.north) -- (part2.south); |
---|
330 | |
---|
331 | \uncover<4->{\node [box, below=0.2cm of part3] (box3) {activating string};} |
---|
332 | \draw<4-> [->] (box3.north) -- (part3.south); |
---|
333 | |
---|
334 | \uncover<5->{\node [box, below=0.2cm of part4] (box4) {directory in which the permanent user file resides};} |
---|
335 | \draw<5-> [->] (box4.north) -- (part4.south); |
---|
336 | |
---|
337 | \uncover<6->{\node [box, below=0.2cm of part5] (box5) {suffix of the permanent filename};} |
---|
338 | \draw<6-> [->] (box5.north) -- (part5.south); |
---|
339 | |
---|
340 | \uncover<7->{\node [box, below=1.0cm of part6] (box6) {additional suffix for netCDF files};} |
---|
341 | \draw<7-> [->] (box6.north) -- (part6.south); |
---|
342 | \end{tikzpicture} |
---|
343 | \end{center} |
---|
344 | |
---|
345 | \end{frame} |
---|
346 | |
---|
347 | |
---|
348 | % Folie 8 |
---|
349 | \begin{frame} |
---|
350 | \tikzstyle{small} = [rectangle, text width=0.08\textwidth, font=\scriptsize] |
---|
351 | \tikzstyle{large} = [rectangle, text width=0.45\textwidth, font=\scriptsize] |
---|
352 | \tikzstyle{box} = [rectangle, draw, text width=0.2\textwidth, font=\scriptsize] |
---|
353 | \tikzstyle{boxbig} = [rectangle, draw, text width=0.4\textwidth, font=\scriptsize] |
---|
354 | \tikzstyle{dummy} = [rectangle, text width=0.0\textwidth, font=\scriptsize, minimum height=0.5cm] |
---|
355 | |
---|
356 | \frametitle{Steering File Copy by the Configuration File (II)} |
---|
357 | \scriptsize |
---|
358 | \begin{center} |
---|
359 | \begin{tikzpicture}[auto, node distance=0] |
---|
360 | \uncover<1->{\node [small] (part1) {\texttt{PARIN}};} |
---|
361 | \uncover<1->{\node [dummy, left=-0.2cm of part1] (dummy1) {};} |
---|
362 | \uncover<1->{\node [dummy, below=1.25cm of dummy1] (dummy3) {};} |
---|
363 | \uncover<1->{\node [small, right=0.0cm of part1] (part2) {\quad \texttt{in}};} |
---|
364 | \uncover<1->{\node [dummy, right=0.0cm of part2] (dummy2) {};} |
---|
365 | \uncover<1->{\node [small, right=0.2cm of part2] (part3) {\texttt{d3\#}};} |
---|
366 | \uncover<1->{\node [large, right=0.0cm of part3] (part4) {\texttt{\~{}/palm/current\underline{ }version/JOB/INPUT}};} |
---|
367 | \uncover<1->{\node [small, right=0.0cm of part4] (part5) {\texttt{\underline{ }p3d}};} |
---|
368 | \uncover<1->{\node [small, right=0.2cm of part5] (part6) {\texttt{( \textcolor{red}{nc} )}};} |
---|
369 | |
---|
370 | \uncover<1->{\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)};} |
---|
371 | \draw<1-> [->] (dummy3.north) -- (dummy1.south); |
---|
372 | |
---|
373 | \uncover<1->{\node [box, below=0.7cm of part2] (box2) {file attributes};} |
---|
374 | \draw<1-> [->] (box2.north) -- (part2.south); |
---|
375 | |
---|
376 | \uncover<1->{\node [box, below=0.2cm of part3] (box3) {activating string};} |
---|
377 | \draw<1-> [->] (box3.north) -- (part3.south); |
---|
378 | |
---|
379 | \uncover<1->{\node [box, below=0.2cm of part4] (box4) {directory in which the permanent user file resides};} |
---|
380 | \draw<1-> [->] (box4.north) -- (part4.south); |
---|
381 | |
---|
382 | \uncover<1->{\node [box, below=0.2cm of part5] (box5) {suffix of the permanent filename};} |
---|
383 | \draw<1-> [->] (box5.north) -- (part5.south); |
---|
384 | |
---|
385 | \uncover<1->{\node [box, below=1.0cm of part6] (box6) {additional suffix for netCDF files};} |
---|
386 | \draw<1-> [->] (box6.north) -- (part6.south); |
---|
387 | \end{tikzpicture} |
---|
388 | \end{center} |
---|
389 | \vspace{3mm} |
---|
390 | \onslide<2->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}:\\ |
---|
391 | \footnotesize \quad \texttt{mrun -d \textcolor{blue}{example\underline{ }cbl} ...}\\ |
---|
392 | \vspace{1mm} |
---|
393 | \scriptsize gives the filename\\ |
---|
394 | \vspace{1mm} |
---|
395 | \footnotesize \quad \texttt{\~{}/palm/current\underline{ }version/JOB/INPUT/\textcolor{blue}{example\underline{ }cbl}\underline{ }p3d}\\ |
---|
396 | \quad \texttt{( ... /\textcolor{blue}{example\underline{ }cbl}\underline{ }p3d\textcolor{red}{.nc} )} |
---|
397 | |
---|
398 | \end{frame} |
---|
399 | |
---|
400 | |
---|
401 | % Folie 9 |
---|
402 | \begin{frame} |
---|
403 | \frametitle{Steering File Copy by the Configuration File (III)} |
---|
404 | \tiny |
---|
405 | \onslide<1-> The \textbf{base name} can additionally be a part of the directory name |
---|
406 | by using \textcolor{blue}{\texttt{\$fname}} in the directory column of the file connection statement:\\ |
---|
407 | \vspace{1mm} |
---|
408 | \scriptsize\quad \texttt{PARIN in d3\# \~{}/palm/current\underline{ }version/JOBS/\textcolor{blue}{\$fname}/INPUT \underline{ }p3d}\\ |
---|
409 | \vspace{4mm} |
---|
410 | \onslide<2-> \tiny Using the call\\ |
---|
411 | \vspace{1mm} |
---|
412 | \scriptsize \quad \texttt{mrun -d \textcolor{blue}{abcde} ...}\\ |
---|
413 | \vspace{1mm} |
---|
414 | \tiny the input file will be expected under\\ |
---|
415 | \vspace{1mm} |
---|
416 | \scriptsize \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/\textcolor{blue}{abcde}/INPUT/\textcolor{blue}{abcde}\underline{ }p3d }\\ |
---|
417 | \vspace{4mm} |
---|
418 | \onslide<3-> \tiny In this way, all files handled by the \texttt{mrun}-call are stored in |
---|
419 | the same subdirectory (\textcolor{blue}{abcde/}) and will have the same string (\texttt{\textcolor{blue}{abcde}}) as |
---|
420 | part of their names, so they can be easily identified as \grqq belonging\grqq\, to the model |
---|
421 | run initiated by that \texttt{mrun} call.\\ |
---|
422 | \ \\ |
---|
423 | \onslide<4-> Instead of always writing the full path name (i.e. |
---|
424 | \texttt{\~{}/palm/current\underline{ }version/JOBS}), an environment variable can be declared for |
---|
425 | this at the beginning of the configuration file and be used in the file |
---|
426 | connection statements:\\ |
---|
427 | \vspace{1mm} |
---|
428 | \scriptsize \quad \texttt{\%base\underline{ }data \~{}/palm/current\underline{ }version/JOBS}\\ |
---|
429 | \quad \texttt{PARIN in d3\# \textcolor{blue}{\$base\underline{ }data}/\textcolor{blue}{\$fname}/INPUT \underline{ }p3d}\\ |
---|
430 | \ \\ |
---|
431 | \onslide<5-> \tiny This easily allows to change the directories for all input/output files |
---|
432 | by just changing the value of \texttt{base\underline{ }data}. |
---|
433 | |
---|
434 | \end{frame} |
---|
435 | |
---|
436 | % Folie 10 |
---|
437 | \begin{frame} |
---|
438 | \frametitle{Steering File Copy by the Configuration File (IV)} |
---|
439 | \tiny |
---|
440 | \onslide<1-> File connection statements which shall be carried out, |
---|
441 | have to be activated by giving their activation string in the |
---|
442 | \texttt{mrun}-option \texttt{-r}:\\ |
---|
443 | \vspace{1mm} |
---|
444 | \scriptsize \quad \texttt{PARIN in d3\# \~{}/palm/current\underline{ }version/JOBS/\$fname/INPUT \underline{ }p3d}\\ |
---|
445 | \ \\ |
---|
446 | \onslide<2-> \tiny The permanent file\\ |
---|
447 | \vspace{1mm} |
---|
448 | \scriptsize \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/INPUT/example\underline{ }cbl\underline{ }p3d} \\ |
---|
449 | \vspace{2mm} |
---|
450 | \tiny will only be copied to the local file PARIN by using the call:\\ |
---|
451 | \vspace{1mm} |
---|
452 | \scriptsize \quad \texttt{mrun -d example\underline{ }cbl -r \dq d3\#\dq\, ...}\\ |
---|
453 | \ \\ |
---|
454 | \onslide<3-> \tiny \textbf{Example for an output file:}\\ |
---|
455 | The file connection statement\\ |
---|
456 | \vspace{1mm} |
---|
457 | \scriptsize \quad \texttt{DATA\underline{ }1D\underline{ }PR\_NETCDF out:loc pr\# } \\ |
---|
458 | ~~~~~~\texttt{\~{}/palm/current\underline{ }version/JOBS/\$fname/OUTPUT \underline{ }pr nc}s\\ |
---|
459 | \vspace{2mm} |
---|
460 | \onslide<4-> \tiny will copy (after program execution) the local file \\ |
---|
461 | \texttt{DATA\underline{ }1D\underline{ }PR\underline{ }NETCDF} to the permanent file \\ |
---|
462 | \vspace{1mm} |
---|
463 | \scriptsize \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/OUTPUT/example\underline{ }cbl\underline{ }pr.nc}\\ |
---|
464 | \vspace{1mm} |
---|
465 | \tiny if \texttt{mrun} is called with the options\\ |
---|
466 | \vspace{1mm} |
---|
467 | \scriptsize \quad \texttt{mrun -d example\underline{ }cbl -r \dq d3\# pr\#\dq\, ...} |
---|
468 | |
---|
469 | \end{frame} |
---|
470 | |
---|
471 | % Folie 11 |
---|
472 | \begin{frame} |
---|
473 | \frametitle{Steering File Copy by the Configuration File (V)} |
---|
474 | \scriptsize |
---|
475 | \onslide<1-> \texttt{mrun} never replaces/overwrites existing files!\\ |
---|
476 | \ \\ |
---|
477 | \tiny Instead, new, so-called file cycles are created.\\ |
---|
478 | If an output file, e.g.\\ |
---|
479 | \vspace{1mm} |
---|
480 | \scriptsize \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/MONITORING/example\underline{ }cbl\underline{ }rc}\\ |
---|
481 | \ \\ |
---|
482 | \ \\ |
---|
483 | \tiny has been created from a first call of \texttt{mrun} and if the same \texttt{mrun} |
---|
484 | call is submitted again, the second call will not replace the file |
---|
485 | \texttt{example\underline{ }cbl\underline{ }rc}, but will create a new file with name:\\ |
---|
486 | \vspace{1mm} |
---|
487 | \scriptsize \quad \texttt{\~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/MONITORING/example\underline{ }cbl\underline{ }rc.1}\\ |
---|
488 | \ \\ |
---|
489 | \ \\ |
---|
490 | \onslide<2-> \tiny In case of netCDF-files, the file cycle number is inserted before |
---|
491 | the netCDF-suffix .nc, e.g.\\ |
---|
492 | \vspace{1mm} |
---|
493 | \scriptsize \quad \texttt{example\underline{ }cbl\underline{ }pr.1.nc}\\ |
---|
494 | \ \\ |
---|
495 | \ \\ |
---|
496 | \onslide<3-> \tiny The implemented file cycle mechanism does not allow to use |
---|
497 | any other dots "'."' in the path or filename:\\ |
---|
498 | \vspace{1mm} |
---|
499 | \scriptsize \quad \texttt{\~{}/palm/version\underline{ }3.6/JOBS/example.sbl/MONITORING/example.sbl\underline{ }rc}\\ |
---|
500 | \end{frame} |
---|
501 | |
---|
502 | % Folie 12 |
---|
503 | \begin{frame}[fragile] |
---|
504 | \frametitle{\normalsize File Connection Statements From the Default \texttt{.mrun.config} file} |
---|
505 | \begin{columns} |
---|
506 | \column{1.1\textwidth} |
---|
507 | \tiny |
---|
508 | \begin{lstlisting} |
---|
509 | #---------------------------------------------------------------------------- |
---|
510 | # List of input-files |
---|
511 | #---------------------------------------------------------------------------- |
---|
512 | PARIN in:job d3# $base_data/$fname/INPUT _p3d |
---|
513 | PARIN in:job d3f $base_data/$fname/INPUT _p3df |
---|
514 | TOPOGRAPHY_DATA in:locopt d3#:d3f $base_data/$fname/INPUT _topo |
---|
515 | NUDGING_DATA in:locopt d3#:d3f $base_data/$fname/INPUT _nudge |
---|
516 | LSF_DATA in:locopt d3#:d3f $base_data/$fname/INPUT _lsf |
---|
517 | BININ in:loc:flpe d3f $base_data/$fname/RESTART _d3d |
---|
518 | PARTICLE_RESTART_DATA_IN in:loc:flpe prtf $base_data/$fname/RESTART _rprt |
---|
519 | DATA_1D_PR_NETCDF in:locopt prf $base_data/$fname/OUTPUT _pr nc |
---|
520 | DATA_1D_SP_NETCDF in:locopt spf $base_data/$fname/OUTPUT _sp nc |
---|
521 | DATA_1D_TS_NETCDF in:locopt tsf $base_data/$fname/OUTPUT _ts nc |
---|
522 | DATA_1D_PTS_NETCDF in:locopt ptsf $base_data/$fname/OUTPUT _pts nc |
---|
523 | DATA_2D_XY_NETCDF in:locopt xyf $base_data/$fname/OUTPUT _xy nc |
---|
524 | DATA_2D_XY_AV_NETCDF in:locopt xyf $base_data/$fname/OUTPUT _xy_av nc |
---|
525 | DATA_2D_XZ_NETCDF in:locopt xzf $base_data/$fname/OUTPUT _xz nc |
---|
526 | DATA_2D_YZ_NETCDF in:locopt yzf $base_data/$fname/OUTPUT _yz nc |
---|
527 | DATA_3D_NETCDF in:locopt 3df $base_data/$fname/OUTPUT _3d nc |
---|
528 | DATA_PRT_NETCDF in:locopt:pe prtf $base_data/$fname/OUTPUT _prt |
---|
529 | # |
---|
530 | #---------------------------------------------------------------------------- |
---|
531 | # List of output-files |
---|
532 | #---------------------------------------------------------------------------- |
---|
533 | BINOUT out:loc:flpe restart $base_data/$fname/RESTART _d3d |
---|
534 | PARTICLE_RESTART_DATA_OUT out:loc:flpe prt#:prtf $base_data/$fname/RESTART _rprt |
---|
535 | # |
---|
536 | RUN_CONTROL out:loc:tr d3# $base_data/$fname/MONITORING _rc |
---|
537 | RUN_CONTROL out:loc:tra d3f $base_data/$fname/MONITORING _rc |
---|
538 | HEADER out:loc:tr d3# $base_data/$fname/MONITORING _header |
---|
539 | HEADER out:loc:tra d3f $base_data/$fname/MONITORING _header |
---|
540 | CPU_MEASURES out:loc:tr d3# $base_data/$fname/MONITORING _cpu |
---|
541 | CPU_MEASURES out:loc:tra d3f $base_data/$fname/MONITORING _cpu |
---|
542 | \end{lstlisting} |
---|
543 | \end{columns} |
---|
544 | |
---|
545 | |
---|
546 | \end{frame} |
---|
547 | |
---|
548 | % Folie 13 |
---|
549 | \begin{frame}[fragile] |
---|
550 | \frametitle{Additional Features of \texttt{mrun} (I)} |
---|
551 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.975\textwidth, font=\Tiny] |
---|
552 | \begin{itemize} |
---|
553 | \footnotesize |
---|
554 | \item<1-> Generating batch jobs on local \textbf{and} remote host. |
---|
555 | \item<2-> Setting of unix environment variables for job and model control (e.g. for determining compiler options, etc.). |
---|
556 | \item<3-> Values have to be set in the \texttt{mrun} configuration file \texttt{.mrun.config}: |
---|
557 | \end{itemize} |
---|
558 | \onslide<4-> |
---|
559 | \begin{center} |
---|
560 | \begin{tikzpicture} |
---|
561 | \node [yellow]{\begin{lstlisting} |
---|
562 | %tmp_user_catalog /gfs1/work/<replace by your HLRN-III username> lccrayh parallel |
---|
563 | %tmp_data_catalog /gfs1/work/<replace by your HLRN-III username> lccrayh parallel |
---|
564 | %compiler_name ftn lccrayh parallel |
---|
565 | %compiler_name_ser ftn lccrayh parallel |
---|
566 | %cpp_options -e:Z:-DMPI_REAL=MPI_DOUBLE_PRECISION:-DMPI_2REAL=MPI_2DOUBLE_PRECISION:... |
---|
567 | %mopts -j:4 lccrayh parallel |
---|
568 | %fopts -em:-O3:-hnoomp:-hfp3:-hdynamic lccrayh parallel |
---|
569 | %lopts -em:-O3:-hnoomp:-hfp3:-hdynamic:-dynamic lccrayh parallel |
---|
570 | %remote_username <replace by your HLRN-III username> lccrayh parallel |
---|
571 | %memory 2300 lccrayh parallel |
---|
572 | %modules fftw:cray-hdf5-parallel:cray-netcdf-hdf5parallel lccrayh parallel |
---|
573 | \end{lstlisting}}; |
---|
574 | \end{tikzpicture} |
---|
575 | \end{center} |
---|
576 | \end{frame} |
---|
577 | |
---|
578 | % Folie 14 |
---|
579 | \begin{frame}[fragile] |
---|
580 | \frametitle{Additional Features of \texttt{mrun} (II)} |
---|
581 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!30, text width=0.9\textwidth, font=\Tiny] |
---|
582 | |
---|
583 | \begin{itemize} |
---|
584 | \footnotesize |
---|
585 | \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). |
---|
586 | These commands can also be defined in the \texttt{mrun} configuration file: |
---|
587 | \onslide<2-> |
---|
588 | \begin{center} |
---|
589 | \begin{tikzpicture} |
---|
590 | \node [yellow]{\begin{lstlisting} |
---|
591 | IC:echo ``PALM will soon start to execute in \$PWD'' > /home/h/niksiraa/mrun_messages |
---|
592 | EC:ls -al |
---|
593 | OC:tar -cf DEBUG.tar DEBUG_* |
---|
594 | \end{lstlisting}}; |
---|
595 | \end{tikzpicture} |
---|
596 | \end{center} |
---|
597 | \item<3-> Automatic generation of restart jobs. |
---|
598 | \end{itemize} |
---|
599 | |
---|
600 | |
---|
601 | \end{frame} |
---|
602 | |
---|
603 | % Folie 15 |
---|
604 | \begin{frame}[fragile] |
---|
605 | \frametitle{PALM \textit{Interactive} Example Run Using \texttt{mrun}: Tracing the Run by the User} |
---|
606 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.35\textwidth, font=\tiny, minimum height=0.6cm] |
---|
607 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.35\textwidth, font=\tiny, minimum height=0.6cm] |
---|
608 | \tikzstyle{yellow_big} = [rectangle, draw, fill=yellow!20, text width=0.55\textwidth, font=\tiny, minimum height=0.6cm] |
---|
609 | \tikzstyle{notes} = [rectangle, text width=0.26\textwidth, font=\tiny, minimum height=0.6cm] |
---|
610 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\tiny, minimum height=0.6cm] |
---|
611 | \tikzstyle{green_term} = [rectangle, draw, fill=green!30, text width=0.83\textwidth, font=\Tiny,scale=0.6] |
---|
612 | \vspace{-1.0cm} |
---|
613 | \begin{center} |
---|
614 | \begin{tikzpicture}[auto, node distance=0] |
---|
615 | \uncover<1->{\node [yellow] (box1) {\textbf{start run on local machine:}\\ |
---|
616 | \texttt{mrun -d example\underline{ }cbl -h lcmuknb ...}};} |
---|
617 | \uncover<1->{\node [dummy, right=1.4cm of box1] (dummy1) {};} |
---|
618 | \uncover<2->{\node [notes, above=-0.3cm of dummy1] (notes1) {temporary working directory is created, all required files are copied there};} |
---|
619 | \uncover<3->{\node [green, right=1.4cm of dummy1] (box2) {\textbf{follow run messages on terminal}};} |
---|
620 | \uncover<4->{\node [green, below=0.5cm of box2] (box3) { |
---|
621 | \textbf{as soon as message} |
---|
622 | |
---|
623 | \texttt{*** execution starts in directory\\ \quad \dq <tmpdir>\dq\, }\\ |
---|
624 | \ \\ |
---|
625 | \textbf{you can change to this directory (in a new terminal) and watch the progess of timesteps} |
---|
626 | |
---|
627 | \texttt{cd <tmpdir>}\\ |
---|
628 | \texttt{tail -f RUN\underline{ }CONTROL}\\ |
---|
629 | \ \\ |
---|
630 | However, this might be difficult in case of short run times, because the run may have finished before you have entered the commands! |
---|
631 | };} |
---|
632 | \coordinate[below=0.3cm of box3] (A); |
---|
633 | \uncover<1->{\node [dummy, left=0.3cm of box3] (dummy2) {};} |
---|
634 | \uncover<6->{\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};} |
---|
635 | \uncover<7->{\node [yellow_big, left=2.5cm of A] (box4) { |
---|
636 | \textbf{check, if the output files have sucessfully been transferred to the permanent directory:}\\ |
---|
637 | \texttt{cd \~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/MONITORING}\\ |
---|
638 | \texttt{ls -al}\\ |
---|
639 | \texttt{cd \~{}/palm/current\underline{ }version/JOBS/example\underline{ }cbl/OUTPUT}\\ |
---|
640 | \texttt{ls -al} |
---|
641 | };} |
---|
642 | \draw<2-> [->,color=blue] (box1.east) -- (box2.west); |
---|
643 | \draw<4-> [->,color=blue] (box2.south) -- (box3.north); |
---|
644 | \draw<6-> [-,color=blue] (box3.south) -- (A); |
---|
645 | \draw<6-> [->,color=blue] (A) -- (box4.east); |
---|
646 | \onslide<5->\node [green_term, left=1.2cm of box3] (terminal) {\begin{lstlisting} |
---|
647 | *** running on: laptop laptop |
---|
648 | |
---|
649 | ... reading environment parameters from ENVPAR --- finished |
---|
650 | ... reading NAMELIST parameters from PARIN --- finished |
---|
651 | ... creating virtual PE grids + MPI derived data types --- finished |
---|
652 | ... checking parameters --- finished |
---|
653 | ... allocating arrays --- finished |
---|
654 | ... initializing with constant profiles --- finished |
---|
655 | ... initializing statistics, boundary conditions, etc. --- finished |
---|
656 | ... creating initial disturbances --- finished |
---|
657 | ... calling pressure solver --- finished |
---|
658 | --- leaving init_3d_model |
---|
659 | --- start with time-stepping |
---|
660 | |
---|
661 | [XXXXXXXXXXXXXXXXXXXXXXXXXXXX________________________________] 53.3 left |
---|
662 | \end{lstlisting} |
---|
663 | }; |
---|
664 | \uncover<5->{\node [notes, above=0.0cm of terminal, text width=0.55\textwidth] (notes_terminal) {Starting from version 3.10 (r 1402), some progress messages and a progress bar for estimating the time required to finish the simulation is output on the terminal};} |
---|
665 | %\draw<5-> [->,color=blue] (box3.west) -- (terminal.east); |
---|
666 | \onslide<1-> |
---|
667 | \end{tikzpicture} |
---|
668 | \end{center} |
---|
669 | \end{frame} |
---|
670 | |
---|
671 | % Folie 16 |
---|
672 | \begin{frame} |
---|
673 | \frametitle{PALM \textit{Batch} Example Run (on HLRN, remote) Using \texttt{mrun}: Tracing the Run by the User} |
---|
674 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.3\textwidth, font=\Tiny] |
---|
675 | \tikzstyle{yellow2} = [rectangle, draw, fill=yellow!20, text width=0.4\textwidth, font=\Tiny] |
---|
676 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.4\textwidth, font=\Tiny] |
---|
677 | \tikzstyle{dummy} = [text width=0.2\textwidth, font=\Tiny] |
---|
678 | \tikzstyle{alert} = [rectangle, draw, text width=0.5\textwidth, font=\scriptsize] |
---|
679 | \tikzstyle{line} = [draw, -latex'] |
---|
680 | \begin{itemize} |
---|
681 | \item \small Reminder: Running batch jobs requires a directory \texttt{~/job\underline{ }queue} for the job protocol files on the local \underline{and} remote host. |
---|
682 | \end{itemize} |
---|
683 | \begin{tikzpicture}[auto, node distance=0] |
---|
684 | \node [yellow] (first) { |
---|
685 | \textbf{start job on local machine:}\\ |
---|
686 | \texttt{mrun -d example\underline{ }cbl -h lccrayh ...} |
---|
687 | }; |
---|
688 | \uncover<2->{ |
---|
689 | \node [dummy, right=0.5cm of first] (dummy) { |
---|
690 | transfer of job by \texttt{scp} \\ |
---|
691 | \ \\ |
---|
692 | \ \\ |
---|
693 | submit of job by executing the \texttt{msub} command via \texttt{ssh} |
---|
694 | }; |
---|
695 | } |
---|
696 | \uncover<3->{ |
---|
697 | \node [green, right=3.5cm of first] (second) { |
---|
698 | \textbf{follow job execution on remote host, by} \\ |
---|
699 | \texttt{showq} (better: \texttt{showq | grep hzkurs}) |
---|
700 | }; |
---|
701 | } |
---|
702 | \uncover<4->{ |
---|
703 | \node [green, below=0.2cm of second] (third) { |
---|
704 | \textbf{if job is running, you may follow its progress by watching the job protocol (does not work on HLRN-III system!):} \\ |
---|
705 | \texttt{cd \~{}/job\underline{ }queue \\ tail lcmuk\underline{ }example\underline{ }cbl} |
---|
706 | }; |
---|
707 | } |
---|
708 | \uncover<5->{ |
---|
709 | \node [green, below=0.2cm of third] (fourth) { |
---|
710 | \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}\\ |
---|
711 | \texttt{tail -f RUN\underline{ }CONTROL} |
---|
712 | }; |
---|
713 | } |
---|
714 | \uncover<6->{ |
---|
715 | \node [green, below=0.2cm of fourth] (fifth) { |
---|
716 | \textbf{when the job is finished, watch, if the job protocol is transferred to the local host without errors:}\\ |
---|
717 | \texttt{cd \~{}/job\underline{ }queue \\ cat last\underline{ }job\underline{ }transfer\underline{ }protocol} |
---|
718 | }; |
---|
719 | } |
---|
720 | \uncover<7->{ |
---|
721 | \node [dummy, left=0.001mm of fifth] (dummy) { |
---|
722 | transfer results by \texttt{scp} \\ |
---|
723 | \ \\ |
---|
724 | \ \\ |
---|
725 | }; |
---|
726 | } |
---|
727 | \uncover<8->{ |
---|
728 | \node [yellow2, left=2.5cm of fifth] (sixth) { |
---|
729 | \textbf{check, if the job protocol and all output files have successfully been transferred to the local machine:}\\ |
---|
730 | \texttt{cd \~{}/job\_queue \\ ls -al \\ cd \~{}/palm/current\_version/JOBS/example \\ ls -al *} |
---|
731 | }; |
---|
732 | } |
---|
733 | \uncover<9->{ |
---|
734 | \node [alert, below=0.5cm of first.south east] (alert) { |
---|
735 | \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 \textbf{mrun} and \textbf{subjob} script!} |
---|
736 | }; |
---|
737 | } |
---|
738 | \path<2-> [line] (first) -- (second); |
---|
739 | \path<4-> [line] (second) -- (third); |
---|
740 | \path<5-> [line] (third) -- (fourth); |
---|
741 | \path<6-> [line] (fourth) -- (fifth); |
---|
742 | \path<7-> [line] (fifth) -- (sixth); |
---|
743 | \end{tikzpicture} |
---|
744 | \end{frame} |
---|
745 | |
---|
746 | |
---|
747 | |
---|
748 | % Folie 17 |
---|
749 | \begin{frame} |
---|
750 | \tikzstyle{green} = [rectangle, draw, fill=green!20, text width=0.45\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
751 | \tikzstyle{green_small} = [rectangle, draw, fill=green!20, text width=0.12\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
752 | \tikzstyle{yellow_small} = [rectangle, draw, fill=yellow!20, text width=0.1\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
753 | \tikzstyle{yellow} = [rectangle, draw, fill=yellow!20, text width=0.18\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
754 | \tikzstyle{dummy} = [rectangle, text width=0.01\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
755 | \tikzstyle{notes} = [rectangle, text width=0.15\textwidth, font=\scriptsize, minimum height=0.6cm] |
---|
756 | |
---|
757 | \frametitle{PALM Runs Using \texttt{mrun}: Further Details} |
---|
758 | \begin{itemize} |
---|
759 | \footnotesize |
---|
760 | \item<2-> For every (initial) run, \texttt{mrun} creates a source directory which contains copies of |
---|
761 | \begin{itemize} |
---|
762 | \footnotesize |
---|
763 | \item<4-> those source code files to be translated (always the main program, \texttt{palm.f90}, plus user interface files) |
---|
764 | \item<4-> the Makefile |
---|
765 | \item<5-> the configuration file |
---|
766 | \item<6-> the mrun script |
---|
767 | \end{itemize} |
---|
768 | \end{itemize} |
---|
769 | |
---|
770 | \vspace{-0.8cm} |
---|
771 | \begin{center} |
---|
772 | \begin{tikzpicture}[auto, node distance=0] |
---|
773 | |
---|
774 | \uncover<3->{\node [yellow_small] (box1) {\$HOME/};} |
---|
775 | \uncover<3->{\node [yellow_small, right=0.2cm of box1] (box2) {palm/};} |
---|
776 | \uncover<3->{\node [yellow, right=0.2cm of box2] (box3) {current\underline{ }version/};} |
---|
777 | \uncover<3->{\node [green_small, right=0.4cm of box3] (box4) {trunk/};} |
---|
778 | |
---|
779 | \uncover<1->{\node [dummy, right=1.0cm of box4] (dummy1) {};} |
---|
780 | |
---|
781 | \uncover<3->{\node [green_small, above=-0.2cm of dummy1] (box5) {SCRIPTS};} |
---|
782 | \uncover<3->{\node [green_small, below=-0.2cm of dummy1] (box6) {SOURCE};} |
---|
783 | |
---|
784 | \uncover<6->{\node [notes, right=0.1cm of box5] (notes1) {\texttt{mrun}};} |
---|
785 | \uncover<4->{\node [notes, right=0.1cm of box6] (notes2) {\texttt{Makefile \\ palm.f90}};} |
---|
786 | \uncover<5->{\node [notes, below=0.1cm of box3] (notes3) {\texttt{.mrun.config}};} |
---|
787 | |
---|
788 | \uncover<3->{\node [green, below=0.2cm of box6] (box7) {SOURCES\underline{ }FOR\underline{ }RUN\underline{ }$<$run\underline{ }identifier$>$};} |
---|
789 | |
---|
790 | \uncover<1->{\node [dummy, left=1.5cm of box7] (dummy2) {};} |
---|
791 | \uncover<1->{\node [dummy, right=2.0cm of box5] (dummy3) {};} |
---|
792 | \uncover<1->{\node [dummy, right=1.8cm of box6] (dummy4) {};} |
---|
793 | \uncover<1->{\node [dummy, below=0.2cm of dummy4] (dummy5) {};} |
---|
794 | \draw<3-> [-] (box1.east) -- (box2.west); |
---|
795 | \draw<3-> [-] (box2.east) -- (box3.west); |
---|
796 | \draw<3-> [-] (box3.east) -- (box4.west); |
---|
797 | \draw<3-> [-] (box4.east) -- (box5.west); |
---|
798 | \draw<3-> [-] (box4.east) -- (box6.west); |
---|
799 | \draw<3-> [-] (box3.east) -- (box7.west); |
---|
800 | \draw<6-> [-] ([xshift=-0.8cm]notes1.east) -- (dummy3.center); |
---|
801 | \draw<4-> [-] ([xshift=-0.4cm]notes2.east) -- (dummy4.center); |
---|
802 | \draw<4-> [-] (dummy4.center) -- ([yshift=0.1cm]dummy5.center); |
---|
803 | \draw<4-> [->] ([yshift=0.1cm]dummy5.center) -- ([yshift=0.1cm]box7.east); |
---|
804 | \draw<6-> [-] (dummy3.center) -- ([xshift=0.2cm, yshift=-0.1cm]dummy5.center); |
---|
805 | \draw<6-> [->] ([xshift=0.2cm, yshift=-0.1cm]dummy5.center) -- ([yshift=-0.1cm]box7.east); |
---|
806 | \draw<5-> [-] ([yshift=0.3cm]dummy2.center) -- (dummy2.center); |
---|
807 | \draw<5-> [->] (dummy2.center) -- (box7.west); |
---|
808 | \end{tikzpicture} |
---|
809 | \end{center} |
---|
810 | |
---|
811 | \begin{itemize} |
---|
812 | \footnotesize |
---|
813 | \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. |
---|
814 | \end{itemize} |
---|
815 | \end{frame} |
---|
816 | |
---|
817 | |
---|
818 | % Folie 17 |
---|
819 | \begin{frame} |
---|
820 | \footnotesize \texttt{mrun} |
---|
821 | \frametitle{PALM Runs Using \texttt{mrun}: most important \texttt{mrun} options} |
---|
822 | \begin{itemize} |
---|
823 | \footnotesize |
---|
824 | \item<2-> \texttt{-d example\_cbl} |
---|
825 | \begin{itemize} |
---|
826 | \item[] \tiny run identifier, basefile/directory name of all data files of this run |
---|
827 | \end{itemize} |
---|
828 | \item<3-> \texttt{-h} host identifier |
---|
829 | \begin{itemize} |
---|
830 | \item[] \tiny host on which the run shall be performed (reminder: this is not the UNIX hostname):\\ \texttt{lcmuknb, lcmuk, lccrayh...} |
---|
831 | \end{itemize} |
---|
832 | \item<4-> \texttt{-K parallel} |
---|
833 | \begin{itemize} |
---|
834 | \item[] \tiny run in parallel on several processor cores |
---|
835 | \end{itemize} |
---|
836 | \item<5-> \texttt{-X 4} |
---|
837 | \begin{itemize} |
---|
838 | \item[] \tiny number of processors to be used |
---|
839 | \end{itemize} |
---|
840 | \item<6-> \texttt{-T 4} |
---|
841 | \begin{itemize} |
---|
842 | \item[] \tiny number of tasks to be started on one node of the computer |
---|
843 | \end{itemize} |
---|
844 | \item<7-> \texttt{-t 100} |
---|
845 | \begin{itemize} |
---|
846 | \item[] \tiny CPU time allowed to be used for the batch jobs |
---|
847 | \end{itemize} |
---|
848 | \item<8-> \texttt{-b} |
---|
849 | \begin{itemize} |
---|
850 | \item[] \tiny run in batch mode |
---|
851 | \end{itemize} |
---|
852 | \item<9-> \texttt{-q mpp1q} |
---|
853 | \begin{itemize} |
---|
854 | \item[] \tiny batch job queue |
---|
855 | \end{itemize} |
---|
856 | \item<10-> \texttt{-r \dq ...\dq} |
---|
857 | \begin{itemize} |
---|
858 | \item[] \tiny activation strings |
---|
859 | \end{itemize} |
---|
860 | \end{itemize} |
---|
861 | \end{frame} |
---|
862 | \end{document} |
---|