\relax \citation{express} \citation{NX-2} \citation{Vertex} \citation{parmacs1} \citation{parmacs2} \citation{Lusk-book} \citation{chimp1} \citation{chimp2} \citation{zipcode1} \citation{zipcode2} \citation{IBM-EUI} \citation{walker92b} \@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}} \newlabel{sec:intro}{{1}{1}} \citation{mpi1} \@writefile{toc}{\contentsline {section}{\numberline {2}An Overview of MPI}{2}} \newlabel{sec:overview}{{2}{2}} \@writefile{toc}{\contentsline {section}{\numberline {3}The Communicator Abstraction}{4}} \newlabel{sec:communicators}{{3}{4}} \@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Use of communicators. Time increases down the page. Numbers in parentheses indicate the process to which data are being sent or received. The gray shaded area represents the library routine call. In this case the program behaves as intended. Note that the second message sent by process 2 is received by process 0, and that the message sent by process 0 is received by process 2.}}{5}} \newlabel{fig:lib1}{{1}{5}} \@writefile{toc}{\contentsline {section}{\numberline {4}Point-To-Point Communication}{5}} \newlabel{sec:p2p}{{4}{5}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.1}Communication Modes}{5}} \newlabel{subsec:modes}{{4.1}{5}} \@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Unintended behavior of program. In this case the message from process 2to process 0 is never received, and deadlock results.}}{6}} \newlabel{fig:lib2}{{2}{6}} \@writefile{toc}{\contentsline {subsection}{\numberline {4.2}Persistent Communication Requests}{6}} \@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Classification and names of the point-to-point send and receive routines.}}{7}} \newlabel{fig:pt2pt}{{3}{7}} \@writefile{toc}{\contentsline {section}{\numberline {5}General Datatypes}{7}} \newlabel{seb:datatypes}{{5}{7}} \@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Particle migration in a one-dimensional code. The left and right edges of a process domain are shown. We shall consider just the migration of particles across the righthand boundary.}}{9}} \newlabel{fig:migrate}{{4}{9}} \@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Fragment of C code for migrating particles across the righthand process boundary. Outgoing particles are sent to process {\tt dest} using the derived datatype, {\tt Ztype}. Incoming particles from process {\tt source} are received into the particle array {\tt recvbuf} which has enough space for 100 particles.}}{10}} \newlabel{fig:migcode}{{5}{10}} \citation{IBM-report3} \citation{IBM-report4} \@writefile{toc}{\contentsline {section}{\numberline {6}Application Topologies}{11}} \newlabel{sec:topologies}{{6}{11}} \@writefile{toc}{\contentsline {section}{\numberline {7}Collective Communication}{11}} \newlabel{sec:collcomm}{{7}{11}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.1}Collective Data Movement Routines}{12}} \newlabel{subsec:datamove}{{7.1}{12}} \@writefile{toc}{\contentsline {subsection}{\numberline {7.2}Global Computation Routines}{12}} \newlabel{subsec:globalcomp}{{7.2}{12}} \newlabel{eqn:scan}{{1}{12}} \@writefile{toc}{\contentsline {section}{\numberline {8}Summary}{12}} \newlabel{sec:summary}{{8}{12}} \@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Basic collective data movement routines for a group of six processes. In each case, each row of boxes represents data locations in one process. Thus, in the broadcast routine, initially just the first process contains the data $A_0$, but after the broadcast all processes contain it.}}{13}} \newlabel{fig:collcomm}{{6}{13}} \bibstyle{plain} \bibdata{refs} \bibcite{IBM-report3}{1} \bibcite{IBM-report4}{2} \bibcite{mpi1}{3} \bibcite{chimp1}{4} \bibcite{chimp2}{5} \bibcite{IBM-EUI}{6} \bibcite{parmacs1}{7} \bibcite{parmacs2}{8} \bibcite{Lusk-book}{9} \bibcite{Vertex}{10} \bibcite{express}{11} \bibcite{NX-2}{12} \bibcite{zipcode1}{13} \bibcite{zipcode2}{14} \bibcite{walker92b}{15} .