Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
MPI_Type_hindexed(3)		      MPI		  MPI_Type_hindexed(3)

NAME
       MPI_Type_hindexed -  Creates an indexed datatype	with offsets in	bytes

SYNOPSIS
       int MPI_Type_hindexed(int count,
			    MPICH2_CONST int blocklens[],
			    MPICH2_CONST MPI_Aint indices[],
			    MPI_Datatype old_type,
			    MPI_Datatype *newtype)

INPUT PARAMETERS
       count  -	 number	 of  blocks  --	 also number of	entries	in indices and
	      blocklens
       blocklens
	      -	number of elements in each block (array	of  nonnegative	 inte-
	      gers)
       indices
	      -	byte displacement of each block	(array of MPI_Aint)
       old_type
	      -	old datatype (handle)

OUTPUT PARAMETER
       newtype
	      -	new datatype (handle)

DEPRECATED FUNCTION
       The  MPI-2  standard deprecated a number	of routines because MPI-2 pro-
       vides better versions.  This routine is one of those  that  was	depre-
       cated.	The  routine  may continue to be used, but new code should use
       the replacement routine.	 This routine  is  replaced  by	 MPI_Type_cre-
       ate_hindexed .

THREAD AND INTERRUPT SAFETY
       This  routine  is  thread-safe.	 This  means  that this	routine	may be
       safely used by multiple threads without the need	for any	 user-provided
       thread  locks.  However,	the routine is not interrupt safe.  Typically,
       this is due to the use of memory	allocation routines such as malloc  or
       other  non-MPICH	 runtime  routines  that are themselves	not interrupt-
       safe.

NOTES FOR FORTRAN
       All MPI routines	in Fortran (except for MPI_WTIME and MPI_WTICK )  have
       an  additional  argument	ierr at	the end	of the argument	list.  ierr is
       an integer and has the same meaning as the return value of the  routine
       in  C.	In Fortran, MPI	routines are subroutines, and are invoked with
       the call	statement.

       All MPI objects (e.g., MPI_Datatype , MPI_Comm )	are of type INTEGER in
       Fortran.

       The  indices are	displacements, and are based on	a zero origin.	A com-
       mon error is to do something like to following
       integer a(100)
       integer blens(10), indices(10)
       do i=1,10
       blens(i)	  = 1
       10	indices(i) = (1	+ (i-1)*10) * sizeofint
       call MPI_TYPE_HINDEXED(10,blens,indices,MPI_INTEGER,newtype,ierr)
       call MPI_TYPE_COMMIT(newtype,ierr)
       call MPI_SEND(a,1,newtype,...)

       expecting this to send a(1),a(11),...  because the indices have	values
       1,11,...	  .  Because these are displacements from the beginning	of a ,
       it actually sends a(1+1),a(1+11),...  .

       If you wish to consider the displacements as indices into a Fortran ar-
       ray, consider declaring the Fortran array with a	zero origin
       integer a(0:99)

ERRORS
       All  MPI	 routines  (except  MPI_Wtime  and MPI_Wtick ) return an error
       value; C	routines as the	value of the function and Fortran routines  in
       the last	argument.  Before the value is returned, the current MPI error
       handler is called.  By default, this error handler aborts the MPI  job.
       The error handler may be	changed	with MPI_Comm_set_errhandler (for com-
       municators), MPI_File_set_errhandler (for files),  and  MPI_Win_set_er-
       rhandler	 (for  RMA windows).  The MPI-1	routine	MPI_Errhandler_set may
       be used but its	use  is	 deprecated.   The  predefined	error  handler
       MPI_ERRORS_RETURN  may  be  used	 to cause error	values to be returned.
       Note that MPI does not guarentee	that an	MPI program can	continue  past
       an  error;  however, MPI	implementations	will attempt to	continue when-
       ever possible.

       MPI_SUCCESS
	      -	No error; MPI routine completed	successfully.
       MPI_ERR_TYPE
	      -	Invalid	datatype argument.  May	be an uncommitted MPI_Datatype
	      (see MPI_Type_commit ).
       MPI_ERR_COUNT
	      -	Invalid	count argument.	 Count arguments must be non-negative;
	      a	count of zero is often valid.
       MPI_ERR_INTERN
	      -	This error is returned when some part of the MPICH implementa-
	      tion is unable to	acquire	memory.
       MPI_ERR_ARG
	      -	Invalid	argument.  Some	argument is invalid and	is not identi-
	      fied by a	specific error class (e.g., MPI_ERR_RANK ).

LOCATION
       src/mpi/datatype/type_hindexed.c

				   9/20/2012		  MPI_Type_hindexed(3)

NAME | SYNOPSIS | INPUT PARAMETERS | OUTPUT PARAMETER | DEPRECATED FUNCTION | THREAD AND INTERRUPT SAFETY | NOTES FOR FORTRAN | ERRORS | LOCATION

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=MPI_Type_hindexed&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help