1. 22 May, 2014 8 commits
    • Nysal Jan K.A's avatar
      pamid: Allow message sizes greater than 4GB · 98b5e585
      Nysal Jan K.A authored
      
      
      Allow message sizes >= 4GB
      
      Fixes #2076
      
      Signed-off-by: default avatarMichael Blocksome <blocksom@us.ibm.com>
      98b5e585
    • Junchao Zhang's avatar
      Add a bunch of F08 subarray tests · 4d8d2518
      Junchao Zhang authored
      No review since F08 binding is experimental now.
      4d8d2518
    • Junchao Zhang's avatar
      Add basic (non)contiguous subarray support · 60059770
      Junchao Zhang authored
      The compile time constant MPI_SUBARRAYS_SUPPORTED is changed to true now.
      
      To test if a subarray is contiguous, one may use CFI_is_contiguous(cdesc). But note that
      CFI_is_contiguous(cdesc) is only applicable to arrays. When cdesc is a descripitor for a scalar,
      CFI_is_contiguous(cdesc) returns false. But apparently, scalars are contiguous in MPI's viewpoint.
      So we add a check against scalars.
      
      No review since F08 binding is experimental now.
      60059770
    • Junchao Zhang's avatar
      Add the missing mpi_c_interface.F90 in makefile · 59acd452
      Junchao Zhang authored
      No review since F08 binding is experimental now.
      59acd452
    • Junchao Zhang's avatar
      Comment out c_funptr code due to Cray ftn bugs · 8ad3b137
      Junchao Zhang authored
      A small test case written by Bill Long. The err msg reported by the Cray compiler is :
      "If the C_PTR_2 argument is specified for the C_ASSOCATED intrinsic, it must have the same type as the C_PTR_1 argument."
      
      subroutine test (f, g, same)
        use,intrinsic :: iso_c_binding
        external :: f, g
        logical  :: same
        type(c_funptr) :: fp
        type(c_funptr) :: gp
      
        fp = c_funloc(f)
        gp = c_funloc(g)
      
        same = c_associated (fp, gp)          ! This gives the error
        same = c_associated (fp, c_funloc(g)) ! This gives the error too.
      end subroutine test
      
      No review since F08 binding is experimental now.
      8ad3b137
    • Junchao Zhang's avatar
      Fix whole array access errs on assumed-size arrays · a20b3882
      Junchao Zhang authored
      No review since F08 binding is experimental now.
      a20b3882
    • Junchao Zhang's avatar
      Revise impl of MPI_IN_PLACE and MPI_BOTTOM · 9008c2f7
      Junchao Zhang authored
      Since Fortran forbids passing a disassociated (e.g., NULL) pointer to a non-pointer dummy argument
      (e.g., an assumed-type, assumed-rank argument), we can not use the same MPI_BOTTOM value in C from Fortran.
      So we use another approach.
      
      See implementation details at the EuroMPI-2014 paper "Implementing the MPI-3.0 Fortran 2008 Binding"
      
      No review since F08 binding is experimental now.
      9008c2f7
    • Junchao Zhang's avatar
      Code cleanup · 1c2b3d35
      Junchao Zhang authored
      No review since F08 binding is experimental now.
      1c2b3d35
  2. 21 May, 2014 1 commit
  3. 20 May, 2014 1 commit
  4. 19 May, 2014 3 commits
  5. 13 May, 2014 1 commit
    • Michael Blocksome's avatar
      pamid: force context post on when using 'per-object' locks · 3e57215e
      Michael Blocksome authored
      The previous code would attempt to run in 'latency optimization mode' if
      the application requested !MPI_THREAD_MULTIPLE and yet still was linking
      with a 'per-object' mpich library - which is optimized for throughput.
      This means that in !MPI_THREAD_MULTIPLE:
      - context post was disabled
      - async progress was disabled
      - using multiple contexts was disabled
      
      This attempt to give users "better" performance in a fundamentally
      flawed configuration would cause the pamid adi to hang on acquiring a
      context lock. For example, consider:
      1. work function is posted to a context
      2. thread acquires the context lock
      3. thread advances the context
      4. work function invoked, then attempts to initiate communication
      5. WITH CONTEXT POST OFF the thread will attempt to acquire the context
         lock before it directly invokes the communcation function
      6. HANG
      
      A complete solution would be to identify all code paths that might
      result in this situation and instead avoid acquiring a lock that is
      already held.
      
      It should be noted that this is a bug in the pamid adi and NOT in the
      PAMI library iteself. The PAMI interface is explicit in that the
      PAMI_Context_lock() is non-recursive - for performance reasons.
      3e57215e
  6. 12 May, 2014 4 commits
  7. 09 May, 2014 5 commits
  8. 08 May, 2014 5 commits
  9. 06 May, 2014 6 commits
    • Rob Latham's avatar
      ROMIO: Consolidate errno processing · 42056d48
      Rob Latham authored
      
      
      not every file system lives in a posix-like environment, but many do.
      for those file systems, open and delete will return -1 and set errno.
      The translation from unix erno to MPI error class was haphazard.  Get
      all aplicable file systems using ADIOI_Err_create_code so we have one
      place to update error code conversion.
      
      Closes: #2075
      
      Signed-off-by: default avatarWei-keng Liao <wkliao@ece.northwestern.edu>
      42056d48
    • Rob Latham's avatar
      Deal with more errno values · e0154ed8
      Rob Latham authored
      
      
      In preparation for using ADIOI_Err_create_code everywhere,
      ADIOI_Err_create_code did not handle some errno values that fs-specific
      drivers were handling.
      
      Signed-off-by: default avatarWei-keng Liao <wkliao@ece.northwestern.edu>
      e0154ed8
    • Rob Latham's avatar
      test case for 'resized of resized' · e3813c2e
      Rob Latham authored
      ROMIO flattening code presently does not handle resized-of-resized
      types.
      
      See #2088
      e3813c2e
    • Rob Latham's avatar
      ROMIO dtype flattening: ignore zero-length counts · 50f3d580
      Rob Latham authored
      Bill Gropp reminds us not to forget this text from MPI-3
      MPI-3, page 84, lines 18-20.
      
        "Most datatype constructors have replication count or block length
        arguments. Allowed values are non-negative integers. If the value is
        zero, no elements are generated in the type map and there is no effect
        on datatype bounds or extent."
      
      The ROMIO flattening codes was treating blocklen elments of zero as
      significant.
      
      the struct case probably has the same bug, but I'm deeply nervous about
      touching too much of this old code with a release imminent.
      
      Closes: #2073
      50f3d580
    • Rob Latham's avatar
      turn datatype test into a function · 41908007
      Rob Latham authored
      41908007
    • Wei-keng Liao's avatar
      ROMIO test case demonstrating indexed type bugs · 71f1dae1
      Wei-keng Liao authored and Rob Latham's avatar Rob Latham committed
      
      
      The problem is when defining a filetype using MPI_Type_indexed and the
      first few elements of argument blocklens[] are zeros, a collective write
      will miss writing some data.
      
      The test program first fills a file with 9 integers with values all
      -999.  It then defines a filetype and writes to the file in parallel
      with user buffers with value all 1s. Lastly, the file is read back and
      checked for contents.
      
      (it's Wei-keng's test case. I just hooked it into ROMIO's test suite)
      
      Signed-off-by: Rob Latham's avatarRob Latham <robl@mcs.anl.gov>
      71f1dae1
  10. 05 May, 2014 6 commits