Mark indexperf as failing perf test

With these optimizations, most of the datatype performance tests should
pass.  However, indexperf still fails, since these optimizations to not
address the pattern in indexperf.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Minor typo fix for datatype/dataloop code

While adding dataloop optimizations, a number of places where there
were errors in text or in nomunclature were found and fixed.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Fix incorrect use of status and buffer mgmt

Mostly minor changes in copyright message, but also retained correction
to erroneous use of the status returned by a send request, and correctly
freeing only allocated buffers.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Add detail to error messages in darray-pack

While debugging dataloop optimizations, I needed a little more information
about the errors from this test.  No change to output when there are
no errors.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Add more datatype tests

These tests were inspired by tests in the MPICH-1 test suite
(structpack2.c) or the Intel test suite (vecblklen.c and hvecblklen.c)
that failed with early versions of the dataloop optimization code.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Address many of the perf problems in #1788

This adds a step that optimizes the dataloop representation, primarily
merging CONTIG blocks with the parent dataloop, such as a VECTOR loop.
It also performs a change of VECTOR of CONTIG with extent > size to
VECTOR of VECTOR; this reduces the stack operations needed to perform
the move.

This is a temporary fix for the dataloop performance.  See the DAME
wiki page (http://wiki.mpich.org/mpich/index.php/DAME) for current work
on a replacement, higher performance datatype system.

A partial, but not complete, fix for ticket #1788

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Remove incorrect use of status in test

This test was created from another one that used communication - in that
process, the use of status.MPI_SOURCE needed to be changed and wasn't in
the original version of this test.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Fix location of debugging statement

Statement was placed before one of the values was defined.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Correct error in description

A probably copy and paste error in the description of the block indexed
structure.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Remove incomplete dataloop optimizations

The best approach for some of these optimizations is through the new
system, so this commit removes some of the work in progress to allow
this patch for dataloop performance to be integrated with MPICH
until the dataloop code is replaced.

Signed-off-by: Rob Latham <robl@mcs.anl.gov>
Revert "Mark indexperf as failing perf test"

This reverts commit 12531694f51ca930806613014c1560abcc7a1357.

Jenkins, for one platform/toolchain, still fails these datatype tests. The
results are still correct and performance is no worse, so we need not revert
the whole batch of changes, but the tests are still expected to fail.

No Reviewer
clean up unused variables in panasas hints

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
tiny warning fix for panasas debugging routine

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
update panasas routines for const-ification

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
usleep available but not prototyped in strict mode

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
slightly better checks for Panasas SDK

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
Make concurrent write the default for Panasas

MPI-IO presumes concurrent parallel access, so make that the default.
Applications in strange situations where an MPI-IO program is
manipulating a file while another program manipulates the file can
disable with a hint, but let's make the common, likely case fast.

Signed-off-by: Ken Raffenetti <raffenet@mcs.anl.gov>
ROMIO test case demonstrating indexed type bugs

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 <robl@mcs.anl.gov>
turn datatype test into a function
ROMIO dtype flattening: ignore zero-length counts

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