\movedUpBody{-0.75in}{\Brown{Races}}
\vspace{0.5in}
\begin{center}
	\begin{figure*}
	\epsfxsize=7.0in
	\centerline{\epsfbox{Figures/16.eps}}
	\end{figure*}
\end{center}
\begin{tabbing}
xxxxxx\= xxxxx\=\kill
\> A {\bf race\/} occurs when two processes can concurrently access \\
\> the same shared resource.\\ \\
\> Example: concurrent writes to a shared file 
\end{tabbing}

%-------------------------------------------------------------------------------
\movedUpBody{-0.75in}{\Brown{Re-execution Techniques}}
\vspace{0.3in}
	\begin{figure*}
	\epsfxsize=7.5in
	\centerline{\epsfbox{Figures/215.eps}}
	\end{figure*}

%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Controlled Re-execution}}
\vspace{0.5in}
\begin{center}
	\begin{figure*}
	\epsfxsize=7.5in
	\centerline{\epsfbox{Figures/216.eps}}
	\end{figure*}
\vspace{0.2in}
\begin{tabbing}
xxxxxx\= xxxxx\=\kill
\> $\bullet$ {\em Guarantees\/} a race-free re-execution, except if there is\\
\> $\mbox{\hspace{12pt}}$ a cycle in the interval graph.\\[0.3in]
\> $\bullet$ {Assumptions:}\\[0.1in]
\>\> $-$ Synchronizations and shared resource accesses can be traced.\\[0.1in]
\>\> $-$ {\em Piece-wise determinism.\/}\\[0.1in]
\>\> $-$ Shared resources are write-only.
\end{tabbing}
\end{center}

%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Experiments}}
\vspace{0.2in}
\begin{center}
\begin{tabbing}
xxxxxx\= xxxxx\= xxx\= \kill
\> {\bf Aim:}\\
\>\> $\bullet$ To evaluate controlled re-execution with respect to simple and \\
\>\> \hspace{0.3in} locked re-execution.\\[0.3in]
\> {\bf Setting:}\\
\>\> $\bullet$ Cluster of 4 Sun Ultra10 workstations running Solaris \\
\>\> $\bullet$ Synchronization: blocking message passing using MPI\\
\>\> $\bullet$ Shared resources: files in a network file system\\
\>\> $\bullet$ Shared accesses: synchronous writes
\end{tabbing}
\end{center}
%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Experiments}}
\vspace{0.2in}
\begin{center}
\begin{tabbing}
xxxxxx\= xxxxx\= xxx\= \kill
\> {\bf Applications:}\\
\>\> $\bullet$ Synthetically generated MPI applications.\\
\>\> $\bullet$ Parameters based on NPB 2.1 Parallel Benchmark.\\
\>\> $\bullet$ Randomly generated communication and file access patterns.\\
\>\> $\bullet$ Models long-running, non-interactive applications.\\[0.2in]
\> {\bf Parameters:}\\
\>\> $\bullet$ mean communication period. \\
\>\> $\bullet$ mean file access period. \\[0.2in]
\> {\bf Metrics:}\\
\>\> $\bullet$ Tracing cost: time and space.\\
\>\> $\bullet$ Mean time to failure for:\\
\>\>\> $-$ races in simple re-execution\\
\>\>\> $-$ deadlocks in locked re-execution\\
\>\>\> $-$ cycles in controlled re-execution
\end{tabbing}
\end{center}
%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Tracing Cost}}
\vspace{0.6in}
\input{trace-cost.tex}
\vspace{0.7in}
\begin{tabbing}
xxxxxxxxxxx\= xxxxx\= xxxx\= \kill
\> {\bf Time :} \>\>Less than 1\% overhead\\
\> {\bf Space:} \>\>Less than 3 MB/hour
\end{tabbing}

%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Results}}
\vspace{0.2in}
\begin{center}
	\begin{figure*}
	\epsfxsize=6.5in
	\centerline{\epsfbox{Figures/graph1.ps}}
	\end{figure*}
\end{center}
%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Results}}
\vspace{0.2in}
\begin{center}
	\begin{figure*}
	\epsfxsize=6.5in
	\centerline{\epsfbox{Figures/graph1.lin.ps}}
	\end{figure*}
\end{center}
%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Results}}
\vspace{0.2in}
\begin{center}
	\begin{figure*}
	\epsfxsize=6.5in
	\centerline{\epsfbox{Figures/graph2.ps}}
	\end{figure*}
\end{center}
%-------------------------------------------------------------------------------

\movedUpBody{-0.75in}{\Brown{Comparing Re-execution Approaches}}
\vspace{0.9in}
\begin{tabbing}
xxxxxx\= xxxxx\= xxx\= \kill
\> $\bullet$ {\bf Advantages of Controlled Re-execution:}\\[0.2in]
\>\> $-$ Ability to recover\\[0.1in]
\>\> $-$ Guarantee \\[0.4in]
\> $\bullet$ {\bf Disadvantages of Controlled Re-execution:}\\[0.2in]
\>\> $-$ Tracing\\[0.1in]
\>\> $-$ Piece-wise determinism assumption
\end{tabbing}

%-------------------------------------------------------------------------------
