Filewatcher File Search
FTP Search
  
Directory (beta)
  
Content Search (beta)
   
pkg://jumpshot-1.0-2.src.rpm:3003050/mpich.tar.gz  info  downloads

mpich/bin/tarch010077500011530000454000000052510651223334100141550ustar00groppmcsz00000400000014#! /bin/sh
# set -x
#
#  Returns the arch of the machine. This file is from MPICH.
#
# First, try some special cases:
if [ -d "/dev/elan" ] ; then
  FARCH="meiko"
elif [ -f /usr/bin/uxpm ] && /usr/bin/uxpm ; then
  FARCH="UXPM"
elif [ -f /usr/bin/uxpv ] && /usr/bin/uxpv ; then
  FARCH="uxpv"
fi
if [ -n "$FARCH" ] ; then
    echo $FARCH
    exit 0
fi
#
# Try to find uname
for dir in /bin /usr/bin /usr/local/bin ; do
    if [ -x $dir/uname ] ; then
	UNAME="$dir/uname"
        break
    fi
done
#
# Get uname -s, uname -m, and arch values
#
if [ -n "$UNAME" ] ; then
    ARCHLIST="`uname -s`"
    ARCHLIST="$ARCHLIST `uname -m`"
fi
#
# Get ARCH variable name
if [ -n "$ARCH" ] ; then
    ARCHLIST="$ARCHLIST $ARCH"
fi
#
# Get arch command
if [ -x /bin/arch ] ; then
    ARCHLIST="$ARCHLIST `/bin/arch`"
elif [ -x /usr/local/bin/arch ] ; then
    ARCHLIST="$ARCHLIST `/usr/local/bin/arch`"
fi
#
# GARCH is a guess if we don't find something better
GARCH=
# Now, weed through all of these values until we find something useful.
for LARCH in $ARCHLIST ; do
   # Remove blanks
   LARCH=`echo $LARCH | sed 's/ //g'`
   # Get the first 4 characters (you'd be surprised)
   #   LARCH4=`expr "$LARCH" : "\(....\)"`
   #   LARCH6=`expr "$LARCH" : "\(......\)"`
   case $LARCH in
        SUPER-UX) FARCH=SX4; break ;;
	AIX|RIOS) FARCH=rs6000; break ;;
	HP-UX) 
 	if [ -a /dev/kmem ] ; then
 	    FARCH=hpux ;
 	else
 	    FARCH=sppux ;
 	fi
        break ;;
	IRIX64|IRIX) FARCH=$LARCH ; break ;;
	Linux)  FARCH=LINUX ; break ;;
	i586|i486|i86pc)
	    GARCH=$LARCH ;;
	sun4*)
	Version=`$UNAME -r`
        # In "improving" SunOS, the useful feature of "substr" was withdrawn 
        # from expr.  Can't let the users have life too easy, can we?  This 
        # means that we can't just use 
        #   set MajorVersion = `expr substr $Version 1 1`
        # because it won't work on Solaris systems.  The following should work
        # on both:
        MajorVersion=`expr "$Version" : "\(.\)"`
        if [ "$MajorVersion" -ge 5 ] ; then
            FARCH=solaris
	else
	    FARCH=sun4
	fi
	break ;;
	hp9000*|hp7000*)
 	if [ -a /dev/kmem ] ; then
 	    FARCH=hpux ;
 	else
 	    FARCH=sppux ;
 	fi
 	break ;;
	mips|dec-5000)   FARCH=dec5000 ; break ;;
        IP12|iris-4d)    GARCH=IRIX ;;
        cray|CRAY*)      GARCH=CRAY ;;
        next)            FARCH=NeXT ; break ;;	
	KSR1|KSR2)       FARCH=ksr ; break ;;	
        FreeBSD)         FARCH=freebsd ; break ;;
	i386)            GARCH=ipsc2 ;;
	ULTRIX|RISC)     GARCH=dec5000 ;;
   esac
   LLARCH=$LARCH
done
if [ -z "$FARCH" ] ; then
    FARCH=$GARCH
    if [ -z "$FARCH" ] ; then
	FARCH=$LLARCH
    fi
    if [ -z "$FARCH" ] ; then
	FARCH=unknown
    fi
fi
echo $FARCH
exit 0
mpich/bin/tdevice010077500011530000454000000015020641060105600144710ustar00groppmcsz00000400000014#!/bin/sh
#
#  Returns the default device for architecture
#  Usage: tdevice <architecture>
#
ARCH="$1"
DEVICE=""

# ch_p4 
case "$ARCH" in 
   sun4|solaris|IRIX|IRIX64|alpha|freebsd|LINUX|solaris86) DEVICE=ch_p4 ;;
   hpux)
       # Suggested by Gary Applegate (bigapple@wagner.convex.com)
       # Another possibility is to look at /lib/libail.sl
       if test -f /bin/sysinfo ; then
           DEVICE="ch_shmem"
       else
           DEVICE="ch_p4"
       fi
       ;;
   rs6000)
	# Now that IBM has an MPI, make that the default.
#       if test -f /usr/lpp/poe/bin/mpcc ; then
#           DEVICE="ch_mpl"
#       else
           DEVICE="ch_p4"
#       fi
       ;;
   paragon) DEVICE=nx ;;
   intelnx) DEVICE=ch_nx ;;
   meiko)   DEVICE=meiko ;;
   ncube)   DEVICE=ch_nc ;;
   *)       DEVICE=ch_p4 ;;
esac
echo $DEVICE
exit 0
mpich/www/www1/mpirun.html010066400011530000454000000204070655245076500163260ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpirun</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpirun"><H1>mpirun</H1></A>
Run mpi programs 
<H2>Description</H2>
"mpirun" is a shell script that attempts to hide the differences in
starting jobs for various devices from the user. Mpirun attempts to
determine what kind of machine it is running on and start the required
number of jobs on that machine. On workstation clusters, if you are
not using Chameleon, you must supply a file that lists the different
machines that mpirun can use to run remote jobs or specify this file
every time you run mpirun with the -machine file option. The default
file is in util/machines/machines.&lt;arch&gt;.
<P>
mpirun typically works like this
<PRE>
 mpirun -np &lt;number of processes&gt; &lt;program name and arguments&gt;
</PRE>

<P>
If mpirun cannot determine what kind of machine you are on, and it
is supported by the mpi implementation, you can the -machine
and -arch options to tell it what kind of machine you are running
on. The current valid values for machine are
<P>
<PRE>
          chameleon (including chameleon/pvm, chameleon/p4, etc...)
          meiko     (the meiko device on the meiko)
          paragon   (the ch_nx device on a paragon not running NQS)
          p4        (the ch_p4 device on a workstation cluster)
          ibmspx    (ch_eui for IBM SP2)
          anlspx    (ch_eui for ANLs SPx)
          ksr       (ch_p4 for KSR 1 and 2)
          sgi_mp    (ch_shmem for SGI multiprocessors)
          cray_t3d  (t3d for Cray T3D)
          smp       (ch_shmem for SMPs)
          execer    (a custom script for starting ch_p4 programs
	             without using a procgroup file. This script
                     currently does not work well with interactive
    	             jobs)
</PRE>

You should only have to specify mr_arch if mpirun does not recognize
your machine, the default value is wrong, or you are using the p4 or
execer devices.  The full list of options is
<P>
<H2>Parameters</H2>
The options for mpirun must come before the program you want to run
<P>
mpirun [mpirun_options...] &lt;progname&gt; [options...]
<P>
<DL><DT><B>-arch &lt;architecture&gt;</B> <DD> specify the architecture (must have matching machines.&lt;arch&gt;
file in ${MPIR_HOME}/util/machines) if using the execer
</DL>
<DL><DT><B>-h      This help</B> <DD> .    -machine &lt;machine name&gt;
use startup procedure for &lt;machine name&gt;
</DL>
<DL><DT><B>-machinefile &lt;machine</B> <DD> file name&gt;
Take the list of possible machines to run on from the
file &lt;machine-file name&gt;
</DL>
<DL><DT><B>-np &lt;np&gt;</B> <DD> specify the number of processors to run on
</DL>
<DL><DT><B>-nolocal</B> <DD> do not run on the local machine (only works for 
p4 and ch_p4 jobs)
</DL>
<DL><DT><B>-stdin filename</B> <DD> Use filename as the standard input for the program.  This
is needed for programs that must be run as batch jobs, such
as some IBM SP systems and Intel Paragons using NQS (see 
-paragontype below).
</DL>
<DL><DT><B>-t      Testing </B> <DD> do not actually run, just print what would be
executed
</DL>
<DL><DT><B>-v      Verbose </B> <DD> throw in some comments
</DL>
<DL><DT><B>-dbx    Start the first process under dbx where possible</B> <DD> .    -gdb    Start the first process under gdb where possible
(on the Meiko, selecting either -dbx or -gdb starts prun
under totalview instead)
</DL>
<DL><DT><B>-xxgdb  Start the first process under xxgdb where possible (</B> <DD> xdbx
does not work)
</DL>
<DL><DT><B>-tv     Start under totalview</B> <DD> 
Special Options for NEC - CENJU-3:
</DL>
<P>
<DL><DT><B>-batch  Excecute program as a batch job (using cjbr)</B> <DD> 
</DL>
<DL><DT><B>-stdout filename</B> <DD> Use filename as the standard output for the program.
</DL>
<DL><DT><B>-stderr filename</B> <DD> Use filename as the standard error  for the program.

Special Options for Nexus device:

</DL>
<DL><DT><B>-nexuspg filename</B> <DD> Use the given Nexus startup file instead of creating one.
Overrides -np and -nolocal, selects -leave_pg.

</DL>
<DL><DT><B>-nexusdb filename</B> <DD> Use the given Nexus resource database.
</DL>
<P>
<H2>Special Options for Workstation Clusters</H2>
<P>
<P>
<DL><DT><B>-e      Use execer to start the program on workstation</B> <DD> clusters
</DL>
<DL><DT><B>-pg     Use a procgroup file to start the p4 programs, not execer</B> <DD> (default)
</DL>
<DL><DT><B>-leave_pg</B> <DD> Do not delete the P4 procgroup file after running
</DL>
<DL><DT><B>-p4pg filename</B> <DD> Use the given p4 procgroup file instead of creating one.
Overrides -np and -nolocal, selects -leave_pg.
</DL>
<DL><DT><B>-tcppg filename</B> <DD> Use the given tcp procgroup file instead of creating one.
Overrides -np and -nolocal, selects -leave_pg.
</DL>
<DL><DT><B>-p4ssport num</B> <DD> Use the p4 secure server with port number num to start the
programs.  If num is 0, use the value of the 
environment variable MPI_P4SSPORT.  Using the server can
speed up process startup.  If MPI_USEP4SSPORT as well as
MPI_P4SSPORT are set, then that has the effect of giving
mpirun the -p4ssport 0 parameters.
</DL>
<P>
<H2>Special Options for Batch Environments</H2>
<P>
<DL><DT><B>-mvhome Move the executable to the home directory.  This </B> <DD> is needed when all file systems are not cross-mounted
Currently only used by anlspx
</DL>
<DL><DT><B>-mvback files</B> <DD> Move the indicated files back to the current directory.
Needed only when using -mvhome; has no effect otherwise.
</DL>
<DL><DT><B>-maxtime min</B> <DD> Maximum job run time in minutes.  Currently used only
by anlspx.  Default value is 15 minutes
</DL>
<DL><DT><B>-nopoll Do not use a polling</B> <DD> mode communication.
Available only on IBM SPx.
</DL>
<DL><DT><B>-mem value</B> <DD> This is the per node memory request (in Mbytes).  Needed for some
CM-5s.
</DL>
<DL><DT><B>-cpu time</B> <DD> This is the the hard cpu limit used for some CM-5s in
minutes.
</DL>
<P>
<H2>Special Options for IBM SP2</H2>
<P>
<DL><DT><B>-cac name</B> <DD> CAC for ANL scheduler.  Currently used only by anlspx.
If not provided will choose some valid CAC.
</DL>
<P>
<H2>Special Options for Intel Paragon</H2>
<P>
<DL><DT><B>-paragontype name</B> <DD> Selects one of default, mkpart, NQS, depending on how you want
to submit jobs to a Paragon.
</DL>
<P>
<DL><DT><B>-paragonname name </B> <DD> Remote shells to name to run the job (using the -sz method) on 
a Paragon.
</DL>
<P>
<DL><DT><B>-paragonpn name</B> <DD> Name of partition to run on in a Paragon (using the -pn name 
command-line argument)
</DL>
<P>
On exit, mpirun returns a status of zero unless mpirun detected a problem, in
which case it returns a non-zero status (currently, all are one, but this
may change in the future).
<P>
<H2>Specifying Heterogeneous Systems</H2>
<P>
Multiple architectures may be handled by giving multiple <TT>-arch</TT> and <TT>-np
</TT>arguments.  For example, to run a program on 2 sun4s and 3 rs6000s, with
the local machine being a sun4, use
<PRE>
    mpirun -arch sun4 -np 2 -arch rs6000 -np 3 program
</PRE>

This assumes that program will run on both architectures.  If different
executables are needed (as in this case), the string <TT>%a</TT> will be replaced
with the arch name. For example, if the programs are <TT>program.sun4</TT> and
<TT>program.rs6000</TT>, then the command is
<PRE>
    mpirun -arch sun4 -np 2 -arch rs6000 -np 3 program.%a
</PRE>

If instead the execuables are in different directories; for example,
<TT>/tmp/me/sun4</TT> and <TT>/tmp/me/rs6000</TT>, then the command is
<PRE>
    mpirun -arch sun4 -np 2 -arch rs6000 -np 3 /tmp/me/%a/program
</PRE>

It is important to specify the architecture with <TT>-arch</TT> <EM>before</EM> specifying
the number of processors.  Also, the <EM>first</EM> <TT>-arch</TT> command must refer to the
processor on which the job will be started.  Specifically, if <TT>-nolocal</TT> is
<EM>not</EM> specified, then the first -arch must refer to the processor from which
mpirun is running.
<P>
(You must have <TT>machines.&lt;arch&gt;</TT> files for each arch that you use in the
<TT>util/machines</TT> directory.)
<P>
Another approach that may be used the the <TT>ch_p4</TT> device is to create a
<TT>procgroup</TT> file directly.  See the MPICH Users Guide for more information.
<P>
<P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
the program.
</DL>
<DL><DT><B>-stderr filename</B> <DD> Use filename as the standard error  for the program.

Special Options for Nexus device:

</DL>
<DL><DT><B>-nexuspg filename</B> <DD> Use the given Nexus startup file instead of creating one.
Ovmpich/www/www1/mpicc.html010066400011530000454000000045330655245076500161110ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpicc</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpicc"><H1>mpicc</H1></A>
Compiles and links MPI programs written in C 
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
C.  It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command (or a <TT>Makefile</TT> processed with
<TT>mpireconfig</TT>) particularly when linking programs, as it provides
the necessary libraries.  It can also simplify the use of the MPE
profiling libraries, through the use of the <TT>-mpilog</TT>, <TT>-mpitrace</TT>,
and <TT>-mpianim</TT> commands.
<P>
<H2>Command line arguments</H2>
<DL><DT><B>-mpilog    </B> <DD> Build version that generate MPE log files
</DL>
<DL><DT><B>-mpitrace  </B> <DD> Build version that generates traces
</DL>
<DL><DT><B>-mpianim   </B> <DD> Build version that generates real-time
animation
</DL>
<DL><DT><B>-show      </B> <DD> Show the commands that would be used without
runnning them
</DL>
<DL><DT><B>-help      </B> <DD> Give short help
</DL>
<DL><DT><B>-echo      </B> <DD> Show exactly what this program is doing.
This option should normally not be used.
</DL>
<DL><DT><B>others     </B> <DD> are passed to the compiler or linker.  For example, <TT>-c</TT>
causes files to be compiled, <TT>-g</TT> selects compilation with debugging
on most systems, and <TT>-o name</TT> causes linking with the output
executable given the name <TT>name</TT>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <TT>MPICH_CC</TT> and <TT>MPICH_CLINKER</TT> may be used
to select different C compiler and linker.  Note that since
MPICH is built with a particular C and Fortran compiler, change the
compilers used can cause problems.  Use this only if you could intermix
code compiled with the different compilers.
<P>
<H2>Examples</H2>
To compile a single file <TT>foo.c</TT>, use
<PRE>
   mpicc -c foo.c 
</PRE>

<P>
To link the output and make an executable, use
<PRE>
   mpicc -o foo foo.o
</PRE>

Combining compilation and linking in a single command
<PRE>
   mpicc -o foo foo.c
</PRE>

is a convenient way to build simple programs.
<P>
<H2>See Also</H2>
 mpif77, mpireconfig
<BR><P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/mpif77.html010066400011530000454000000046010655245076500161230ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpif77</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpif77"><H1>mpif77</H1></A>
Compiles and links MPI programs written in Fortran 77 
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
Fortran 77.  It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command (or a <TT>Makefile</TT> processed with
<TT>mpireconfig</TT>) particularly when linking programs, as it provides
the necessary libraries.  It can also simplify the use of the MPE
profiling libraries, through the use of the <TT>-mpilog</TT>, <TT>-mpitrace</TT>,
and <TT>-mpianim</TT> commands.
<P>
<H2>Command line arguments</H2>
<DL><DT><B>-mpilog    </B> <DD> Build version that generate MPE log files
</DL>
<DL><DT><B>-mpitrace  </B> <DD> Build version that generates traces
</DL>
<DL><DT><B>-mpianim   </B> <DD> Build version that generates real-time
animation
</DL>
<DL><DT><B>-show      </B> <DD> Show the commands that would be used without
runnning them
</DL>
<DL><DT><B>-help      </B> <DD> Give short help
</DL>
<DL><DT><B>-echo      </B> <DD> Show exactly what this program is doing.
This option should normally not be used.
</DL>
<DL><DT><B>others     </B> <DD> are passed to the compiler or linker.  For example, <TT>-c</TT>
causes files to be compiled, <TT>-g</TT> selects compilation with debugging
on most systems, and <TT>-o name</TT> causes linking with the output
executable given the name <TT>name</TT>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <TT>MPICH_F77</TT> and <TT>MPICH_F77LINKER</TT> may be used
to select different Fortran 77 compiler and linker.  Note that since
MPICH is built with a particular C and Fortran compiler, change the
compilers used can cause problems.  Use this only if you could intermix
code compiled with the different compilers.
<P>
<H2>Examples</H2>
<P>
To compile a single file <TT>foo.f</TT>, use
<PRE>
   mpif77 -c foo.f
</PRE>

<P>
To link the output and make an executable, use
<PRE>
   mpif77 -o foo foo.o
</PRE>

Combining compilation and linking in a single command
<PRE>
   mpif77 -o foo foo.f
</PRE>

is a convenient way to build simple programs.
<P>
<H2>See Also</H2>
 mpicc, mpireconfig
<BR><P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/mpif90.html010066400011530000454000000047410655245076500161230ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpif90</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpif90"><H1>mpif90</H1></A>
Compiles and links MPI programs written in Fortran 90 
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
Fortran 90.  It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
This command is still under development, as is support in MPICH
for Fortran 90.
<P>
It is important to use this command (or a <TT>Makefile</TT> processed with
<TT>mpireconfig</TT>) particularly when linking programs, as it provides
the necessary libraries.  It can also simplify the use of the MPE
profiling libraries, through the use of the <TT>-mpilog</TT>, <TT>-mpitrace</TT>,
and <TT>-mpianim</TT> commands.
<P>
<H2>Command line arguments</H2>
<DL><DT><B>-mpilog    </B> <DD> Build version that generate MPE log files
</DL>
<DL><DT><B>-mpitrace  </B> <DD> Build version that generates traces
</DL>
<DL><DT><B>-mpianim   </B> <DD> Build version that generates real-time
animation
</DL>
<DL><DT><B>-show      </B> <DD> Show the commands that would be used without
runnning them
</DL>
<DL><DT><B>-help      </B> <DD> Give short help
</DL>
<DL><DT><B>-echo      </B> <DD> Show exactly what this program is doing.
This option should normally not be used.
</DL>
<DL><DT><B>others     </B> <DD> are passed to the compiler or linker.  For example, <TT>-c</TT>
causes files to be compiled, <TT>-g</TT> selects compilation with debugging
on most systems, and <TT>-o name</TT> causes linking with the output
executable given the name <TT>name</TT>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <TT>MPICH_F90</TT> and <TT>MPICH_F90LINKER</TT> may be used
to select different Fortran compiler and linker.  Note that since
MPICH is built with a particular C and Fortran compiler, change the
compilers used can cause problems.  Use this only if you could intermix
code compiled with the different compilers.
<P>
<H2>Examples</H2>
<P>
To compile a single file <TT>foo.f</TT>, use
<PRE>
   mpif90 -c foo.f
</PRE>

<P>
To link the output and make an executable, use
<PRE>
   mpif90 -o foo foo.o
</PRE>

Combining compilation and linking in a single command
<PRE>
   mpif90 -o foo foo.f
</PRE>

is a convenient way to build simple programs.
<P>
<H2>See Also</H2>
 mpicc, mpif77, mpiCC, mpireconfig
<BR><P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/mpiCC.html010066400011530000454000000046520655245076500160130ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpiCC</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpiCC"><H1>mpiCC</H1></A>
Compiles and links MPI programs written in C++ 
<H2>Description</H2>
This command can be used to compile and link MPI programs written in
C++.  It provides the options and any special libraries that are
needed to compile and link MPI programs.
<P>
It is important to use this command (or a <TT>Makefile</TT> processed with
<TT>mpireconfig</TT>) particularly when linking programs, as it provides
the necessary libraries.  It can also simplify the use of the MPE
profiling libraries, through the use of the <TT>-mpilog</TT>, <TT>-mpitrace</TT>,
and <TT>-mpianim</TT> commands.
<P>
mpiCC cannot be used to compile C programs.  Use mpicc for C programs.
<P>
<H2>Command line arguments</H2>
<DL><DT><B>-mpilog    </B> <DD> Build version that generate MPE log files
</DL>
<DL><DT><B>-mpitrace  </B> <DD> Build version that generates traces
</DL>
<DL><DT><B>-mpianim   </B> <DD> Build version that generates real-time
animation
</DL>
<DL><DT><B>-show      </B> <DD> Show the commands that would be used without
runnning them
</DL>
<DL><DT><B>-help      </B> <DD> Give short help
</DL>
<DL><DT><B>-echo      </B> <DD> Show exactly what this program is doing.
This option should normally not be used.
</DL>
<DL><DT><B>others     </B> <DD> are passed to the compiler or linker.  For example, <TT>-c</TT>
causes files to be compiled, <TT>-g</TT> selects compilation with debugging
on most systems, and <TT>-o name</TT> causes linking with the output
executable given the name <TT>name</TT>.
</DL>
<P>
<H2>Environment Variables</H2>
The environment variables <TT>MPICH_CCC</TT> and <TT>MPICH_CCLINKER</TT> may be used
to select different C++ compiler and linker.  Note that since
MPICH is built with a particular C++ and C compiler, change the
compilers used can cause problems.  Use this only if you could intermix
code compiled with the different compilers.
<P>
<H2>Examples</H2>
To compile a single file <TT>foo.c</TT>, use
<PRE>
   mpicc -c foo.c 
</PRE>

<P>
To link the output and make an executable, use
<PRE>
   mpicc -o foo foo.o
</PRE>

Combining compilation and linking in a single command
<PRE>
   mpicc -o foo foo.c
</PRE>

is a convenient way to build simple programs.
<P>
<H2>See Also</H2>
 mpif77, mpireconfig
<BR><P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/mpireconfig.html010066400011530000454000000014260655245076500173160ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpireconfig</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpireconfig"><H1>mpireconfig</H1></A>
Constucts makefiles from template files 
<H2>Description</H2>
The <TT>mpireconfig</TT> command takes a template file and creates a
file that may be given to the <TT>make</TT> command by replacing variable
with values appropriate for a particular MPICH configuration.
<P>
<H2>Syntax</H2>
<P>
mpireconfig filename
<P>
<H2>Command Line Arguments</H2>
<DL><DT><B>filename   </B> <DD> Name of file to be generated.  The file <TT>filename.in</TT>
must exist.
</DL>
<P>
<H2>See Also</H2>
 mpicc, mpif77, mpif90, mpiCC  
<BR><P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/tstmachines.html010066400011530000454000000007240655245076500173360ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>tstmachines</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="tstmachines"><H1>tstmachines</H1></A>
Tests the availability of remote machines for runing MPI programs 
<H2>Description</H2>
This script runs some simple tests to test that the environment can
support the <TT>ch_p4</TT> device.
<P>
<P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/chp4_servs.html010066400011530000454000000010120655245076500170630ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>chp4_servs</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="chp4_servs"><H1>chp4_servs</H1></A>
Starts the P4 secure servers on machines known to MPICH 
<H2>Description</H2>
This script can be used <EM>when there is a working remote shell program
</EM>to start the secure servers that the <TT>ch_p4</TT> device can use to speed
up process startup.
<P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/mpiman.html010066400011530000454000000023230655245076500162720ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>mpiman</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="mpiman"><H1>mpiman</H1></A>
Starts reader for MPI man pages in Unix man or Web HTML format 
<H2>Description</H2>
The <TT>mpiman</TT> command gives access to the MPI manual pages in both
UNIX man and Web HTML format.  By default, <TT>mpiman</TT> uses xman, the
X Window System manual browser to read the man pages.  By providing
a command-line argument to <TT>mpiman</TT>, you can choose a different browser.
The Web HTML format provides hot links between related routines and
with the MPI standard.
<P>
<H2>Command Line Arguments</H2>
<DL><DT><B>-xmosaic </B> <DD> Use the <TT>xmosaic</TT> Web browser.
</DL>
<DL><DT><B>-mosaic  </B> <DD> Use the <TT>mosaic</TT> Web browser.  <TT>xmosaic</TT> and <TT>mosaic</TT> are often
the same program
</DL>
<DL><DT><B>-netscape </B> <DD> Use the <TT>netscape</TT> Web browser.
</DL>
<DL><DT><B>-xman     </B> <DD> Use the X Window System xman Unix man browser
</DL>
<DL><DT><B>-man      </B> <DD> Use the man program (e.g., <TT>mpiman -man MPI_Send</TT>)
</DL>
<P>
<P><B>Location:</B>/home/MPI/mansrc/commands<P>
</BODY></HTML>
mpich/www/www1/MPI.html010066400011530000454000000071130655245076500154400ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI"><H1>MPI</H1></A>
Introduction to the Message-Passing Interface 
<H2>Description</H2>
<P>
MPI stands for Message Passing Interface. The goal of MPI, simply
stated, is to develop a widely used standard for writing
message-passing programs. As such the interface should establish a
practical, portable, efficient, and flexible standard for message
passing.
<P>
In designing MPI the MPI Forum sought to make use of the most
attractive features of a number of existing message passing systems,
rather than selecting one of them and adopting it as the standard.
Thus, MPI has been strongly influenced by work at the IBM T. J. Watson
Research Center, Intel<TT>s NX/2, Express, nCUBE</TT>s Vertex, p4, and
PARMACS. Other important contributions have come from Zipcode, Chimp,
PVM, Chameleon, and PICL.
<P>
MPI is a specification (like C or Fortran) and there are a number of
implementations.  The rest of this man page describes the use of the MPICH
implementation of MPI.
<P>
<H2>Getting started</H2>
<P>
Add MPI to your path
<PRE>
	% set path = ( $path /usr/local/mpi/bin )
</PRE>

Compute pi to a given resolution on 8 processors or threads
<PRE>
	% mpirun -np 8 /usr/local/mpi/examples/basic/fpi
</PRE>

Try 10000 intervals at the prompt.  Fortran source is available
in this directory, along with a similar C program (cpi.c).
<P>
A coarse timing program is also available here
<PRE>
	% mpirun -np 8 /usr/local/mpi/examples/basic/systest
</PRE>

More sophisticated timing programs may be found in the source for the MPICH
implementation of MPI (/home/MPI/mpich/examples/perftest).
<P>
You can compile and link your own MPI programs with the commands <TT>mpicc</TT> and
<TT>mpif77</TT>.
<PRE>
        % mpicc -o cpi cpi.c
        % mpif77 -o fpi fpi.f
</PRE>

<P>
<H2>Documentation</H2>
<P>
Postscript documentation can be found in directory
/usr/local/mpi/doc/.  These include an introductory guide
(guide.ps) and a user manual (manual.ps).
<P>
Man pages exist for every MPI subroutine and function.  The command
<TT>mpiman</TT> will start an <TT>xman</TT> for the MPI manual pages.  The man pages are
also available on the Web at <TT>http://www.mcs.anl.gov/mpi/www</TT>.
Additional on-line information is available at <TT>http://www.mcs.anl.gov/mpi</TT>,
including a hypertext version of the standard, information on other libraries
that use MPI, and pointers to other MPI resources.
<P>
<H2>Version</H2>
<P>
MPICH version 1.1.0
<P>
<H2>License</H2>
<P>
Copyright 1993-1997 University of Chicago and Mississippi State University.
See COPYRIGHT for details.  The source code is freely available
by anonymous ftp from ftp.mcs.anl.gov in pub/mpi/mpich.tar.Z .
<P>
<H2>Files</H2>
<P>
<PRE>
/usr/local/mpi/                 MPI software directory
/usr/local/mpi/COPYRIGHT        Copyright notice
/usr/local/mpi/README           various notes and instructions
/usr/local/mpi/bin/             binaries, including mpirun
/usr/local/mpi/examples/basic   elementary MPI programs
/usr/local/mpi/doc/             documentation
/usr/local/mpi/include/         include files
/usr/local/mpi/lib/             library files
</PRE>

<P>
<H2>Contact</H2>
<P>
For comments regarding the local installation of MPI, please send mail
to support@mcs.anl.gov.  MPI-specific suggestions and bug reports should
be sent directly to mpi-bugs@mcs.anl.gov.
<P>
<H2>Acknowledgement</H2>
Thanks to Richard Frost for suggesting this page and providing a sample.
<P>
<P><B>Location:</B>/home/MPI/mansrc/manpage<P>
</BODY></HTML>
mpich/www/www1/index.html010066400011530000454000000010560655245076700161240ustar00groppmcsz00000400000014<TITLE>Web pages for MPICH Commands</TITLE>
<!-- This file generated by mpich/util/makewwwindex-->
<BODY BGCOLOR="FFFFFF">
<H1>MPICH Commands</H1>
<MENU>
<LI><A HREF="MPI.html">MPI</A>
<LI><A HREF="chp4_servs.html">chp4_servs</A>
<LI><A HREF="mpiCC.html">mpiCC</A>
<LI><A HREF="mpicc.html">mpicc</A>
<LI><A HREF="mpif77.html">mpif77</A>
<LI><A HREF="mpif90.html">mpif90</A>
<LI><A HREF="mpiman.html">mpiman</A>
<LI><A HREF="mpireconfig.html">mpireconfig</A>
<LI><A HREF="mpirun.html">mpirun</A>
<LI><A HREF="tstmachines.html">tstmachines</A>
</MENU>
</BODY>
mpich/www/www3/MPI_Address.html010066400011530000454000000026620655245075600171130ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Address</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Address"><H1>MPI_Address</H1></A>
Gets the address of a location in memory   
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Address( location, address)
void     *location;
MPI_Aint *address;
</PRE>
<H2>Input Parameters</H2>
<DL><DT><B>location </B> <DD> location in caller memory (choice) 
</DL>
<P>
<H2>Output Parameter</H2>
<DL><DT><B>address </B> <DD> address of location (integer) 
</DL>
<P>
<H2>Note</H2>
This routine is provided for both the Fortran and C programmers.
On many systems, the address returned by this routine will be the 
sameas produced by the C <TT>&amp;</TT> operator, but this is not required in C 
andmay not be true of systems with word- rather than byte-
orientedinstructions or systems with segmented address spaces.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P><B>Location:</B>address.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Bsend.html010066400011530000454000000143310655245075600165550ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Bsend</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Bsend"><H1>MPI_Bsend</H1></A>
Basic send with user-specified buffering 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Bsend( buf, count, datatype, dest, tag, comm )
void             *buf;
int              count, dest, tag;
MPI_Datatype     datatype;
MPI_Comm         comm;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buf </B></TD><TD VALIGN=TOP>initial address of send buffer (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>count </B></TD><TD VALIGN=TOP>number of elements in send buffer (nonnegative integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>datatype of each send buffer element (handle) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>dest </B></TD><TD VALIGN=TOP>rank of destination (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>tag </B></TD><TD VALIGN=TOP>message tag (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>comm </B></TD><TD VALIGN=TOP>communicator (handle) 
<BR></TD></TR></TABLE>
<P>
<H2>Notes</H2>
This send is provided as a convenience function; it allows the user 
tosend messages without worring about where they are buffered (because 
theuser <EM>must</EM> have provided buffer space with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A></TT>).
<P>
In deciding how much buffer space to allocate, remember that the buffer 
spaceis not available for reuse by subsequent <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A></TT>s unless you are 
certainthat the 
messagehas been received (not just that it should have been received).  For example,
this code does not allocate enough buffer 
space<PRE>
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A>( b, n*sizeof(double) + MPI_BSEND_OVERHEAD );
    for (i=0; i&lt;m; i++) {
        <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A>( buf, n, MPI_DOUBLE, ... );
    }
</PRE>

because only enough buffer space is provided for a single send, and 
theloop may start a second <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A></TT> before the first is done making use of 
thebuffer.
<P>
In C, you 
canforce the messages to be delivered 
by<PRE>
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A>( &amp;b, &amp;n );
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A>( b, n );
</PRE>

(The <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A></TT> will not complete until all buffered messages 
aredelivered.)
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator.  A common error is to use a null
communicator in a call (not even allowed in <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node101.html#node101">MPI_Comm_rank</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument.  Count arguments must be 
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank.  Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may also be <TT>MPI_ANY_SOURCE</TT>.
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument.  Tags must be non-negative; tags
in a receive (<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may
also be <TT>MPI_ANY_TAG</TT>.  The largest tag value is available through the 
the attribute <TT>MPI_TAG_UB</TT>.
</DL>
<P>
<H2>See Also</H2>
 <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Ibsend</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Bsend_init</A>
<BR><P><B>Location:</B>bsend.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Bsend_init.html010066400011530000454000000105730655245075600176040ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Bsend_init</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Bsend_init"><H1>MPI_Bsend_init</H1></A>
Builds a handle for a buffered send 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Bsend_init( buf, count, datatype, dest, tag, comm, request )
void          *buf;
int           count;
MPI_Datatype  datatype;
int           dest;
int           tag;
MPI_Comm      comm;
MPI_Request   *request;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buf </B></TD><TD VALIGN=TOP>initial address of send buffer (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>count </B></TD><TD VALIGN=TOP>number of elements sent (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>type of each element (handle) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>dest </B></TD><TD VALIGN=TOP>rank of destination (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>tag </B></TD><TD VALIGN=TOP>message tag (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>comm </B></TD><TD VALIGN=TOP>communicator (handle) 
<BR></TD></TR></TABLE>
<P>
<H2>Output Parameter</H2>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator.  A common error is to use a null
communicator in a call (not even allowed in <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node101.html#node101">MPI_Comm_rank</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument.  Count arguments must be 
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank.  Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may also be <TT>MPI_ANY_SOURCE</TT>.
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument.  Tags must be non-negative; tags
in a receive (<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may
also be <TT>MPI_ANY_TAG</TT>.  The largest tag value is available through the 
the attribute <TT>MPI_TAG_UB</TT>.
</DL>
<P><B>Location:</B>bsend_init.c<P>
</BODY></HTML>
>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtimempich/www/www3/MPI_Buffer_attach.html010066400011530000454000000077340655245075600202700ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Buffer_attach</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Buffer_attach"><H1>MPI_Buffer_attach</H1></A>
Attaches a user-defined buffer for sending 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Buffer_attach( buffer, size )
void *buffer;
int  size;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buffer </B></TD><TD VALIGN=TOP>initial buffer address (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>size </B></TD><TD VALIGN=TOP>buffer size, in bytes (integer) 
<BR></TD></TR></TABLE>
<P>
<H2>Notes</H2>
The size given should be the sum of the sizes of all outstanding Bsends 
thatyou intend to have, plus a few hundred bytes for each Bsend that you do.
For the purposes of calculating size, you should use <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node62.html#node62">MPI_Pack_size</A></TT>.
In other words, in the 
code<PRE>
     <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A>( buffer, size );
     <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A>( ..., count=20, datatype=type1,  ... );
     ...
     <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A>( ..., count=40, datatype=type2, ... );
</PRE>

the value of <TT>size</TT> in the <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A> call should be greater 
thanthe value computed 
by<PRE>
     <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node62.html#node62">MPI_Pack_size</A>( 20, type1, comm, &amp;s1 );
     <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node62.html#node62">MPI_Pack_size</A>( 40, type2, comm, &amp;s2 );
     size = s1 + s2 + 2 * MPI_BSEND_OVERHEAD;
</PRE>

The <TT>MPI_BSEND_OVERHEAD</TT> gives the maximum amount of space that may be used 
inthe buffer for use by the BSEND routines in using the buffer.  This 
valueis in <TT>mpi.h</TT> (for C) and <TT>mpif.h</TT> (for Fortran).
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer.  Usually a null buffer where
one is not valid.
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> An internal error has been detected.  This is fatal.
Please send a bug report to <TT>mpi-bugs@mcs.anl.gov</TT>.
</DL>
<P>
<H2>See Also</H2>
 <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A>
<BR><P><B>Location:</B>bufattach.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Buffer_detach.html010066400011530000454000000066360655245075600202540ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Buffer_detach</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Buffer_detach"><H1>MPI_Buffer_detach</H1></A>
Removes an existing buffer (for use in <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node40.html#node40">MPI_Bsend</A> etc) 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Buffer_detach( bufferptr, size )
void *bufferptr;
int  *size;
</PRE>
<H2>Output Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buffer </B></TD><TD VALIGN=TOP>initial buffer address (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>size </B></TD><TD VALIGN=TOP>buffer size, in bytes (integer) 
<BR></TD></TR></TABLE>
<P>
<H2>Notes</H2>
The reason that <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A></TT> returns the address and size of 
thebuffer being detached is to allow nested libraries to replace and 
restorethe buffer.  For example, 
consider
<P>
<PRE>
    int size, mysize, idummy;
    void *ptr, *myptr, *dummy;     
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A>( &amp;ptr, &amp;size );
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A>( myptr, mysize );
    ...
    ... library code ...
    ...
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A>( &amp;dummy, &amp;idummy );
    <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_attach</A>( ptr, size );
</PRE>

<P>
This is much like the action of the Unix signal routine and has the 
samestrengths (it is simple) and weaknesses (it only works for nested usages).
<P>
Note that for this approach to work, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node42.html#node42">MPI_Buffer_detach</A> must return 
MPI_SUCCESSeven when there is no buffer to detach.  In that case, it returns a size 
ofzero.  The MPI 1.1 standard for <TT>MPI_BUFFER_DETACH</TT> contains the 
text
<P>
<PRE>
   The statements made in this section describe the behavior of MPI for
   buffered-mode sends. When no buffer is currently associated, MPI behaves 
   as if a zero-sized buffer is associated with the process.
</PRE>

<P>
This could be read as applying only to the various Bsend routines.  
Thisimplementation takes the position that this applies to <TT>
MPI_BUFFER_DETACH</TT>as well.
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
The Fortran binding for this routine is different.  Because 
Fortrandoes not have pointers, it is impossible to provide a way to use 
theoutput of this routine to exchange buffers.  In this case, only 
thesize field is set.
<P>
<H2>Notes for C</H2>
Even though the <TT>bufferptr</TT> argument is declared as <TT>void *</TT>, it 
isreally the address of a void pointer.  See the rationale in 
thestandard for more details.
<P><B>Location:</B>buffree.c<P>
</BODY></HTML>
detach( bufferptr, size )
void *bufferptr;
int  *size;
</PRE>
<H2>Output Parameters</H2>
<TABLE BOmpich/www/www3/MPI_Cancel.html010066400011530000454000000075340655245075600167160ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Cancel</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Cancel"><H1>MPI_Cancel</H1></A>
Cancels a communication request 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Cancel( request )
MPI_Request *request;
</PRE>
<H2>Input Parameter</H2>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Note</H2>
Cancel has only been implemented for receive requests; it is a no-op 
forsend requests.  The primary expected use of <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node50.html#node50">MPI_Cancel</A> is in multi-
bufferingschemes, where speculative MPI_Irecvs are made.  When the 
computationcompletes, some of these receive requests may remain; using <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node50.html#node50">MPI_Cancel</A> 
allowsthe user to cancel these unsatisfied requests.
<P>
Cancelling a send operation is much more difficult, in large part because 
thesend will usually be at least partially complete (the information on the tag,
size, and source are usually sent immediately to the destination).  
MPICHwill support this once other enhancements are completed; however, users 
areadvised that cancelling a send, while a local operation, is likely 
tobe expensive (usually generating one or more internal messages).
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Null Handles</H2>
The MPI 1.1 specification, in the section on opaque objects, 
explicitly
<H2>disallows freeing a null communicator.  The text from the standard is</H2>
<PRE>
 A null handle argument is an erroneous IN argument in MPI calls, unless an
 exception is explicitly stated in the text that defines the function. Such
 exception is allowed for handles to request objects in Wait and Test calls
 (sections Communication Completion and Multiple Completions ). Otherwise, a
 null handle can only be passed to a function that allocates a new object and
 returns a reference to it in the handle.
</PRE>

<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_REQUEST </B> <DD> Invalid <TT>MPI_Request</TT>.  Either null or, in the case of a
<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Start</A></TT> or <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Startall</A></TT>, not a persistent request.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument.  Some argument is invalid and is not
identified by a specific error class (e.g., <TT>MPI_ERR_RANK</TT>).
</DL>
<P><B>Location:</B>cancel.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Request_free.html010066400011530000454000000112710655245075600201530ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Request_free</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Request_free"><H1>MPI_Request_free</H1></A>
Frees a communication request object 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Request_free( request )
MPI_Request *request;
</PRE>
<H2>Input Parameter</H2>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes</H2>
This routine is normally used to free persistent requests created 
witheither <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Recv_init</A></TT> or <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Send_init</A></TT> and friends.  However, it can 
beused to free a request created with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT> or <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Isend</A></TT> and friends;
in that case the use can not use the test/wait routines on the request.
<P>
It <EM>is</EM> permitted to free an active request.  However, once freed, you can 
notuse the request in a wait or test routine (e.g., <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node47.html#node47">MPI_Wait</A></TT>).
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_REQUEST </B> <DD> Invalid <TT>MPI_Request</TT>.  Either null or, in the case of a
<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Start</A></TT> or <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Startall</A></TT>, not a persistent request.
</DL>
<DL><DT><B>MPI_ERR_ARG </B> <DD> Invalid argument.  Some argument is invalid and is not
identified by a specific error class (e.g., <TT>MPI_ERR_RANK</TT>).
</DL>
<P>
<H2>See Also</H2>
also: <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Isend</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Issend</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Ibsend</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irsend</A>,
<BR><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Recv_init</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Send_init</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Ssend_init</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Rsend_init</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node47.html#node47">MPI_Wait</A>,
<A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node47.html#node47">MPI_Test</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node49.html#node49">MPI_Waitall</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node49.html#node49">MPI_Waitany</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node49.html#node49">MPI_Waitsome</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node49.html#node49">MPI_Testall</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node49.html#node49">MPI_Testany</A>,

<A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node49.html#node49">MPI_Testsome</A><P><B>Location:</B>commreq_free.c<P>
</BODY></HTML>
est_free"><H1>MPI_Request_free</H1></A>
Frees a communication request object 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Request_free( request )
MPI_Request *request;
</PRE>
<H2>Input Parameter</H2>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes</H2>
This routine is normally used to frempich/www/www3/MPI_Recv_init.html010066400011530000454000000113770655245075600174530ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Recv_init</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Recv_init"><H1>MPI_Recv_init</H1></A>
Builds a handle for a receive 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Recv_init( buf, count, datatype, source, tag, comm, request )
void         *buf;
int          count;
MPI_Request  *request;
MPI_Datatype datatype;
int          source;
int          tag;
MPI_Comm     comm;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buf </B></TD><TD VALIGN=TOP>initial address of receive buffer (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>count </B></TD><TD VALIGN=TOP>number of elements received (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>type of each element (handle) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>source </B></TD><TD VALIGN=TOP>rank of source or <TT>MPI_ANY_SOURCE</TT> (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>tag </B></TD><TD VALIGN=TOP>message tag or <TT>MPI_ANY_TAG</TT> (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>comm </B></TD><TD VALIGN=TOP>communicator (handle) 
<BR></TD></TR></TABLE>
<P>
<H2>Output Parameter</H2>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument.  Count arguments must be 
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank.  Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may also be <TT>MPI_ANY_SOURCE</TT>.
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument.  Tags must be non-negative; tags
in a receive (<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may
also be <TT>MPI_ANY_TAG</TT>.  The largest tag value is available through the 
the attribute <TT>MPI_TAG_UB</TT>.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator.  A common error is to use a null
communicator in a call (not even allowed in <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node101.html#node101">MPI_Comm_rank</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> This error is returned when some part of the MPICH 
implementation is unable to acquire memory.  
</DL>
<P>
<H2>See Also</H2>
 <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Start</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node47.html#node47">MPI_Request_free</A>
<BR><P><B>Location:</B>create_recv.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Send_init.html010066400011530000454000000113050655245075600174340ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Send_init</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Send_init"><H1>MPI_Send_init</H1></A>
Builds a handle for a standard send 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Send_init( buf, count, datatype, dest, tag, comm, request )
void          *buf;
int           count;
MPI_Datatype  datatype;
int           dest;
int           tag;
MPI_Comm      comm;
MPI_Request   *request;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buf </B></TD><TD VALIGN=TOP>initial address of send buffer (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>count </B></TD><TD VALIGN=TOP>number of elements sent (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>type of each element (handle) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>dest </B></TD><TD VALIGN=TOP>rank of destination (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>tag </B></TD><TD VALIGN=TOP>message tag (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>comm </B></TD><TD VALIGN=TOP>communicator (handle) 
Output Parameter:
<BR></TD></TR></TABLE>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument.  Count arguments must be 
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank.  Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may also be <TT>MPI_ANY_SOURCE</TT>.
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument.  Tags must be non-negative; tags
in a receive (<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may
also be <TT>MPI_ANY_TAG</TT>.  The largest tag value is available through the 
the attribute <TT>MPI_TAG_UB</TT>.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator.  A common error is to use a null
communicator in a call (not even allowed in <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node101.html#node101">MPI_Comm_rank</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_INTERN </B> <DD> This error is returned when some part of the MPICH 
implementation is unable to acquire memory.  
</DL>
<P>
<H2>See Also</H2>
 <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node51.html#node51">MPI_Start</A>, <A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node47.html#node47">MPI_Request_free</A>
<BR><P><B>Location:</B>create_send.c<P>
</BODY></HTML>
<TD ALIGN=LEFT VALIGN=TOP><B>comm </B></TD><TD VALIGN=TOP>communicator (handle) 
Output Parameter:
<BR></TD></TR></TABLE>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean addimpich/www/www3/MPI_Get_count.html010066400011530000454000000053740655245075600174600ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Get_count</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Get_count"><H1>MPI_Get_count</H1></A>
Gets the number of "top level" elements 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Get_count( status, datatype, count )
MPI_Status   *status;
MPI_Datatype datatype;
int          *count;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>status </B></TD><TD VALIGN=TOP>return status of receive operation (Status) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>datatype of each receive buffer element (handle) 
<BR></TD></TR></TABLE>
<P>
<H2>Output Parameter</H2>
<DL><DT><B>count </B> <DD> number of received elements (integer) 

Notes:
If the size of the datatype is zero, this routine will return a count of
zero.  If the amount of data in <TT>status</TT> is not an exact multiple of the 
size of <TT>datatype</TT> (so that <TT>count</TT> would not be integral), a <TT>count</TT> of
<TT>MPI_UNDEFINED</TT> is returned instead.
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<P><B>Location:</B>getcount.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Get_elements.html010066400011530000454000000047700655245075600201430ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Get_elements</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Get_elements"><H1>MPI_Get_elements</H1></A>
Returns the number of basic elements in a datatype 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Get_elements ( status, datatype, elements )
MPI_Status    *status;
MPI_Datatype  datatype;
int          *elements;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>status </B></TD><TD VALIGN=TOP>return status of receive operation (Status) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>datatype used by receive operation (handle) 
<BR></TD></TR></TABLE>
<P>
<H2>Output Parameter</H2>
<DL><DT><B>count </B> <DD> number of received basic elements (integer) 
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<P>
<P><B>Location:</B>getelements.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Ibsend.html010066400011530000454000000110120655245075600167170ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Ibsend</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Ibsend"><H1>MPI_Ibsend</H1></A>
Starts a nonblocking buffered send 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Ibsend( buf, count, datatype, dest, tag, comm, request )
void             *buf;
int              count;
MPI_Datatype     datatype;
int              dest;
int              tag;
MPI_Comm         comm;
MPI_Request      *request;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>buf </B></TD><TD VALIGN=TOP>initial address of send buffer (choice) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>count </B></TD><TD VALIGN=TOP>number of elements in send buffer (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>datatype </B></TD><TD VALIGN=TOP>datatype of each send buffer element (handle) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>dest </B></TD><TD VALIGN=TOP>rank of destination (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>tag </B></TD><TD VALIGN=TOP>message tag (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>comm </B></TD><TD VALIGN=TOP>communicator (handle) 
<BR></TD></TR></TABLE>
<P>
<H2>Output Parameter</H2>
<DL><DT><B>request </B> <DD> communication request (handle) 
</DL>
<P>
<H2>Notes for Fortran</H2>
All MPI routines in Fortran (except for <TT>MPI_WTIME</TT> and <TT>MPI_WTICK</TT>) 
havean additional argument <TT>ierr</TT> at the end of the argument list.  <TT>
ierr</TT>is an integer and has the same meaning as the return value of the 
routinein C.  In Fortran, MPI routines are subroutines, and are invoked with 
the<TT>call</TT> statement.
<P>
All MPI objects (e.g., <TT>MPI_Datatype</TT>, <TT>MPI_Comm</TT>) are of type <TT>
INTEGER</TT>in Fortran.
<P>
<H2>Errors</H2>
<P>
All MPI routines (except <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtime</A></TT> and <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node150.html#node150">MPI_Wtick</A></TT>) return an error value;
C routines as the value of the function and Fortran routines in the 
lastargument.  Before the value is returned, the current MPI error handler 
iscalled.  By default, this error handler aborts the MPI job.  The error 
handlermay be changed with <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node148.html#node148">MPI_Errhandler_set</A></TT>; the predefined error 
handler<TT>MPI_ERRORS_RETURN</TT> may be used to cause error values to be returned.
Note that MPI does <EM>not</EM> guarentee that an MPI program can continue 
pastan error.
<P>
<DL><DT><B>MPI_SUCCESS </B> <DD> No error; MPI routine completed successfully.
</DL>
<DL><DT><B>MPI_ERR_COMM </B> <DD> Invalid communicator.  A common error is to use a null
communicator in a call (not even allowed in <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node101.html#node101">MPI_Comm_rank</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_COUNT </B> <DD> Invalid count argument.  Count arguments must be 
non-negative; a count of zero is often valid.
</DL>
<DL><DT><B>MPI_ERR_TYPE </B> <DD> Invalid datatype argument.  May be an uncommitted 
MPI_Datatype (see <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node58.html#node58">MPI_Type_commit</A></TT>).
</DL>
<DL><DT><B>MPI_ERR_TAG </B> <DD> Invalid tag argument.  Tags must be non-negative; tags
in a receive (<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may
also be <TT>MPI_ANY_TAG</TT>.  The largest tag value is available through the 
the attribute <TT>MPI_TAG_UB</TT>.
</DL>
<DL><DT><B>MPI_ERR_RANK </B> <DD> Invalid source or destination rank.  Ranks must be between
zero and the size of the communicator minus one; ranks in a receive
(<TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node34.html#node34">MPI_Recv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node46.html#node46">MPI_Irecv</A></TT>, <TT><A HREF="http://www.mcs.anl.gov/mpi/mpi-report-1.1/node52.html#node52">MPI_Sendrecv</A></TT>, etc.) may also be <TT>MPI_ANY_SOURCE</TT>.
</DL>
<DL><DT><B>MPI_ERR_BUFFER </B> <DD> Invalid buffer pointer.  Usually a null buffer where
one is not valid.
</DL>
<P>
<P><B>Location:</B>ibsend.c<P>
</BODY></HTML>
mpich/www/www3/MPI_Iprobe.html010066400011530000454000000074410655245075600167460ustar00groppmcsz00000400000014<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML3.2 EN">
<HTML>
<HEAD>
<META NAME="GENERATOR" CONTENT="DOCTEXT">
<TITLE>MPI_Iprobe</TITLE>
</HEAD>
<BODY BGCOLOR="FFFFFF">
<A NAME="MPI_Iprobe"><H1>MPI_Iprobe</H1></A>
Nonblocking test for a message 
<H2>Synopsis</H2>
<PRE>
#include "mpi.h"
int MPI_Iprobe( source, tag, comm, flag, status )
int         source;
int         tag;
int         *flag;
MPI_Comm    comm;
MPI_Status  *status;
</PRE>
<H2>Input Parameters</H2>
<TABLE BORDER=0>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>source </B></TD><TD VALIGN=TOP>source rank, or  <TT>MPI_ANY_SOURCE</TT> (integer) 
<BR></TD></TR>
<TR><TD WIDTH=20></TD><TD ALIGN=LEFT VALIGN=TOP><B>tag </B></TD><TD VALIGN=TOP>tag value or  <TT>MPI_ANY_TAG</TT> (integer) 
<BR></TD></TR>
<T