Changeset 5669

Show
Ignore:
Timestamp:
11/03/09 08:19:00 (3 weeks ago)
Author:
balaji
Message:

Delete the older code for allgatherv (large messages) which has now
been replaced with the new pipelined algorithm for a few releases.

Reviewed by goodell.

Location:
mpich2/trunk
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • mpich2/trunk/configure.in

    r5568 r5669  
    366366fi 
    367367 
    368 dnl Check for pipelined collectives 
    369 AC_ARG_ENABLE(pipecoll, [--enable-pipecoll - Enable support for pipelined collectives], 
    370         pipecoll=$enableval, 
    371         pipecoll=yes) 
    372  
    373 if test $pipecoll = "yes" ; then 
    374    AC_DEFINE(USE_PIPE_COLLECTIVES,1,[define to enable pipelined collectives]) 
    375 fi 
    376  
    377 dnl 
    378368dnl The environment variable MPICH_DEBUGLIBNAME may be used to override the 
    379369dnl default name of the library that the debugger will load to access the 
  • mpich2/trunk/src/mpi/coll/allgatherv.c

    r5355 r5669  
    695695        MPIU_Free((char*)tmp_buf + recvtype_true_lb); 
    696696    } 
    697  
    698 #ifdef USE_PIPE_COLLECTIVES 
    699697    else { 
    700698        /* long message or medium-size message and non-power-of-two 
     
    807805        } 
    808806    } 
    809 #else /* This case is retained as its more tested; we should eventually discard it */ 
    810     else {  /* long message or medium-size message and non-power-of-two 
    811              * no. of processes. Use ring algorithm. */ 
    812         int jnext; 
    813  
    814         if (sendbuf != MPI_IN_PLACE) { 
    815             /* First, load the "local" version in the recvbuf. */ 
    816             mpi_errno = MPIR_Localcopy(sendbuf, sendcount, sendtype,  
    817                               ((char *)recvbuf + displs[rank]*recvtype_extent), 
    818                                        recvcounts[rank], recvtype); 
    819             /* --BEGIN ERROR HANDLING-- */ 
    820             if (mpi_errno) 
    821             { 
    822                 mpi_errno = MPIR_Err_create_code(mpi_errno, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER, "**fail", 0); 
    823                 return mpi_errno; 
    824             } 
    825             /* --END ERROR HANDLING-- */ 
    826         } 
    827  
    828         left  = (comm_size + rank - 1) % comm_size; 
    829         right = (rank + 1) % comm_size; 
    830    
    831         j     = rank; 
    832         jnext = left; 
    833         for (i=1; i<comm_size; i++) { 
    834             mpi_errno = MPIC_Sendrecv(((char *)recvbuf+displs[j]*recvtype_extent), 
    835                                       recvcounts[j], recvtype, right, 
    836                                       MPIR_ALLGATHERV_TAG,  
    837                                  ((char *)recvbuf + displs[jnext]*recvtype_extent), 
    838                                       recvcounts[jnext], recvtype, left,  
    839                                       MPIR_ALLGATHERV_TAG, comm, &status ); 
    840             /* --BEGIN ERROR HANDLING-- */ 
    841             if (mpi_errno) 
    842             { 
    843                 mpi_errno = MPIR_Err_create_code(mpi_errno, MPIR_ERR_RECOVERABLE, FCNAME, __LINE__, MPI_ERR_OTHER, "**fail", 0); 
    844                 return mpi_errno; 
    845             } 
    846             /* --END ERROR HANDLING-- */ 
    847             j       = jnext; 
    848             jnext = (comm_size + jnext - 1) % comm_size; 
    849         } 
    850     } 
    851 #endif /* USE_PIPE_COLLECTIVES */ 
    852807 
    853808  /* check if multiple threads are calling this collective function */