
\documentstyle[11pt,twocolumn]{article}

\setlength{\oddsidemargin}{0in}
\setlength{\evensidemargin}{0in}
\setlength{\topmargin}{-0.3in}
\setlength{\headheight}{0in}
\setlength{\headsep}{0in}
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{9.8in}
\setlength{\parindent}{0in}
\setlength{\parskip}{0.1in}
\setlength{\columnseprule}{0.4pt} 

\begin{document}

\bf
Name:

\hfill $\underline{ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }$
% \_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_
\rm
\bigskip

{\bf Directions:} Work on this sheet (both sides, if needed) only; {\bf
do not turn in any supplementary sheets of paper}.  In order to get full
credit, SHOW YOUR WORK.  Please KEEP YOUR EXAM SHEET COVERED at all
times.  

\normalsize\rm

{\bf 1.}  (10) Fill in the blank:  The term used to indicate how small
or how large tasks are in a given parallel processing application is
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_.

{\bf 2.}  (20) This question is about topological embeddings, in the sense
used in our text.  In which (r,c)-node mesh topologies can we embed
an n-node ring topology, where the notation (r,c) means r rows, c
columns and n = rc.

{\bf 3.}  Consider the parallel back substitution application in Section
4.4.

\begin{itemize}
\item [(a)]  (10) Fill in the blank:  The higher the process number, the
more work the process must do, so that some processors are going to
have wasted idle time.  The term we use for this is that this
application (as coded in the book), has poor
\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_\_.

\item [(b)]  (20) Modify the code in Figure 4.7 so that there are only n/2
processes (and thus n/2 processors).  Retain the pipeline nature of the
approach, except that the code will set up a ring structure, in wich
process n/2 pipes data back to process 1.  (Of course, this would work
best if the hardware had such a structure, but we will not address that
aspect here.)  The i-th process will handle two equations, the i-th
and the (i+n/2) st.
\end{itemize}

{\bf 4.}  (20) Write the Barrier procedure in Figure 6.7 in C for use on
MulSim.  Make it as efficient as possible, subject to retaining the
arrival/departure counts.  (If you need to, assume that you can instruct
the compiler to initialize variables to any zero or nonzero quantity.

{\bf 5.}  (20) Write a program to run on an Intel hypercube which will
perform an Insertion Sort.  Your code must be complete, including
printing the results out to {\bf stdout}, except that you will not
include a function Init() that sets up the array to be sorted.  (You
will call Init() but not write the code for it.)  {\it Make sure that your
code is tailored to the hypercube topology.}

\end{document}


