- 06 Nov, 2013 1 commit
-
-
Junchao Zhang authored
Fixed a set of compiler warnings related to MPI_T code when compiled with -Wall, including "assignment discards 'const' qualifier from pointer target type", "unused variable", "shadows a global declaration" etc. Signed-off-by:
Antonio J. Pena <apenya@mcs.anl.gov>
-
- 05 Nov, 2013 4 commits
-
-
Antonio J. Pena authored
-
Antonio J. Pena authored
Reverted file maint/version.m4 to leave MPICH_RELEASE_DATE with its default value "unreleased development copy". The proper value is actually generated by autogen.sh.
-
Antonio J. Pena authored
-
Rob Latham authored
-
- 03 Nov, 2013 4 commits
-
-
Rob Latham authored
Drop payload into a union paired with a double, and payload will end up double-aligned. Can't use an anonymous union, though: that's c11. named-union requires updating any place that used payload. There aren't too many, though. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
MPI_Count in a status object breaks ABI, so we have a scheme to use lo and hi parts of adjacent struct members. but it's not foolproof. Test case to demonstrate bugs and hopefully catch future regressions. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Pavan Balaji authored
We were checking for (size of datatype < MPIR_COUNT_MAX / count) earlier. This is not a good test when the count is very large. This patch modifies the assertion to (count * size of datatype < MPIR_COUNT_MAX) so we don't run into integer division issues. Signed-off-by:
Rob Latham <robl@mcs.anl.gov>
-
Pavan Balaji authored
In C, left-shift has well-defined behavior, but right-shift does not for signed integers. The implementation is free to pad the shifted bits with 0's or 1's. In this patch, we type-cast the values to unsigned integers to make the behavior well-defined. Signed-off-by:
Rob Latham <robl@mcs.anl.gov>
-
- 02 Nov, 2013 1 commit
-
-
Fixes ticket #1773 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 01 Nov, 2013 5 commits
-
-
Pavan Balaji authored
Use if (@array) format instead of if (defined(@array)) format, since the latter is deprecated in perl. Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
Pavan Balaji authored
Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Pavan Balaji authored
Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Huiwei Lu authored
Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Huiwei Lu authored
To cover the case when multiple communicators are created by MPI_Comm_idup. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 31 Oct, 2013 25 commits
-
-
Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
buildbot reports some crazy error messages: INTERNAL ERROR: invalid error code 3e (Ring ids do not match) in PMPI_T_cvar_handle_alloc:135 valgrind more helpfully points out places where uninitialized varables were being passed into the MPI_T interface. Perhaps MPI_T interface needs to be robust-ified against garbage inputs? Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
This is a conservative setting, but should make MPICH "MPI_T-correct". Once we know more about cvars, we can incrementally relax their scopes. Fixes #1959 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Pavan Balaji authored
The test file was using MPI-I/O functions that the MPICH test suite allows us to enable/disable. This patch moves the test to an iodir format, so it is not run when configured with --disable-romio. The correct longer term fix for this is to allow multiple conditions to disable a given test. For example, we could have configure set the @enable_io@ macro to either '' or '#', and different tests that rely on I/O would add them to the start of the line in the test file. That way, a test that uses both F77 and I/O would be disabled when support for either one is not present. Signed-off-by:
Junchao Zhang <jczhang@mcs.anl.gov>
-
Pavan Balaji authored
Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
Pavan Balaji authored
MPICH currently blocks in MPI_Test. This test forces a case where the program will deadlock if MPI_Test is not nonblocking. Signed-off-by:
Xin Zhao <xinzhao3@illinois.edu>
-
Wesley Bland authored
Apparently my copy/paste was insufficient and I missed this. Sorry about the multi-commit.
-
Wesley Bland authored
The guide was a little unclear about how to use local options for mpiexec executables when running multiple programs (mpiexec -n 1 exec1 : -n 2 exec2). Now it says: Usage: mpiexec [global opts] [local opts for exec1] [exec1] [exec1 args] : ... Fixes #1936
-
configure determines the right type for MPI_Aint, MPI_Fint, and MPI_Count, so we have to move the MPIR_Bsend checks later in configure. Then we can promote a plain int to MPI_Aint. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
MPI_Pack, MPI_Unpack, and MPI_Pack_size use integers to describe counts of bytes and posistions in a bytestream. In a world of 2 GiB+ datatypes, this is not correct. It will take an army to change the standard, but we can at least do the right thing internally. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
MPIR_Type_get_contig_blocks is buggy for certain datatypes (example: HDF5 multi-dataset IO generated type results in a contig block count of 5 billion. should be more like 200). Nothing uses this function except ROMIO's flattening code. I'd like to see profiling suggesting the count of contiguous blocks is a profitable short-circuit before spending a ton of time debugging it. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
clang carped about too many parens around (( a == b)) Fixes #1929 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
formatting fixes and type promotions to chip away at the 1500 lines of warnings that pop up with clang's -Wshorten-64-to-32 flag. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
goal: make MPICH count-safe problem: casting to int when value exceeds INT_MAX solution: remove all "(int)" in front of values assigned to the count field Signed-off-by:
Rob Latham <robl@mcs.anl.gov>
-
strlen returns size_t. since the return argument is localized, there is no reason to not use the proper type to hold the result. Signed-off-by:
Rob Latham <robl@mcs.anl.gov>
-
this internal-to-romio code was using 'ints' to store things like "datatype_size * count" calculation. Promote that and all called paths to ADIO_Offset Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
MPIO_CHECK_COUNT_SIZE was designed to ensure "count*datatype_size" did not overflow integers. Well, I've done my best to relax that need throughout MPICH, so the cast to unsigned is not needed. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
The test suite has failures like this: Assertion failed in file /home/robl/work/mpich/src/mpid/ch3/src/ch3u_rma_ops.c at line 552 : ((dloop_vec[i].iov_len)/type_size) >= expr_inttype_min(count) Even though dloop_vec[i].iov_len is 4, type_size is 4, and expr_inttype_min(count) is -INT_MAX, this assertion is still failing. while the _Generic-based test was giving strange assertion failures, the cast-and-compare version still works and should be used. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Not much in MPICH consults the max_contig_count field of the datatypes, except ROMIO. Resized types were reporting "huge negative number" for the count of contiguous blocks because datatype code wasn't setting the max_contig_count member. Why 3? The lower bound and upper bound parts of the datatype, while not actually data or blocks, are effectively blocks for the purposes of the one client of this code -- the ROMIO datatype flattening code. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Rob Latham authored
When flattening a datatype, be mindful of overflowing integers Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Rob Latham authored
Trying to find all places in the datatype/dataloop code that put size of datatype into an integer. It's easy, even under MPI-2, to describe more than an integers worth of data with an MPI datatype. since Dataloop code calls other dataloop code, just go ahead and make everything a DLOOP_Count type Fixes #1890 Fixes #1893 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Rob Latham authored
MPI-3 introduced MPI_Count and MPI_Type_size_x. Use these new routines throughout ROMIO to support large datatypes. Still to do: - update other ADIO drivers Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Rob Latham authored
Dancing around with various schemes to detect/deal-with compiler padding in structs so the 'payload' field ends up double-aligned. The new "large type , large count" work introduced a pointer into the nemisis packet, so we have to be a bit more dynamic about how or if we pad out the structure. - put the members of MPID_nem_pkt_header inside a struct, so subsequent payload does not "fall into" compiler-introduced padding - use this updated datatype to determine the size, and if we need to pad or not. - use the result of the configure test to introduce padding, or omit the padding from the definition if the amount of padding is '0' Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Also includes random fixes to `-Wshorten-64-to-32` warnings which might need to be teased out. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-