\begin{frame}[fragile]{Run it on biocluster}
\begin{minted}{shell}
-for a in SRX*/Makefile; do
- (cd $(dirname $a);
- MAKE_TARGET=call qsub -q default \
- -v MAKE_TARGET -S /bin/bash \
- -d "$(pwd)" -l "nodes=1:ppn=8,mem=70G" \
- ~donarm/uiuc_igb_scripts/run_make
- );
-done;
-\end{minted} %$
+~donarm/uiuc_igb_scripts/dqsub --mem 70G \
+ --ppn 8 make call;
+\end{minted}
\begin{itemize}
-\item Use qsub and some shell scripting to run everything
-\item Uses a special script which calls make with a specific target
+\item dqsub is my own qsub wrapper which avoids me having to write
+ little scripts for everything
+\item \url{http://git.donarmstrong.com/?p=uiuc_igb_scripts.git;a=blob;f=dqsub}
\end{itemize}
\end{frame}
\subsection{Timestamps}
\begin{frame}{Dealing with timestamps}
+ \begin{itemize}
+ \item Make builds things on the basis of timestamps
+ \item But what if the contents haven't changed and it's expensive to
+ rebuild?
+ \item Use md5sum!
+ \end{itemize}
+\begin{minted}[showtabs,breaklines]{make}
+TARGET: PREREQ1 PREREQ1
+ if [ -e $@.target.md5sum ] && [ -e $@ ] && \
+ md5sum --status --check $@.target.md5sum; \
+ then \
+ touch $@; \
+ else \
+ RECIPE FOR $@; \
+ md5sum $^ > $@.target.md5sum; \
+ fi;
+\end{minted}
\end{frame}
\subsection{Complicated Workflows}