- 26 Mar, 2014 9 commits
-
-
Rob Latham authored
There are many memory allocations in the write path. Allocating the two-phase intermediate buffer outside of the write path might on some systems make a small difference, especially if there are many collective I/O calls, or if the system (like Blue Gene) has a small amount of memory. Modified from Paul Coffman <pkcoff@us.ibm.com>'s original idea.
-
Rob Latham authored
For quite some time the barrier here has had the comment 'Why?'. Since no one knows, and there are plenty of other syncronization points in this path, remove it.
-
Rob Latham authored
bluegene timer code had two "levels" of timing. that seemed kind of pointless so lump it all into one level.
-
Rob Latham authored
this "new" system call (part of POSIX-2001) saves us a system call on Blue Gene. Seems to get us back 5 seconds for one workload at small (half rack) scales.
-
Rob Latham authored
bglockles uses the common read/write routines for contig read/wrties, so bluegene timing infrastrucutre wasn't actually timing anything. Since this introduces blue gene bits into common code, please do not merge to master. Instead, we should rework all the timing bits so that it no longer times "bluegene" but rather all of ROMIO. Furthermore, the locky bits of 'bg:' driver should be yanked anyway, obviating the need for bglockless.
-
Rob Latham authored
Protected by an 'ifdef', this BGL-era code bitrotted a bit. clean it up and see if it does anything useful today. - Removes preprocessor guards: the counters and timers do nothing expensive unless environment variables are set - remove the idea of a "level" - remove barrier from timing collection. - bugfix: MPI_Wtime() does not necessarily start at zero, so properly initialze timers for collective read/write - report only from I/O aggregators. when reporting "time spent in i/o" vs "time spent communicating" it makes more sense to look only at the aggregators. The non-aggregators are going to skew the results because they are spending some communication time actually communicating, but some of that time blocked, waiting for aggregators to finish.
-
De-dupes executable and host names in the MPIR_proctable by pointing to an existing copy. Closes #1821 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
Pavan Balaji authored
The following commits are reverted. 1. "Better checks for VA_ARGS."; commit de80ec87. 2. "Warning squash for clang."; commit ccf7f70c . The clang warning this was originally trying to solve has been fixed by the newer versions of clang, AFAICT. Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Pavan Balaji authored
No reviewer.
-
- 25 Mar, 2014 1 commit
-
-
Rob Latham authored
ROMIO code assumes all processes will use the same ROMIO driver. we were not reaching the "find a common file system" logic when NFS was enabled, everyone stat-ed the file system without errors, but some processees found a different file system (like if some processes are writing to NFS and others to UFS) See discussion beginning here: http://lists.mpich.org/pipermail/discuss/2014-March/002403.html Tested-by:
Jeff Squyres <jsquyres@cisco.com>
-
- 24 Mar, 2014 10 commits
-
-
Rob Latham authored
Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Rob Latham authored
Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Michael Blocksome authored
powerpc64-bgq-linux-gcc v4.7.2
-
Rob Latham authored
Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Rob Latham authored
Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Rob Latham authored
Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Rob Latham authored
Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Kenneth Raffenetti authored
Test the use of Reduce_local in C++. Use multiple built-in datatypes, as well as a derived vector.
-
Kenneth Raffenetti authored
-
Fixes #2014 Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
- 23 Mar, 2014 1 commit
-
-
The constant MPIDI_TAG_UB is used in only one place at the moment, in the initialization of ch3 (source:src/mpid/ch3/src/mpid_init.c@4b35902a#L131). The problem is that the value which is being set (MPIR_Process.attrs.tag_ub) is set differently in pamid (INT_MAX). This leads to weird results when we set apart a bit in the tag space for failure propagation in non-blocking collectives (see #2008). Since this value isn't being referenced anywhere else, there doesn't seem to be a use for it and it's just leading to confusion. To avoid this, here we remove this value and just set MPIR_Process.attrs.tag_ub to INT_MAX in both ch3 and pamid. See #2009 Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 22 Mar, 2014 1 commit
-
-
William Gropp authored
make clean in test should remove all generated files. This file was not added to the clean list when it was added to the runlist output.
-
- 21 Mar, 2014 1 commit
-
-
f77 and f90 were not consistent names with respect to what the code was providing. For example, "f90" also used code from "f77". This patch changes the naming to "mpif_h" and "use_mpi", which correspond to using the mpif.h and "use mpi module" conventions specified by the MPI standard. This also includes changes to buildiface, autogen.sh and .gitignore to work with these changes. Signed-off-by:
Pavan Balaji <balaji@mcs.anl.gov>
-
- 20 Mar, 2014 1 commit
-
-
Junchao Zhang authored
Fixes #2044 Signed-off-by:
Antonio J. Pena <apenya@mcs.anl.gov>
-
- 19 Mar, 2014 1 commit
-
-
Su Huang authored
The scenario of the hang is described as follows: Assuming the job runs with 4 tasks, task 0 is in a loop of processing the following RMA operations to fetch the displacement, the loop ends if the displacement is being updated. MPI_Win_get_accumulate( target rank is task 0) MPI_Win_flush(task 0) task 1 and 3 hang in MPI_Win_flush() waiting for a call to MPI_Win_compare_and_swap() to complete. The target rank for this operation is task 0. task 2 hangs in MPI_Win_flush() waiting for a call to MPI_Accumulate() to complete. The target rank for this operation is task 0 as well. Task 0 is busy making MPI_Win_get_accumulate() and MPI_Win_flush() calls to see if the displacement is being updated, the target rank of the operation is task 0 itself which means the operation is local and can be completed without a need of making a PAMI dispatcher call. Meanwhile, the other three tasks issue RMA operations to the target task 0 and wait for the completion of the operations. Because task 0 is in a loop of making local operations, no PAMI dispatcher is called, no progress made for any remote operations which is the root cause of the hang. The fix for the problem is to add a call to PAMI dispatcher in MPI_Win_flush(), the call is made prior to the check of the condition. Current code checks the condition first, if the condition is satisfied, then no PAMI dispatcher is called. The following statement in MPI_Win_flush() MPID_PROGRESS_WAIT_WHILE(sync->total != sync->complete) will be replaced by MPID_PROGRESS_WAIT_DO_WHILE(sync->total != sync->complete) (ibm) D196445 Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
- 18 Mar, 2014 1 commit
-
-
Kenneth Raffenetti authored
The suncc compiler on Linux did not like the ternary conditional operands having different types. No reviewer.
-
- 17 Mar, 2014 7 commits
-
-
These file had allowed uses of routines that aren't always permitted according to our coding style. These edits let the coding style checker know that these uses are ok (most uses of printf or malloc/free in MPICH are incorrect - see the style guide). Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
The coding standards are clear on this; since we can't trust the system header files not to make definitions that conflict with ours, good coding practice is to make all MPICH names distinct. The MPIR_MIN and MPIR_MAX definitions were made long ago for just this purpose. Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
The coding checker sometimes needs some hints that certain uses are permitted. This adds the necessary information to some of the generated files. Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
Antonio J. Pena authored
Fixes #2048 Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
Rob Latham authored
Discussion with Michael Raymond: a customer would "like to use larger than 32-bit stripe units". Technically, lustre only supports a 32 bit value for its stripe units -- an *unsigned* 32 bit value. Since we're here, let's double check that we do not try to jam a larger value into the lustre hint structure than lustre can support. Signed-off-by:
Michael Raymond <mraymond@sgi.com>
-
Junchao Zhang authored
Pathscale C compiler reports symbol redefinition error for mpi_conversion_fn_null__ in such code extern int mpi_conversion_fn_null__ ( void*v1, MPI_Fint*v2, MPI_Fint*v3, void*v4, MPI_Offset*v5, MPI_Fint *v6, MPI_Fint*v7, MPI_Fint *ierr ) __attribute__((weak,alias("mpi_conversion_fn_null_"))); \#pragma weak mpi_conversion_fn_null__ = mpi_conversion_fn_null_ We should only generate one form code using either "__attribute__" or "#pragma weak" Fixes #2044 Signed-off-by:
Antonio J. Pena <apenya@mcs.anl.gov>
-
Huiwei Lu authored
Supports 'make dist', 'make -j' and others. 1. Several tests has been added to test/mpi since the ticket 1720 was created. These new tests are added to corresponding Makefile.am. 2. There is one minor thing I am not sure in this fix. I don't know the different of noinst_HEADERS and nodist_noinst_HEADERS, so I just put all head files under noinst_HEADERS (in test/mpi/Makefile.am). 3. Windows project files like adapt.vcproj were deleted in commit ba3badff , they should be removed in test/mpi/basic/Makefile.am too. 4. MPICH ABI removed support for MPI::Distgraphcomm, so distgraphcxx.cxx is changed to be not compiled in cxx/topo. 5. One minor change in help description in test/mpi/runtests.in. So when you run './runtests -batch', you will get help message directing you to README. Fixes #1720 Signed-off-by:
Antonio J. Pena <apenya@mcs.anl.gov>
-
- 15 Mar, 2014 1 commit
-
-
Rob Latham authored
if we know the underlying file system supports "resize from one", then we do not need the non-aggregator processes to open the file Signed-off-by:
Paul Coffman <pkcoff@us.ibm.com>
-
- 14 Mar, 2014 2 commits
-
-
Kenneth Raffenetti authored
The Solaris/Sun compilers accept the -Wl, style flags for passing arguments to the linker in version 8.5 on Linux. We wse this method, as the compiler no longer passes unrecognized flags to the linker by default. The matching logic in config.rpath is mostly borrowed from libtool commit [a55208d5]. Fixes #2045 Signed-off-by:
Huiwei Lu <huiweilu@mcs.anl.gov>
-
Kenneth Raffenetti authored
Signed-off-by:
Junchao Zhang <jczhang@mcs.anl.gov>
-
- 13 Mar, 2014 4 commits
-
-
Huiwei Lu authored
--enable-thread-cs=lock-free is not supported yet, it should be tested in configure process instead of detecting it at make stage. Fixes #2050 Signed-off-by:
Ken Raffenetti <raffenet@mcs.anl.gov>
-
Huiwei Lu authored
In MPID_Win_allocate and MPID_Win_allocate_shared, baseptr are defined as void * and void ** separately, while in MPIDI_Win_fns, both MPID_Win_allocate and MPID_Win_allocate_shared are registered as MPIDI_CH3U_Win_allocate, where baseptr is defined as void *. Fixes #1995 Signed-off-by:
Junchao Zhang <jczhang@mcs.anl.gov>
-
Sameh Sharkawi authored
Insert a barrier for every 16 calls to async collectives (ibm) D192641 Signed-off-by:
Michael Blocksome <blocksom@us.ibm.com>
-
Rob Latham authored
In the unlikley event that someone checks error codes, let them know they might want to pass a non-null filename to MPI-IO Signed-off-by:
Wesley Bland <wbland@mcs.anl.gov>
-