%
% $Id: SANDExampleReportstrict.tex,v 1.21 2006/10/04 00:32:14 rolf Exp $
%
% This is an example LaTeX file which uses the SANDreport class file.
% It shows how a SAND report should be formatted, what sections and
% elements it should contain, and how to use the SANDreport class.
% It uses the LaTeX report class and the strict option.
%
% Get the latest version of the class file and more at
%    http://www.cs.sandia.gov/~rolf/SANDreport
%
% This file and the SANDreport.cls file are based on information
% contained in "Guide to Preparing {SAND} Reports", Sand98-0730, edited
% by Tamara K. Locke, and the newer "Guide to Preparing SAND Reports and
% Other Communication Products", SAND2002-2068P.
% Please send corrections and suggestions for improvements to
% Rolf Riesen, Org. 9223, MS 1110, rolf@cs.sandia.gov
%
% \documentclass[pdf,ps2pdf,12pt,report,strict]{SANDreport}
\documentclass[12pt]{SANDreport}
\usepackage{moreverb}
\usepackage{epsfig}
\usepackage{amsfonts}
\usepackage[boxed]{algorithm2e}
% \usepackage{graphicx}
\usepackage{mathptmx}	% Use the Postscript Times font
\usepackage[FIGBOTCAP,normal,bf,tight]{subfigure}

% \usepackage[light]{draftcopy}
% \draftcopyName{\today - DRAFT}{60}

% If you want to relax some of the SAND98-0730 requirements, use the "relax"
% option. It adds spaces and boldface in the table of contents, and does not
% force the page layout sizes.
% e.g. \documentclass[relax,12pt]{SANDreport}
%
% You can also use the "strict" option, which applies even more of the
% SAND98-0730 guidelines. It gets rid of section numbers which are often
% useful; e.g. \documentclass[strict]{SANDreport}


% ---------------------------------------------------------------------------- %
%
% Set the title, author, and date
%
\title{Trilinos ThreadPool Library v1.1}

\author{H. Carter Edwards \\
	hcedwar@sandia.gov \\
	Computational Simulation Infrastructure \\
	Sandia National Laboratories\\
	P.O. Box 5800\\
	Albuquerque, NM 87185 \\
}

    % There is a "Printed" date on the title page of a SAND report, so
    % the generic \date should generally be empty.
    \date{}


% ---------------------------------------------------------------------------- %
% Set some things we need for SAND reports. These are mandatory
%
\SANDnum{SAND2009-8196}
\SANDprintDate{December 2009}
\SANDauthor{H. Carter Edwards}

% ---------------------------------------------------------------------------- %
% Include the markings required for your SAND report. The default is "Unlimited
% Release". You may have to edit the file included here, or create your own
% (see the examples provided).
%
% \include{MarkUR} % Not needed for unlimted release reports


% ---------------------------------------------------------------------------- %
% The following definition does not have a default value and will not
% print anything, if not defined
%
% \SANDsupersed{SAND1901-0001}{January 1901}
% ---------------------------------------------------------------------------- %
% New commands

\newenvironment{blist}%
  {\begin{list}{$\bullet$}{\setlength{\topsep}{0.5ex} \setlength{\itemsep}{0.5ex}\setlength{\parsep}{0pt}}}%
  {\end{list}}

\newcommand{\itemB}{\item[$\bullet$]}

\newcommand{\arrowlabel}[1]{\stackrel{\mbox{\scriptsize \it #1}}{\longrightarrow}}

% ---------------------------------------------------------------------------- %
%
% Start the document
%
\begin{document}
\maketitle

% ------------------------------------------------------------------------ %
% An Abstract is required for SAND reports
%
\begin{abstract}
\vspace{-1em}
%
A ``manycore revolution'' is underway in high performance computing (HPC) to move from model of interconnected single-core nodes with a single thread of execution to many-core nodes with many threads execution 
\cite{SciDAC:ManycoreRevolution:WebSite}. 
%
This revolution leaves HPC application programmers with the challenge of maximizing parallel performance at both the interconnect level (\emph{i.e.} process parallelism) and the manycore level (\emph{i.e.} thread parallelism).
%
The ThreadPool library has been developed within the Trilinos Project \cite{Trilinos:ACM} to provide HPC applications with a simple interface to make effective use of thread parallelism on CPU-based manycore nodes.
%
\end{abstract}

% ------------------------------------------------------------------------ %
% An Acknowledgement section is optional but important, if someone made
% contributions or helped beyond the normal part of a work assignment.
% Use \section* since we don't want it in the table of context
%
%\clearpage
%\chapter*{Acknowledgment}

% ------------------------------------------------------------------------ %
% The table of contents and list of figures and tables
% Comment out \listoffigures and \listoftables if there are no
% figures or tables. Make sure this starts on an odd numbered page
%
\cleardoublepage		% TOC needs to start on an odd page
\tableofcontents
\listoffigures
\listofalgorithms
% \listoftables

% ---------------------------------------------------------------------- %
% An optional preface or Foreword
%\clearpage
%\chapter*{Preface}
%\addcontentsline{toc}{chapter}{Preface}

% ---------------------------------------------------------------------- %
% An optional executive summary
%\clearpage
%\chapter*{Summary}
%\addcontentsline{toc}{chapter}{Summary}

% ---------------------------------------------------------------------- %
% An optional glossary. We don't want it to be numbered
%\clearpage
%\chapter*{Nomenclature}
%\addcontentsline{toc}{chapter}{Nomenclature}
%\begin{description}
%\item[*]
%\end{description}

% ---------------------------------------------------------------------- %
% This is where the body of the report begins; usually with an Introduction
%
\SANDmain		% Start the main part of the report

\input{ThreadPool_Intro.tex}
\input{ThreadPool_API.tex}
\input{ThreadPool_Implementation.tex}
\input{ThreadPool_Performance.tex}
\input{ThreadPool_Conclusion.tex}

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

\bibliographystyle{plain}
\bibliography{References}  

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

\begin{SANDdistribution}[NM]
    % Housekeeping copies necessary for every unclassified report:
    % \SANDdistCRADA	% If this report is about CRADA work
    % \SANDdistPatent	% If this report has a Patent Caution or Patent Interest
    % \SANDdistLDRD	% If this report is about LDRD work

    % Some external Addresses
    %\SANDdistExternal{1}{An Address\\ 99 $99^{th}$ street NW\\City, State}
    %\SANDdistExternal{3}{Some Address\\ and street\\City, State}
    %\SANDdistExternal{12}{Another Address\\ On a street\\City, State\\U.S.A.}
    %\bigskip


    % The following MUST BE between the external and internal distributions!
    % \SANDdistClassified % If this report is classified


    % Internal Addresses
    \SANDdistInternal{1}{0380}{David E. Womble}{01540}
    \SANDdistInternal{1}{0832}{Ted D. Blacker}{01543}
    \SANDdistInternal{1}{0382}{H. Carter Edwards}{01543}
    \SANDdistInternal{1}{0382}{Michael W. Glass}{01543}
    \SANDdistInternal{1}{0382}{Alan B. Williams}{01543}
    \SANDdistInternal{1}{1320}{S. Scott Collis}{01416}
    \SANDdistInternal{1}{1320}{Michael Heroux}{01416}


    % Example of a mail channel use (instead of a mail stop)
    %\SANDdistInternalM{1}{M9999}{Someone}{01234}

\end{SANDdistribution}

\end{document}
