1. 22 Jun, 2015 1 commit
  2. 26 Feb, 2015 1 commit
  3. 23 Feb, 2015 1 commit
  4. 18 Feb, 2015 1 commit
  5. 13 Feb, 2015 1 commit
  6. 31 Jan, 2015 1 commit
  7. 30 Jan, 2015 3 commits
    • Wesley Bland's avatar
      Add MPIC_Issend · 6556f351
      Wesley Bland authored
      
      
      Part of converting the NBC code to use the MPIC_* functions requires
      an MPIC_Issend function to exist. This adds it.
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      6556f351
    • Wesley Bland's avatar
      Refactor MPIC functions to use the MPID objects · 54362c00
      Wesley Bland authored
      
      
      The MPIC helper functions have been using MPI_Comm and MPI_Request
      objects instead of their MPID_* counterparts. This leads to a bunch of
      unnecessary conversions back and forth between the two types of objects
      and makes the work incompatible with other parts of the codebase
      (non-blocking collectives for instance).
      
      This patch converts all of the MPIC_* functions to use MPID_Comm and
      MPID_Request and changes all of the collective calls to use them now
      too.
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      54362c00
    • Wesley Bland's avatar
      Refactor MPIC_Wait to return an errflag · c04f0851
      Wesley Bland authored
      
      
      The collective helper functions generally have an errflag that is used
      when a failure is detected to allow the collective to continue while
      also communicating that a failure occurred. That flag is now included
      as a parameter for MPIC_Wait.
      
      The rest of this commit is the refactoring necessary in the rest of the
      helper functions to support the change.
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      c04f0851
  8. 27 Jan, 2015 1 commit
  9. 22 Jan, 2015 1 commit
    • Huiwei Lu's avatar
      FT: Fixes ref counts in shrink and agree · 93e816cc
      Huiwei Lu authored
      
      
      When process fails, fault tolerance scheme takes a different path to
      deal with MPI object reference counts than the existing one. Some
      reference counts were not properly set in FT path so when configured
      with --enable-g=all, some ft tests will show leaked context id, dirty
      COMM, GROUP and REQUEST objects and so on when exit.
      
      This patch fixes ft/shrink and ft/agree with "--enable-g=all". Stack
      allocated objects of requests, communicators and groups will be freed by
      FT.
      Signed-off-by: default avatarWesley Bland <wbland@anl.gov>
      93e816cc
  10. 12 Nov, 2014 3 commits
    • Wesley Bland's avatar
      Correctly handle errflag in MPI collectives · 47f62b0c
      Wesley Bland authored
      
      
      The MPI collectives get and set the errflag used by the collective
      helper functions (MPIC_*). The possible values of the errflag changed,
      so the collective functions need to appropriately set this value using
      either MPIR_ERR_NONE (MPI_SUCCESS), MPIR_ERR_PROC_FAILED
      (MPIX_ERR_PROC_FAILED), or MPIR_ERR_OTHER (MPI_ERR_OTHER).
      
      This should allow collectives to correctly report process failures when
      they occur now, fixing the FT tests that use collectives (see #1945).
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      47f62b0c
    • Wesley Bland's avatar
      Change errflag to be an enum · 3850e6bf
      Wesley Bland authored
      
      
      The errflag value being used in the MPIC helper functions only
      propagated whether or not an error occurred. It did not contain any
      information about what kind of error occurred, which made returning the
      correct error code after a process failure impossible.
      
      This patch converts the binary value to an enum with three options:
      MPIR_ERR_NONE
      MPIR_ERR_PROC_FAILED
      MPIR_ERR_OTHER
      
      The original use of TRUE and false maps to MPIR_ERR_NONE and
      MPIR_ERR_OTHER.
      
      MPIR_ERR_PROC_FAILED indicates that the error occurred
      because of a process failure. It uses the new bit set aside from the tag
      space to track such information between processes.
      
      This change required modifying lots of function signatures and type
      declarations to use the new enum type, but these are actually not very
      intrusive changes and shouldn't be a problem going forward.
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      3850e6bf
    • Wesley Bland's avatar
      Take a bit in the tag space for proc failure · 46f59276
      Wesley Bland authored
      
      
      We need to take another bit from the tag space to specify the difference
      between a generic failure and a process failure. This patch modifies the
      macros to handle this situation.
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      46f59276
  11. 23 Oct, 2014 2 commits
    • Wesley Bland's avatar
      Fix typo in 72513b14 · 4b20f2d2
      Wesley Bland authored
      4b20f2d2
    • Wesley Bland's avatar
      Remove _FT from state names · 72513b14
      Wesley Bland authored
      Back in the 3.1 series, we made the FT versions of all of the MPIC functions
      default. However, we never changed the names of all of the states. This
      removes the extra state names.
      
      No reviewer.
      72513b14
  12. 22 Oct, 2014 1 commit
    • Wesley Bland's avatar
      Fix typo in bcast macro · e49213d6
      Wesley Bland authored
      
      
      The macro that called the bcast function left out an underscore in the
      mpi_errno return value. This caused the test to always return MPI_ERR_OTHER
      instead of the value being returned by the underlying bcast function.
      Signed-off-by: default avatarHuiwei Lu <huiweilu@mcs.anl.gov>
      e49213d6
  13. 21 Oct, 2014 1 commit
  14. 20 Oct, 2014 1 commit
  15. 14 Oct, 2014 1 commit
  16. 10 Oct, 2014 1 commit
    • Igor Ivanov's avatar
      mpi/coll: Fix incorrect parameter check · cc4b0952
      Igor Ivanov authored and Pavan Balaji's avatar Pavan Balaji committed
      
      
      Fixed wrong parameter check condition for MPI_Iallgather and MPI_Iallgatherv
      -1 is valid value for sendcount in case MPI_IN_PLACE
      MPI spec says:
      The in place option for intracommunicators is specified by passing the value
      MPI_IN_PLACE to the argument sendbuf at all processes. In such a case, sendcount and
      sendtype are ignored, and the input data of each process is assumed to be in the area where
      that process would receive its own contribution to the receive buffer.
      Signed-off-by: default avatarIgor Ivanov <Igor.Ivanov@itseez.com>
      Signed-off-by: Pavan Balaji's avatarPavan Balaji <balaji@anl.gov>
      cc4b0952
  17. 01 Oct, 2014 1 commit
  18. 31 Jul, 2014 3 commits
  19. 19 Jul, 2014 1 commit
  20. 07 Jul, 2014 3 commits
  21. 26 Jun, 2014 1 commit
  22. 10 Jun, 2014 1 commit
  23. 18 Apr, 2014 1 commit
    • Wesley Bland's avatar
      Makes sure that the status object is always defined · cdd8e0b7
      Wesley Bland authored
      
      
      In the MPIC_Sendrecv functions, the status object should always be defined
      since we use it internally. This won't have any impact on performance since
      the default is always to have FT collectives turned on anyway, but it will
      prevent a crash when someone overwrites that default.
      
      Fixes #2026
      Signed-off-by: Sangmin Seo's avatarSangmin Seo <sseo@anl.gov>
      cdd8e0b7
  24. 11 Apr, 2014 1 commit
  25. 01 Apr, 2014 1 commit
    • Pavan Balaji's avatar
      Move symbols to correct libraries. · 9c337914
      Pavan Balaji authored and Kenneth Raffenetti's avatar Kenneth Raffenetti committed
      
      
      Maintain a list of files that go into each library.  If a particular
      binding is not enabled, the list variable still exists, but will just
      be empty.  This simplifies the management of which files/symbols go
      into which library.
      
      Move all MPI_ symbols to the libmpi library and all other symbols to
      the libpmpi library.  All Fortran 77 symbols go into libmpif77.so,
      while C symbols go into libmpi.so.  There are some exceptions, such as
      status_f2c, which are handled by the Fortran code but used in C.  Our
      Fortran 90 build only creates a few symbols and uses the f77 symbols
      for everything else.  These few symbols go into libmpifort.so.
      
      Also update compiler wrappers to link to correct libraries.  mpif77
      should now link with libmpif77.  mpif90 links with both libmpifort and
      libmpif77, since our F90 build still keeps the core Fortran library
      symbols in libf77.
      
      We completely ignored the F77 library earlier.  This was OK because
      all of the Fortran symbols were ending up in libmpi.  Now that we have
      separated out the symbols to the right library, we now need to link to
      libmpif77 as well.
      
      Also added inter-library dependencies.
      
      libmpi has a dependency on several internal libraries: libmpl, libopa.
      libmpicxx did not have a dependency on libmpi, added.
      libmpif77 did not have a dependency on libmpi, added.
      libmpifort did not have a dependency on libmpi, added.
      
      This dependency model is sufficient for C and F77, but not for C++ and
      F90.  The C and F77 libraries contain all the symbols the application
      relies on, but the F90 and C++ libraries don't.  In the case of F90,
      symbols such as mpi_bcast are missing and are borrowed from the F77
      library.  In the case of C++, mpicxx.h contains calls directly to C
      functions (such as MPI_Reduce_local), which get embedded into the
      application.
      
      Fixes #2023.
      Signed-off-by: Kenneth Raffenetti's avatarKen Raffenetti <raffenet@mcs.anl.gov>
      9c337914
  26. 26 Feb, 2014 1 commit
  27. 07 Jan, 2014 2 commits
    • Pavan Balaji's avatar
      Make SMP-awareness in MPI_Barrier consistent. · 4f977797
      Pavan Balaji authored
      
      
      The current implementation of SMP-awareness in MPI_Barrier was in
      MPIR_Barrier_impl.  This makes the default implementation of barrier
      SMP-aware.  However, if a device overrides barrier and then calls back
      the default implementation through MPIR_Barrier, it can no longer take
      advantage of SMP-awareness.  This patch moves the SMP-aware
      implementation to MPIR_Barrier_intra, which is called by
      MPIR_Barrier_impl through MPIR_Barrier, in the default implementation.
      See #1957.
      Signed-off-by: default avatarMichael Blocksome <blocksom@us.ibm.com>
      4f977797
    • Pavan Balaji's avatar
      Remove duplicate code. · 0743c396
      Pavan Balaji authored
      
      
      Use MPIR_Bcast as an inline function, and let the compiler do its job,
      instead of duplicating the code.
      Signed-off-by: default avatarMichael Blocksome <blocksom@us.ibm.com>
      0743c396
  28. 31 Dec, 2013 3 commits