misc: apply maint/spellcheck.sh -all
This fixes the spelling errors for the rest of the repository, excluding the files excluded in spellcheck.sh.
Esse commit está contido em:
+8
-8
@@ -22,12 +22,12 @@
|
||||
|
||||
# MPI_Info objects can be accessed before MPI_Init{_thread}.
|
||||
|
||||
# Generate C API interface functions inlcuding man page notes and error
|
||||
# Generate C API interface functions including man page notes and error
|
||||
checking using Python scripts.
|
||||
|
||||
# Generate Fortran mpi_f08 binding using Python scripts.
|
||||
|
||||
# Support explict --without-cuda configure option.
|
||||
# Support explicit --without-cuda configure option.
|
||||
|
||||
===============================================================================
|
||||
Changes in 3.4
|
||||
@@ -36,7 +36,7 @@
|
||||
# ch4 replaces ch3 as the default device configuration. If no network
|
||||
module is specified at configuration-time, MPICH will search the
|
||||
user environment in order to select one to build. The user will be
|
||||
prompted to choose if no preferred network library is dectected.
|
||||
prompted to choose if no preferred network library is detected.
|
||||
|
||||
# Add support for Yaksa datatype engine (default in ch4).
|
||||
|
||||
@@ -211,7 +211,7 @@
|
||||
# Added experimental support for Open Fabrics Interfaces (OFI) version 1.0.0.
|
||||
https://github.com/ofiwg/libfabric (thanks to Intel for code contribution)
|
||||
|
||||
# The Myrinet MX network module, which had a life cyle from 1.1 till
|
||||
# The Myrinet MX network module, which had a life cycle from 1.1 till
|
||||
3.1.2, has now been deleted.
|
||||
|
||||
# Several other minor bug fixes, memory leak fixes, and code cleanup.
|
||||
@@ -1227,7 +1227,7 @@ www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_6changes.htm.
|
||||
|
||||
- Many enhancements to MPE
|
||||
|
||||
- Enhanced support for features and idiosyncracies of Fortran 77 and
|
||||
- Enhanced support for features and idiosyncrasies of Fortran 77 and
|
||||
Fortran 90 compilers, including gfortran, g95, and xlf
|
||||
|
||||
- Enhanced support for C++ compilers that do not fully support abstract
|
||||
@@ -1241,13 +1241,13 @@ www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_6changes.htm.
|
||||
- Man pages for mpiexec and mpif90
|
||||
|
||||
- Enhancements for developers, including a more flexible and general
|
||||
mechanism for inserting logging and information messages, controlable
|
||||
mechanism for inserting logging and information messages, controllable
|
||||
with --mpich-dbg-xxx command line arguments or MPICH_DBG_XXX environment
|
||||
variables.
|
||||
|
||||
- Note to developers:
|
||||
This release contains many changes to the structure of the CH3
|
||||
device implementation (in src/mpid/ch3), including signficant
|
||||
device implementation (in src/mpid/ch3), including significant
|
||||
reworking of the files (many files have been combined into fewer files
|
||||
representing logical grouping of functions). The next release of
|
||||
MPICH2 will contain even more significant changes to the device
|
||||
@@ -1278,7 +1278,7 @@ www.mcs.anl.gov/mpi/mpich2/mpich2_1_0_6changes.htm.
|
||||
and provides count of real drawables in preview drawables.
|
||||
|
||||
- new slog2 tools, slog2filter and slog2updater, which both are logfile
|
||||
format convertors. slog2filter removes undesirable categories of
|
||||
format converters. slog2filter removes undesirable categories of
|
||||
drawables as well as alters the slog2 file structure. slog2updater
|
||||
is a slog2filter that reads in older logfile format, 2.0.5, and
|
||||
writes out the latest format 2.0.6.
|
||||
|
||||
+1
-1
@@ -725,7 +725,7 @@ If the C compiler that is used to build MPICH libraries supports both
|
||||
multiple weak symbols and multiple aliases of common symbols, the
|
||||
Fortran binding can support multiple Fortran compilers. The
|
||||
multiple weak symbols support allow MPICH to provide different name
|
||||
mangling scheme (of subroutine names) required by differen Fortran
|
||||
mangling scheme (of subroutine names) required by different Fortran
|
||||
compilers. The multiple aliases of common symbols support enables
|
||||
MPICH to equal different common block symbols of the MPI Fortran
|
||||
constant, e.g. MPI_IN_PLACE, MPI_STATUS_IGNORE. So they are understood
|
||||
|
||||
+1
-1
@@ -873,7 +873,7 @@ if [ $do_geterrmsgs = "yes" ] ; then
|
||||
fi
|
||||
rm -f .err .err2
|
||||
else
|
||||
# Incase it exists but has zero size
|
||||
# In case it exists but has zero size
|
||||
rm -f .err
|
||||
fi
|
||||
if [ -s unusederr.txt ] ; then
|
||||
|
||||
@@ -113,12 +113,12 @@ mpif_cmblk_t MPIFCMB;
|
||||
define aliased symbols if they are in the same file.
|
||||
*/
|
||||
/*
|
||||
We can't do the following comparision in one test:
|
||||
We can't do the following comparison in one test:
|
||||
|
||||
ilogical = (( &mpifcmb == ptr && &MPIFCMB == ptr ) ? TRUE : FALSE) ;
|
||||
illogical = (( &mpifcmb == ptr && &MPIFCMB == ptr ) ? TRUE : FALSE) ;
|
||||
|
||||
because some compiler, like gcc 4.4.2's -O* optimizes the code
|
||||
such that the ilogical expression is FALSE. The likely reason is that
|
||||
such that the illogical expression is FALSE. The likely reason is that
|
||||
mpifcmb and MPIFCMB are defined in the same scope in which C optimizer
|
||||
may have treated them as different objects (with different addresses),
|
||||
&mpifcmb != &MPIFCMB, before actually running the test and hence the
|
||||
@@ -304,7 +304,7 @@ AC_LANG_POP(C)
|
||||
dnl
|
||||
dnl PAC_F2C_ATTR_ALIGNED_SIZE(ARRAY_SIZE, [OUTPUT_VAR], [MIN_ALIGNMENT])
|
||||
dnl
|
||||
dnl ARRAY_SIZE : Size of the integer array within the fortran commmon block.
|
||||
dnl ARRAY_SIZE : Size of the integer array within the fortran common block.
|
||||
dnl OUTPUT_VAR : Optional variable to be set.
|
||||
dnl if test succeeds, set OUTPUT_VAR=$pac_f2c_attr_aligned_str.
|
||||
dnl if test fails, set OUTPUT_VAR="unknown".
|
||||
@@ -337,7 +337,7 @@ dnl i.e. ac_fc_werror_flag=yes, because compiler like pgf77 at version 10.x)
|
||||
dnl has non-zero stderr output if a fortran program is used in the linking.
|
||||
dnl The stderr contains the name of fortran program even if the linking is
|
||||
dnl successful. We could avoid the non-zero stderr output in pgf77 by
|
||||
dnl compiling everthing into object files and linking all the object files
|
||||
dnl compiling everything into object files and linking all the object files
|
||||
dnl with pgf77. Doing that would need us to use AC_TRY_EVAL instead of
|
||||
dnl AC_LINK_IFELSE, so "diff" approach is used instead.
|
||||
#
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
dnl This is from crypt.to/autoconf-archive, slightly modified.
|
||||
dnl It defines bool as int if it is not availalbe
|
||||
dnl It defines bool as int if it is not available
|
||||
dnl
|
||||
AC_DEFUN([AX_CXX_BOOL],
|
||||
[AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type,
|
||||
|
||||
@@ -695,7 +695,7 @@ AC_LANG_POP([Fortran 77])
|
||||
dnl PAC_PROG_F77_IN_C_LIBS
|
||||
dnl
|
||||
dnl Find the essential libraries that are needed to use the C linker to
|
||||
dnl create a program that includes a trival Fortran code.
|
||||
dnl create a program that includes a trivial Fortran code.
|
||||
dnl
|
||||
dnl For example, all pgf90 compiled objects include a reference to the
|
||||
dnl symbol pgf90_compiled, found in libpgf90 .
|
||||
|
||||
@@ -112,7 +112,7 @@ EOF
|
||||
if test "$NOG2C" != "1" ; then
|
||||
trial_LIBS="$trial_LIBS -lg2c"
|
||||
fi
|
||||
# Discard libs that are not availble:
|
||||
# Discard libs that are not available:
|
||||
save_IFS="$IFS"
|
||||
# Make sure that IFS includes a space, or the tests that run programs
|
||||
# may fail
|
||||
|
||||
@@ -123,7 +123,7 @@ fi # is not cross compiling
|
||||
dnl
|
||||
dnl ------------------------------------------------------------------------
|
||||
dnl Special characteristics that have no autoconf counterpart but that
|
||||
dnl we need as part of the Fortran 90 support. To distinquish these, they
|
||||
dnl we need as part of the Fortran 90 support. To distinguish these, they
|
||||
dnl have a [PAC] prefix.
|
||||
dnl
|
||||
dnl At least one version of the Cray compiler needs the option -em to
|
||||
@@ -274,7 +274,7 @@ AC_COMPILE_IFELSE([],[
|
||||
rm -rf conftest.dSYM
|
||||
rm -f conftest.$ac_ext
|
||||
|
||||
dnl Create the conftest here so the test isn't created everytime inside loop.
|
||||
dnl Create the conftest here so the test isn't created every time inside loop.
|
||||
AC_LANG_CONFTEST([AC_LANG_PROGRAM([],[use conf])])
|
||||
|
||||
# Save the original FCFLAGS
|
||||
@@ -312,7 +312,7 @@ if test "X$pac_cv_fc_module_incflag" = "X" ; then
|
||||
# fullpathname.pc
|
||||
# The "fullpathname.pc" is generated, I believe, when a module is
|
||||
# compiled.
|
||||
# Intel compilers use a wierd system: -cl,filename.pcl . If no file is
|
||||
# Intel compilers use a weird system: -cl,filename.pcl . If no file is
|
||||
# specified, work.pcl and work.pc are created. However, if you specify
|
||||
# a file, it must contain the name of a file ending in .pc . Ugh!
|
||||
pac_cv_fc_module_incflag="unknown"
|
||||
@@ -1143,7 +1143,7 @@ END INTERFACE TEST_ASSUMED_RANK_ASYNC
|
||||
|
||||
CONTAINS
|
||||
|
||||
! Test TS 29113 asychronous attribute and optional
|
||||
! Test TS 29113 asynchronous attribute and optional
|
||||
SUBROUTINE test1(buf, count, ierr)
|
||||
INTEGER, ASYNCHRONOUS :: buf(*)
|
||||
INTEGER :: count
|
||||
|
||||
@@ -3,7 +3,7 @@ dnl We need routines to check that make works. Possible problems with
|
||||
dnl make include
|
||||
dnl
|
||||
dnl It is really gnumake, and contrary to the documentation on gnumake,
|
||||
dnl it insists on screaming everytime a directory is changed. The fix
|
||||
dnl it insists on screaming every time a directory is changed. The fix
|
||||
dnl is to add the argument --no-print-directory to the make
|
||||
dnl
|
||||
dnl It is really BSD 4.4 make, and can't handle 'include'. For some
|
||||
|
||||
@@ -63,7 +63,7 @@ Turning off Fortran (-nof77 being assumed)])
|
||||
WDEF="-D$FORTRANNAMES"
|
||||
fi
|
||||
# Delete confftest files with any extension. This catches the case
|
||||
# where auxillary files, such as coverage files, are removed.
|
||||
# where auxiliary files, such as coverage files, are removed.
|
||||
rm -f confftest.*
|
||||
])dnl
|
||||
dnl
|
||||
@@ -804,7 +804,7 @@ EOF
|
||||
$CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
|
||||
if test -x conftest$EXEEXT ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_MPI_GREQUEST,1,[Define if generalized requests avaliable])
|
||||
AC_DEFINE(HAVE_MPI_GREQUEST,1,[Define if generalized requests available])
|
||||
DEFINE_HAVE_MPI_GREQUEST="#define HAVE_MPI_GREQUEST 1"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
@@ -827,7 +827,7 @@ EOF
|
||||
$CC $USER_CFLAGS -I$MPI_INCLUDE_DIR -o conftest$EXEEXT mpitest.c $MPI_LIB > /dev/null 2>&1
|
||||
if test -x conftest$EXEEXT ; then
|
||||
AC_MSG_RESULT(yes)
|
||||
AC_DEFINE(HAVE_MPI_GREQUEST_EXTENTIONS,1,[Define if non-standard generalized requests extensions avaliable])
|
||||
AC_DEFINE(HAVE_MPI_GREQUEST_EXTENTIONS,1,[Define if non-standard generalized requests extensions available])
|
||||
DEFINE_HAVE_MPI_GREQUEST_EXTENSIONS="#define HAVE_MPI_GREQUEST_EXTENSIONS 1"
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
|
||||
@@ -16,7 +16,7 @@ dnl to config.log, i.e. AC_TRY_EVAL does not log anything to config.log.
|
||||
dnl If autoconf provides AC_COMMAND_IFELSE or AC_EVAL_IFELSE,
|
||||
dnl AC_COMMAND_IFELSE dnl should be replaced by the official autoconf macros.
|
||||
dnl
|
||||
dnl PAC_COMMAND_IFELSE(COMMMAND,[ACTION-IF-RUN-OK],[ACTION-IF-RUN-FAIL])
|
||||
dnl PAC_COMMAND_IFELSE(COMMAND,[ACTION-IF-RUN-OK],[ACTION-IF-RUN-FAIL])
|
||||
dnl
|
||||
AC_DEFUN([PAC_COMMAND_IFELSE],[
|
||||
AS_IF([PAC_RUNLOG([$1])],[
|
||||
|
||||
@@ -192,7 +192,7 @@ case "$enable_sharedlibs" in
|
||||
# our base approach. Disabling for now
|
||||
dnl LT_PREREQ([2.2.6])
|
||||
dnl LT_INIT([disable-shared])
|
||||
AC_MSG_ERROR([To use this test verison, edit aclocal_shl.m4])
|
||||
AC_MSG_ERROR([To use this test version, edit aclocal_shl.m4])
|
||||
# Likely to be
|
||||
# either CC or CC_SHL is libtool $cc
|
||||
CC_SHL='${LIBTOOL} --mode=compile ${CC}'
|
||||
|
||||
+10
-10
@@ -687,7 +687,7 @@ dnl lead to weird AM_CONDITIONAL errors and potentially other problems.
|
||||
# support for this language. This should save a bit of configure time and also
|
||||
# prevent user complaints like ticket #1570.
|
||||
#
|
||||
# NOTE: we are skipping overiding CXX as some modules (e.g. ucx) may depend on CXX
|
||||
# NOTE: we are skipping overriding CXX as some modules (e.g. ucx) may depend on CXX
|
||||
#
|
||||
AS_IF([test "x$enable_f77" = "xno"],[F77=no])
|
||||
AS_IF([test "x$enable_fc" = "xno"],[FC=no])
|
||||
@@ -1153,7 +1153,7 @@ fi
|
||||
# * MPID_MAX_THREAD_LEVEL, set in one of the device subconfigure.m4,
|
||||
# determines the maximum thread level, typically MPI_THREAD_MULTIPLE.
|
||||
# If missing, equivallent to single.
|
||||
# * --enable-threads, explict user config option, raise error if beyond
|
||||
# * --enable-threads, explicit user config option, raise error if beyond
|
||||
# MPID_MAX_THREAD_LEVEL.
|
||||
# It default to MPID_MAX_THREAD_LEVEL.
|
||||
# * MPICH_THREAD_LEVEL is set by enable_threads
|
||||
@@ -1461,7 +1461,7 @@ if test "$enable_romio" = "yes" ; then
|
||||
# make it possible to "#include" mpio.h at build time
|
||||
#
|
||||
# This ought to be sufficient, but there is also a symlink setup in
|
||||
# src/include to accomodate current mpicc limitations. See
|
||||
# src/include to accommodate current mpicc limitations. See
|
||||
# src/mpi/Makefile.mk for more info.
|
||||
PAC_APPEND_FLAG([-I${main_top_builddir}/src/mpi/romio/include],[CPPFLAGS])
|
||||
|
||||
@@ -1601,7 +1601,7 @@ AC_SUBST(pm_name)
|
||||
|
||||
# Step 2:
|
||||
# Once we've selected the process manager (or managers), we can
|
||||
# check that we have a compatible PMI implemenatation.
|
||||
# check that we have a compatible PMI implementation.
|
||||
# with-pmi
|
||||
if test "$with_pmi" != "no" ; then
|
||||
if test "$with_pmi" = "default" -o "$with_pmi" = "yes" ; then
|
||||
@@ -2675,11 +2675,11 @@ PAC_C_GNU_ATTRIBUTE
|
||||
PAC_C_BUILTIN_EXPECT
|
||||
PAC_C_STATIC_ASSERT
|
||||
|
||||
# We need to check for the endianess in order to implement the
|
||||
# We need to check for the endianness in order to implement the
|
||||
# "external32" representations. This defines "WORDS_BIGENDIAN when
|
||||
# the system is bigendian.
|
||||
# As of autoconf 2.62, this macro takes an additional argument for systems
|
||||
# that can produce object files for either endianess.
|
||||
# that can produce object files for either endianness.
|
||||
# With the as-always-incompatible-with-every-version autoconf, the
|
||||
# arguments for this macro *changed* in 2.62 to
|
||||
# (if-bigendian,if-littleendian,unknown,universal)
|
||||
@@ -2702,7 +2702,7 @@ case $byteOrdering in
|
||||
AC_DEFINE(WORDS_UNIVERSAL_ENDIAN,1,[Define if configure will not tell us, for universal binaries])
|
||||
;;
|
||||
unknown)
|
||||
AC_MSG_ERROR([Unable to determine endianess])
|
||||
AC_MSG_ERROR([Unable to determine endianness])
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -3143,7 +3143,7 @@ fi
|
||||
if test -n "$MPIR_REAL16_CTYPE" ; then
|
||||
AC_DEFINE_UNQUOTED(MPIR_REAL16_CTYPE,$MPIR_REAL16_CTYPE,[C type to use for MPI_REAL16])
|
||||
fi
|
||||
# For complex 8/16/32, we assume that these are 2 consequetive real4/8/16
|
||||
# For complex 8/16/32, we assume that these are 2 consecutive real4/8/16
|
||||
#
|
||||
# Search for the integer types
|
||||
for type in char short int long long_long ; do
|
||||
@@ -4675,7 +4675,7 @@ AC_ARG_ENABLE(checkpointing,
|
||||
)
|
||||
|
||||
# Update the cache first with the results of the previous configure steps
|
||||
# We don't use the subdir cache because ensuring that the cache is consistant
|
||||
# We don't use the subdir cache because ensuring that the cache is consistent
|
||||
# with the way in which configure wishes to use it is very difficult and
|
||||
# too prone to error.
|
||||
dnl PAC_SUBDIR_CACHE(always)
|
||||
@@ -5219,7 +5219,7 @@ if test "X$enable_shared" = "Xyes" ; then
|
||||
fi
|
||||
|
||||
# Set F08 versions of datatypes, which have type MPI_Datatype and are not integers anymore.
|
||||
# If the correspoinding F77 datatypes exist, i.e., not MPI_DATATYPE_NULL, we simply use their
|
||||
# If the corresponding F77 datatypes exist, i.e., not MPI_DATATYPE_NULL, we simply use their
|
||||
# integer value (already converted into decimal) in F08 counterparts. Otherwise, we use
|
||||
# MPI_VAL value of F08 MPI_DATATYPE_NULL.
|
||||
# We put the code at the end to ensure all F77 datatypes have been set.
|
||||
|
||||
@@ -338,7 +338,7 @@ for details. A typical example is:
|
||||
to ensure that the process with rank 0 runs on your workstation.
|
||||
|
||||
The arguments between `:'s in this syntax are called ``argument sets,''
|
||||
since they apply to a set of processes. More argments are described in
|
||||
since they apply to a set of processes. More arguments are described in
|
||||
the \textit{User's Guide}.
|
||||
|
||||
\end{enumerate}
|
||||
|
||||
@@ -179,7 +179,7 @@ standard.
|
||||
The predefined operations are
|
||||
|
||||
+I MPI_MAX - return the maximum
|
||||
. MPI_MIN - return the minumum
|
||||
. MPI_MIN - return the minimum
|
||||
. MPI_SUM - return the sum
|
||||
. MPI_PROD - return the product
|
||||
. MPI_LAND - return the logical and
|
||||
@@ -403,7 +403,7 @@ Special value for error codes array:
|
||||
. MPI_T_PVAR_CLASS_PERCENTAGE - percentage utilization of a resource
|
||||
. MPI_T_PVAR_CLASS_HIGHWATERMARK - high watermark of a resource
|
||||
. MPI_T_PVAR_CLASS_LOWWATERMARK - low watermark of a resource
|
||||
. MPI_T_PVAR_CLASS_COUNTER - number of occurances of an event
|
||||
. MPI_T_PVAR_CLASS_COUNTER - number of occurrences of an event
|
||||
. MPI_T_PVAR_CLASS_AGGREGATE - aggregate value over an event (e.g.,
|
||||
sum of all memory allocations)
|
||||
. MPI_T_PVAR_CLASS_TIMER - aggretate time spent executing event
|
||||
|
||||
@@ -76,7 +76,7 @@ Isend/Irecv scenerio
|
||||
Persistent requests
|
||||
|
||||
- We need to allow the method the opportunity to register memory reused in a
|
||||
persistant sent. We suggest accomplishing this by calling CA_register_mem()
|
||||
persistent sent. We suggest accomplishing this by calling CA_register_mem()
|
||||
during the MPI_<op>_init() and CA_unregister_mem() during the
|
||||
MPI_Request_free().
|
||||
|
||||
@@ -134,7 +134,7 @@ receives (which is the approach we should reward :)).
|
||||
|
||||
- we decided to use a single unexpected queue since having multiple unexpected
|
||||
queues requires timestamp to order the messages. the timestamp counter is a
|
||||
point of global contention, just like the global unexpect queue.
|
||||
point of global contention, just like the global unexpected queue.
|
||||
|
||||
- this same argument can be applied to the posted queue case, but allowing for
|
||||
multiple queues here creates a much nicer search situation for the case where
|
||||
|
||||
@@ -87,11 +87,11 @@
|
||||
Theoretically, a MPI communicator could be tagged to allow
|
||||
unrealiable delivery, QoS, etc. We haven't thought much what
|
||||
impact this has on our design, but we probably don't want to
|
||||
prevent these capabilites.
|
||||
prevent these capabilities.
|
||||
|
||||
* Communication subsystem components
|
||||
|
||||
- virtual connnections
|
||||
- virtual connections
|
||||
|
||||
allows late binding to a communication device (method)
|
||||
|
||||
@@ -148,7 +148,7 @@
|
||||
|
||||
- reliability
|
||||
|
||||
Under a default environemnt, MPI messages are inherently reliable
|
||||
Under a default environment, MPI messages are inherently reliable
|
||||
which means that some methods may need concern themselves with
|
||||
acknowledgments and retransmission if the underlying network does
|
||||
not guarantee reliability.
|
||||
|
||||
@@ -155,7 +155,7 @@ Action [Post Send Data],
|
||||
// at one time, amortizing the cost of checking for buffers and checking
|
||||
// flow control over a set of outgoing packets. We are uncertain how
|
||||
// packing multiple buffers then posting multiple sends will affect
|
||||
// peformance, but clearly amortizing costs when sending straight out of
|
||||
// performance, but clearly amortizing costs when sending straight out of
|
||||
// the user buffer will be a win.
|
||||
|
||||
if there are more data packets to send
|
||||
|
||||
@@ -7,12 +7,12 @@ State [Unbound]
|
||||
|
||||
State [Bound, Unconnected]
|
||||
Event [VC-Open]
|
||||
/* An operation involved outgoing communcation was requested for this
|
||||
/* An operation involved outgoing communication was requested for this
|
||||
* virtual connection. Before we can perform such a request, we need
|
||||
* to establish a real connection with the destination process. We
|
||||
* also may need to initialize at least the receive side state machine
|
||||
* now so that any unexpected incoming packets arriving shortly after
|
||||
* connection establishment are properly handled. We could intialize
|
||||
* connection establishment are properly handled. We could initialize
|
||||
* send state machine, but it can't actually start sending until the
|
||||
* connection has been established.
|
||||
*/
|
||||
|
||||
@@ -16,7 +16,7 @@ src/binding/c/errnames.txt, and src/include/mpir_impl.h.
|
||||
## Master API config file
|
||||
|
||||
The master config file -- maint/mpi_standards_api.txt is a direct
|
||||
transcription from mpi-standard repository. It contains entries as follwing:
|
||||
transcription from mpi-standard repository. It contains entries as following:
|
||||
|
||||
---- quote ----
|
||||
MPI_Send:
|
||||
@@ -118,7 +118,7 @@ The above example customizes the function, MPI_Example, with a short description
|
||||
extra man page notes, custom error checking code, early_return code, and custom
|
||||
body of routine.
|
||||
|
||||
The customizations are place holders to allow flexibility dealing with arbitary
|
||||
The customizations are place holders to allow flexibility dealing with arbitrary
|
||||
complex code that it is too complex to deal with within the python script.
|
||||
However, for most functions, most of the custom parts can be omitted. For example,
|
||||
the following:
|
||||
|
||||
@@ -32,7 +32,7 @@ PARAM:
|
||||
...
|
||||
---- end of ch4_api.txt
|
||||
|
||||
Section headings, i.e. "Non Native API", "Native API", and "PARAM", need start at the begining of the line immediately followed by ':'. All other specifications require to be start with some spaces.
|
||||
Section headings, i.e. "Non Native API", "Native API", and "PARAM", need start at the beginning of the line immediately followed by ':'. All other specifications require to be start with some spaces.
|
||||
|
||||
The api is specified with "name", followed by ':', followed by "return type". Flexible spaces are allowed.
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@ Brian's notes from this file:
|
||||
reminder: envelope = (context (communicator), source_rank, tag)
|
||||
|
||||
QUESTION: what exactly are the semantics of a block? Sends to the same
|
||||
destination are definitely ordered. Sends to different desinations could
|
||||
destination are definitely ordered. Sends to different destinations could
|
||||
proceed in parallel. Should they?
|
||||
|
||||
example:
|
||||
|
||||
+2
-2
@@ -136,7 +136,7 @@ Concepts
|
||||
|
||||
- virtual connection structures
|
||||
|
||||
- low-level connnection management (sockets, etc.) should be handled
|
||||
- low-level connection management (sockets, etc.) should be handled
|
||||
entirely by the device and probably driven by a state machine
|
||||
|
||||
|
||||
@@ -304,7 +304,7 @@ Structures that cross layers
|
||||
layers, but not vice versa. To increase cache locality and reduce memory
|
||||
allocation, the device (and methods) report the amount of space they need in
|
||||
these structures so that the highest layer can allocate sufficient space.
|
||||
pointer arithmatic, etc.
|
||||
pointer arithmetic, etc.
|
||||
|
||||
Virtual connection
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ MPI_Start(request, error)
|
||||
the right thing (tm).
|
||||
|
||||
- we chose not to convert handles to structure pointers since the handles may
|
||||
cointain quick access to common information avoiding pointer dereferences.
|
||||
contain quick access to common information avoiding pointer dereferences.
|
||||
in some cases, an associated structure may not even exist.
|
||||
|
||||
the implication here is that many of the non-persistent MPI_Xsend routines
|
||||
@@ -85,7 +85,7 @@ MPI_Ssend(buf, count, datatype, dest, tag, comm, error)
|
||||
as much data as possible. If the entire message could not be sent
|
||||
"immediately" then queue the request for later processing. (We need a
|
||||
progress engine to ensure that later happens. */
|
||||
/* Build up a segement unless the datatype is "trivial" */
|
||||
/* Build up a segment unless the datatype is "trivial" */
|
||||
|
||||
|
||||
/* Wait until entire message is sent */
|
||||
@@ -174,7 +174,7 @@ MPI_Ssend(buf, count, datatype, dest, tag, comm, error)
|
||||
reminder: envelope = (context (communicator), source_rank, tag)
|
||||
|
||||
QUESTION: what exactly are the semantics of a block? Sends to the same
|
||||
destination are definitely ordered. Sends to different desinations could
|
||||
destination are definitely ordered. Sends to different destinations could
|
||||
proceed in parallel. Should they?
|
||||
|
||||
example:
|
||||
|
||||
@@ -212,7 +212,7 @@ MPI_Accumulate(origin_addr, origin_count, origin_datatype,
|
||||
{
|
||||
target_offset = win.displ * target_disp;
|
||||
target_addr = win.base + target_offset;
|
||||
/* peform requested operation */
|
||||
/* perform requested operation */
|
||||
}
|
||||
else if (origin_byte_count < EAGER_MAX)
|
||||
{
|
||||
|
||||
@@ -76,7 +76,7 @@ MPID_Win_fence
|
||||
Q: Should we perform a barrier here? If we eliminate the barrier,
|
||||
then all processes still waiting for operations to complete will
|
||||
have to enqueue incoming requests from the next epoch until the
|
||||
operations from the currrent epoch are complete. Not performing the
|
||||
operations from the current epoch are complete. Not performing the
|
||||
barrier complicates the RMA operations, but the performance benefit
|
||||
may be significant for some cases. (What are they? How common are
|
||||
they?)
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
Q: How do the three synchronization mechanisms play together? What
|
||||
is required in order to switch from one mechanism to another? The
|
||||
standard talks about this briefly, but I am still somewhat confused
|
||||
about what happens when a transistions occurs from active (fence)
|
||||
about what happens when a transitions occurs from active (fence)
|
||||
synchronization to scalable or passive synchronization. It seems as
|
||||
though active synchronization always has open access and exposure
|
||||
epochs unless the assertion MPI_MODE_NOSUCCEED is specified.
|
||||
|
||||
@@ -217,7 +217,7 @@ another example, looking at shmem combined with remote access
|
||||
two pairs of processes on same nodes
|
||||
|
||||
shared memory lock on single node allows one process to look directly into the
|
||||
window information so that he doesn't ahve to go through the agent of the other
|
||||
window information so that he doesn't have to go through the agent of the other
|
||||
process on the local node. that same lock will be used by the communication
|
||||
agent for a given process to ensure that things are kept sane in the off-node
|
||||
case; in other words, this lock is utilized by processes on the same node
|
||||
@@ -325,7 +325,7 @@ have as much as we do in the fence case.
|
||||
|
||||
the accumulate is odd as usual. if you're the only person in the target's
|
||||
group, then you don't have to do the element-wise locking/atomicity (or
|
||||
window-wise locking/unlocking depending on implementaiton).
|
||||
window-wise locking/unlocking depending on implementation).
|
||||
|
||||
brian: it would be helpful for the origin to know if he needs to lock or not
|
||||
during accumulate operations. this would allow him to know if he needs to lock
|
||||
@@ -482,7 +482,7 @@ operation was requested during this access epoch. After Win_complete() detects
|
||||
that all get operations have completed, if the flag is not set, it will
|
||||
decrements the reference counts of the logged datatypes and free the access
|
||||
epoch structure. If the flag is set, the datatype reference counts may only be
|
||||
decremented once an explicit ackowledgement has been received from the target
|
||||
decremented once an explicit acknowledgement has been received from the target
|
||||
informing the origin that all operations requested by that access
|
||||
epoch have been completed.
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ MPI_Win_create
|
||||
(MPIR_Win).
|
||||
|
||||
* Create a copy of the communcator provided by the user so the
|
||||
window has its own communcation context.
|
||||
window has its own communication context.
|
||||
|
||||
Q: Which layer (MPI/ADI3) should manage (be responsible for
|
||||
creating, destroying, etc.) the MPIR_Win object?
|
||||
|
||||
@@ -23,7 +23,7 @@ Important issues with passive target accumulate
|
||||
|
||||
Unless multiple threads (and processors) are present on the target
|
||||
system to process accumulation operations, serialization is
|
||||
eminent, and the best optmization is to not have a ton of
|
||||
eminent, and the best optimization is to not have a ton of
|
||||
multi-threading optimizations in the way slowing things down. This
|
||||
suggests that two implementations may be necessary: one using
|
||||
threads and one that doesn't.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
Below is the current design for passive target RMA on top of CH3.
|
||||
|
||||
We assume that there is some asychronous agent (thread) that
|
||||
We assume that there is some asynchronous agent (thread) that
|
||||
periodically pokes the progress engine, i.e., periodically calls
|
||||
MPID_Progress_test(). We need to do a general poke of the progress
|
||||
engine because we don't know whether there will be passive target RMA
|
||||
|
||||
@@ -11,7 +11,7 @@ aware of and makes progress on one-sided as well as send-recv ops.
|
||||
|
||||
* An asynchronous agent kicks in periodically. The agent could be a
|
||||
thread, process, or signal handler. The agent calls the general
|
||||
progress function MPID_Make_progress and therefore makes progres on
|
||||
progress function MPID_Make_progress and therefore makes progress on
|
||||
everything.
|
||||
(Q: If the agent is a process, how does it access the request queue
|
||||
on the main MPI process?)
|
||||
|
||||
@@ -89,9 +89,9 @@ MPID_shm_Win_fence
|
||||
|
||||
* set (or clear) preceding put flag based on the assertions
|
||||
|
||||
NOTE: To reduce unncessary cache and write buffer flushes, the
|
||||
NOTE: To reduce unnecessary cache and write buffer flushes, the
|
||||
barrier (above) could be replaced with an alltoall gather of the
|
||||
operation occuring between node pairs. Using this information, we
|
||||
operation occurring between node pairs. Using this information, we
|
||||
could eliminate flushes except when an operation actually affected
|
||||
the local window.
|
||||
|
||||
|
||||
@@ -38,13 +38,13 @@ Communication operations (requests)
|
||||
* MPI_Put(origin_addr, origin_count, origin_datatype,
|
||||
target_rank, target_disp, target_count, target_datatype, win)
|
||||
|
||||
* target buffer must not overlap with other communcation operations during
|
||||
* target buffer must not overlap with other communication operations during
|
||||
the same exposure epoch
|
||||
|
||||
* MPI_Get(origin_addr, origin_count, origin_datatype,
|
||||
target_rank, target_disp, target_count, target_datatype, win)
|
||||
|
||||
* target buffer must not overlap with other communcation operations during
|
||||
* target buffer must not overlap with other communication operations during
|
||||
the same exposure epoch
|
||||
|
||||
* MPI_Accumulate(origin_addr, origin_count, origin_datatype,
|
||||
|
||||
@@ -16,7 +16,7 @@ MPIR_Copy_data(src_addr, src_count, src_datatype,
|
||||
* this is a safe operation.
|
||||
*
|
||||
* NOTE: This code assumes that the (dest_count, dest_datatype)
|
||||
* represents enough space to accomodate (src_count, src_datatype) and
|
||||
* represents enough space to accommodate (src_count, src_datatype) and
|
||||
* that enough space exists in the dest buffer to cover (dest_count,
|
||||
* dest_datatype). This implies that truncation and buffer overruns
|
||||
* errors must be caught before this routine is called.
|
||||
@@ -40,7 +40,7 @@ MPIR_Copy_data(src_addr, src_count, src_datatype,
|
||||
else if (MPIR_Datatype_iscontig(src_count, src_datatype))
|
||||
{
|
||||
/*
|
||||
* The data arrangment at the src buffer is contiguous, but not at the
|
||||
* The data arrangement at the src buffer is contiguous, but not at the
|
||||
* dest. We should be able to "unpack" the data directly into the dest
|
||||
* buffer.
|
||||
*/
|
||||
@@ -48,7 +48,7 @@ MPIR_Copy_data(src_addr, src_count, src_datatype,
|
||||
else if (MPIR_Datatype_iscontig(dest_count, dest_datatype))
|
||||
{
|
||||
/*
|
||||
* The data arrangment at the dest buffer is contiguous, but not at the
|
||||
* The data arrangement at the dest buffer is contiguous, but not at the
|
||||
* src. We should be able to "pack" the data directly into the dest
|
||||
* buffer.
|
||||
*/
|
||||
@@ -139,7 +139,7 @@ MPIR_Win_verify_dt_op_compat(src_count, src_datatype,
|
||||
{
|
||||
/*
|
||||
* NOTE: The standard does not define what the application should
|
||||
* expect when truncation occurs. We could peform the operation on as
|
||||
* expect when truncation occurs. We could perform the operation on as
|
||||
* much data as possible before rc =ing an error, but that would only
|
||||
* delay reporting the error to the application. Besides, a portable
|
||||
* application cannot rely on any of the operations being completed, so
|
||||
|
||||
@@ -318,7 +318,7 @@ separated by commas), with their current values, to the processes being run by
|
||||
\item[\texttt{-genv <name> <value>}]The \item{-genv} options have the same
|
||||
meaning as their corresponding \texttt{-env} version, except they apply to all
|
||||
executables, not just the current executable (in the case that the colon
|
||||
syntax is used to specify multiple execuables).
|
||||
syntax is used to specify multiple executables).
|
||||
\item[\texttt{-genvnone}]Like \texttt{-envnone}, but for all executables
|
||||
\item[\texttt{-genvlist <list>}]Like \texttt{-envlist}, but for all executables
|
||||
\item[\texttt{-usize <n>}]Specify the value returned for the value of the
|
||||
@@ -330,7 +330,7 @@ attribute \texttt{MPI\_UNIVERSE\_SIZE}.
|
||||
exited if there is an abnormal exit
|
||||
\end{description}
|
||||
|
||||
In addition to the commandline argments, the \texttt{gforker} \texttt{mpiexec}
|
||||
In addition to the commandline arguments, the \texttt{gforker} \texttt{mpiexec}
|
||||
provides a number of environment variables that can be used to control the
|
||||
behavior of \texttt{mpiexec}:
|
||||
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
This directory contains programs that may be useful for developers. These
|
||||
are not example programs; rather, they may be used to explore the
|
||||
behavior of the MPI implemenation in some special cases.
|
||||
behavior of the MPI implementation in some special cases.
|
||||
|
||||
@@ -125,7 +125,7 @@ const char *default_filename = "pmandel.pgm";
|
||||
abs(z=z^2+c) > diverge_value
|
||||
-julia Plot a Julia set instead of a Mandelbrot set
|
||||
-jx # -jy # The Julia point that defines the set
|
||||
-alternate # Plot an alternate Mandelbrot equation (varient 1 or 2 so far)
|
||||
-alternate # Plot an alternate Mandelbrot equation (variant 1 or 2 so far)
|
||||
*/
|
||||
|
||||
int myid;
|
||||
@@ -881,7 +881,7 @@ void check_mand_params(int *m_max_iterations,
|
||||
#if PROMPT
|
||||
if (*m_pixels_across == NOVALUE || *m_pixels_down == NOVALUE) {
|
||||
/* grab unspecified limits */
|
||||
printf("Enter pixel size (horizonal by vertical, i.e. 256 256): ");
|
||||
printf("Enter pixel size (horizontal by vertical, i.e. 256 256): ");
|
||||
scanf(" %d %d", &*m_pixels_across, &*m_pixels_down);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -125,7 +125,7 @@ const char *default_filename = "pmandel.pgm";
|
||||
abs(z=z^2+c) > diverge_value
|
||||
-julia Plot a Julia set instead of a Mandelbrot set
|
||||
-jx # -jy # The Julia point that defines the set
|
||||
-alternate # Plot an alternate Mandelbrot equation (varient 1 or 2 so far)
|
||||
-alternate # Plot an alternate Mandelbrot equation (variant 1 or 2 so far)
|
||||
*/
|
||||
|
||||
int myid;
|
||||
@@ -1006,7 +1006,7 @@ void check_mand_params(int *m_max_iterations,
|
||||
#if PROMPT
|
||||
if (*m_pixels_across == NOVALUE || *m_pixels_down == NOVALUE) {
|
||||
/* grab unspecified limits */
|
||||
printf("Enter pixel size (horizonal by vertical, i.e. 256 256): ");
|
||||
printf("Enter pixel size (horizontal by vertical, i.e. 256 256): ");
|
||||
scanf(" %d %d", &*m_pixels_across, &*m_pixels_down);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -113,7 +113,7 @@ const char *default_filename = "pmandel.pgm";
|
||||
abs(z=z^2+c) > diverge_value
|
||||
-julia Plot a Julia set instead of a Mandelbrot set
|
||||
-jx # -jy # The Julia point that defines the set
|
||||
-alternate # Plot an alternate Mandelbrot equation (varient 1 or 2 so far)
|
||||
-alternate # Plot an alternate Mandelbrot equation (variant 1 or 2 so far)
|
||||
*/
|
||||
|
||||
int myid;
|
||||
@@ -846,7 +846,7 @@ void check_mand_params(int *m_max_iterations,
|
||||
#if PROMPT
|
||||
if (*m_pixels_across == NOVALUE || *m_pixels_down == NOVALUE) {
|
||||
/* grab unspecified limits */
|
||||
printf("Enter pixel size (horizonal by vertical, i.e. 256 256): ");
|
||||
printf("Enter pixel size (horizontal by vertical, i.e. 256 256): ");
|
||||
scanf(" %d %d", &*m_pixels_across, &*m_pixels_down);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -119,7 +119,7 @@ const char *default_filename = "pmandel.pgm";
|
||||
abs(z=z^2+c) > diverge_value
|
||||
-julia Plot a Julia set instead of a Mandelbrot set
|
||||
-jx # -jy # The Julia point that defines the set
|
||||
-alternate # Plot an alternate Mandelbrot equation (varient 1 or 2 so far)
|
||||
-alternate # Plot an alternate Mandelbrot equation (variant 1 or 2 so far)
|
||||
*/
|
||||
|
||||
int myid;
|
||||
@@ -877,7 +877,7 @@ void check_mand_params(int *m_max_iterations,
|
||||
#if PROMPT
|
||||
if (*m_pixels_across == NOVALUE || *m_pixels_down == NOVALUE) {
|
||||
/* grab unspecified limits */
|
||||
printf("Enter pixel size (horizonal by vertical, i.e. 256 256): ");
|
||||
printf("Enter pixel size (horizontal by vertical, i.e. 256 256): ");
|
||||
scanf(" %d %d", &*m_pixels_across, &*m_pixels_down);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -127,7 +127,7 @@ const char *default_filename = "pmandel.pgm";
|
||||
abs(z=z^2+c) > diverge_value
|
||||
-julia Plot a Julia set instead of a Mandelbrot set
|
||||
-jx # -jy # The Julia point that defines the set
|
||||
-alternate # Plot an alternate Mandelbrot equation (varient 1 or 2 so far)
|
||||
-alternate # Plot an alternate Mandelbrot equation (variant 1 or 2 so far)
|
||||
*/
|
||||
|
||||
int myid;
|
||||
@@ -491,7 +491,7 @@ int main(int argc, char *argv[])
|
||||
}
|
||||
} else {
|
||||
for (;;) {
|
||||
/*printf("child[%d] receiveing bounds.\n", pid);fflush(stdout); */
|
||||
/*printf("child[%d] receiving bounds.\n", pid);fflush(stdout); */
|
||||
MPI_Recv(&x_min, 1, MPI_DOUBLE, 0, 0, parent, MPI_STATUS_IGNORE);
|
||||
MPI_Recv(&x_max, 1, MPI_DOUBLE, 0, 0, parent, MPI_STATUS_IGNORE);
|
||||
MPI_Recv(&y_min, 1, MPI_DOUBLE, 0, 0, parent, MPI_STATUS_IGNORE);
|
||||
@@ -959,7 +959,7 @@ void check_mand_params(int *m_max_iterations,
|
||||
#if PROMPT
|
||||
if (*m_pixels_across == NOVALUE || *m_pixels_down == NOVALUE) {
|
||||
/* grab unspecified limits */
|
||||
printf("Enter pixel size (horizonal by vertical, i.e. 256 256): ");
|
||||
printf("Enter pixel size (horizontal by vertical, i.e. 256 256): ");
|
||||
scanf(" %d %d", &*m_pixels_across, &*m_pixels_down);
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -6,7 +6,7 @@ m4_init
|
||||
dnl get the real version values
|
||||
m4_include([maint/version.m4])dnl
|
||||
|
||||
dnl The m4sugar langauage switches the default diversion to "KILL", and causes
|
||||
dnl The m4sugar language switches the default diversion to "KILL", and causes
|
||||
dnl all normal output to be thrown away. We switch to the default (0) diversion
|
||||
dnl to restore output.
|
||||
m4_divert_push([])dnl
|
||||
|
||||
@@ -148,7 +148,7 @@ EOF
|
||||
esac
|
||||
done
|
||||
|
||||
# Move everthing into a device-specific directory
|
||||
# Move everything into a device-specific directory
|
||||
webloc="$weblocbase/$device"
|
||||
if [ "$update_web" = yes ] ; then
|
||||
if [ ! -d $webloc ] ; then mkdir -p $webloc ; fi
|
||||
|
||||
@@ -14,7 +14,7 @@ chop $WWWRoot;
|
||||
# $URLBase = "http://";
|
||||
# End of line character (\r\n is DOS-friendly)
|
||||
$eol = "\r\n";
|
||||
# Number of colums in table of names
|
||||
# Number of columns in table of names
|
||||
$TableCols = 3;
|
||||
#
|
||||
# Process arguments for any changes
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
This file contains the named document blocks for use in generating the
|
||||
documentation. This is divided into several main blocks:
|
||||
Threads and interrups/signals
|
||||
Threads and interrupts/signals
|
||||
Fortran
|
||||
Misc MPI (e.g., status null)
|
||||
Error classes
|
||||
@@ -256,7 +256,7 @@ N*/
|
||||
N*/
|
||||
/*N MPI_ERR_PERM_KEY
|
||||
. MPI_ERR_ARG - Invalid argument; the error code associated with this
|
||||
error indicates an attempt to free or chnage an MPI permanent keyval (e.g.,
|
||||
error indicates an attempt to free or change an MPI permanent keyval (e.g.,
|
||||
'MPI_TAG_UB').
|
||||
N*/
|
||||
/*N MPI_ERR_UNKNOWN
|
||||
@@ -301,7 +301,7 @@ N*/
|
||||
to indicate which requests have not completed. In most cases, only
|
||||
one request with an error will be detected in each call to an MPI routine
|
||||
that tests multiple requests. The requests that have not been processed
|
||||
(because an error occured in one of the requests) will have their
|
||||
(because an error occurred in one of the requests) will have their
|
||||
'MPI_ERROR' field marked with 'MPI_ERR_PENDING'.
|
||||
N*/
|
||||
/*N MPI_ERR_PENDING
|
||||
@@ -314,7 +314,7 @@ N*/
|
||||
'MPI_Start' or 'MPI_Startall', not a persistent request.
|
||||
N*/
|
||||
/*N MPI_ERR_BUFFER_ALIAS
|
||||
. MPI_ERR_BUFFER - This error class is associcated with an error code that
|
||||
. MPI_ERR_BUFFER - This error class is associated with an error code that
|
||||
indicates that two buffer arguments are `aliased`; that is, the
|
||||
describe overlapping storage (often the exact same storage). This
|
||||
is prohibited in MPI (because it is prohibited by the Fortran
|
||||
|
||||
@@ -57,7 +57,7 @@ Supported options:
|
||||
--help - this output (optional)
|
||||
--debug - enable some debugging output (optional)
|
||||
--namespace=STR - use STR as variable/type prefix in generated code (optional, default=$ns)
|
||||
--alt-namespace=STR - use STR as alternaive variable/type prefix in generated code (optional, default=$alt_ns)
|
||||
--alt-namespace=STR - use STR as alternative variable/type prefix in generated code (optional, default=$alt_ns)
|
||||
--header=STR - specify the header file name (optional, default=$header_file)
|
||||
--c-file=STR - specify the C file name (optional, default=$c_file)
|
||||
--readme-file=STR - specify the readme file name (optional, default=$readme_file)
|
||||
|
||||
@@ -94,7 +94,7 @@ else {
|
||||
}
|
||||
# Setup before processing the files
|
||||
if ($build_test_pgm && -d "test/mpi/errhan") {
|
||||
# Get current directory incase we need it for the error message
|
||||
# Get current directory in case we need it for the error message
|
||||
my $curdir = `pwd`;
|
||||
open( TESTFD, ">test/mpi/errhan/errcode.c" ) or die "Cannot create test program errcode.c in $curdir/test/mpi/errhan\n";
|
||||
print TESTFD "/*\
|
||||
@@ -180,7 +180,7 @@ typedef struct msgpair {
|
||||
}
|
||||
#
|
||||
# We also need a way to create the records
|
||||
# We then hash these on the first occurance (or precompute the hashes?)
|
||||
# We then hash these on the first occurrence (or precompute the hashes?)
|
||||
#
|
||||
# The error messages are output in the following form:
|
||||
# typedef struct {const char short[], const long[]} namemap;
|
||||
@@ -206,7 +206,7 @@ sub CreateErrMsgMapping {
|
||||
s/#.*$//;
|
||||
my ($mpiname,$num,$shortmsg) = split(/\s\s*/);
|
||||
if (!defined($shortmsg)) {
|
||||
# Incase there is no short message entry (!)
|
||||
# In case there is no short message entry (!)
|
||||
$shortmsg = "";
|
||||
}
|
||||
if ($shortmsg ne "")
|
||||
@@ -255,7 +255,7 @@ sub CreateErrMsgMapping {
|
||||
$seenfile = $generic_loc{$key};
|
||||
if ($key =~ /^\*\*/) {
|
||||
# If the message begins with text, assume that it is a
|
||||
# litteral message
|
||||
# literal message
|
||||
print STDERR "Shortname $key for generic messages has no expansion (first seen in file $seenfile)\n";
|
||||
print STDERR "(Add expansion to $sourcefile)\n";
|
||||
}
|
||||
@@ -281,8 +281,8 @@ sub CreateErrMsgMapping {
|
||||
# Generate the mapping of short to long names
|
||||
print $OUTFD "\nstatic const int generic_msgs_len = $num;\n";
|
||||
|
||||
# The sentinals should be hardcoded into the source file that
|
||||
# uses this file to ensure that the sentinal tests are ok.
|
||||
# The sentinels should be hardcoded into the source file that
|
||||
# uses this file to ensure that the sentinel tests are ok.
|
||||
my $sentinal1 = "0xacebad03";
|
||||
my $sentinal2 = "0xcb0bfa11";
|
||||
print $OUTFD "static const msgpair generic_err_msgs[] = {\n";
|
||||
@@ -541,7 +541,7 @@ sub AddTestCall {
|
||||
# Read an errnames file. This allows us to distribute the errnames.txt
|
||||
# files in the relevant modules, rather than making them part of one
|
||||
# single main file.
|
||||
# This updates the global hashs longnames and longnamesDefined
|
||||
# This updates the global hashes longnames and longnamesDefined
|
||||
# ReadErrnamesFile( filename )
|
||||
# ==========================================================================
|
||||
sub ReadErrnamesFile {
|
||||
|
||||
@@ -425,7 +425,7 @@ sub CheckAllInfo {
|
||||
# There are two possibilities:
|
||||
# One of the values is cached and the other is an exception
|
||||
# value, in which case we reject the cached value
|
||||
# The other possiblity is a conflict, which we report.
|
||||
# The other possibility is a conflict, which we report.
|
||||
|
||||
print STDERR "\nInconsistent value for state of $key:\n";
|
||||
print STDERR "Old : $stateNames{$key} in $stateLoc{$key}\n";
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
# of routines for processing files and maintaining a cache of the results.
|
||||
# It uses a more sophisticated
|
||||
# approach to avoid rescanning all files by keeping track of local changes
|
||||
# It does this on a directory-by-directory basis as a comprimise between
|
||||
# It does this on a directory-by-directory basis as a compromise between
|
||||
# doing the minimal work but limiting the number and size of the "extra"
|
||||
# files. In this case, for each directory, the following dot file is
|
||||
# produced (with a <name> provided depending on use:
|
||||
@@ -58,7 +58,7 @@
|
||||
# Data structures
|
||||
# Within a directory
|
||||
# fileInfo{filename} = extracted info
|
||||
# filesUpdated[] = array of file names that match critera
|
||||
# filesUpdated[] = array of file names that match criteria
|
||||
# fileInCache{filename} = comparison info
|
||||
#
|
||||
# -------------------------------------------------------------------------
|
||||
|
||||
@@ -12,7 +12,7 @@ from local_python import RE
|
||||
def main():
|
||||
binding_dir = "src/binding"
|
||||
f08_dir = "src/binding/fortran/use_mpi_f08"
|
||||
func_list = load_C_func_list(binding_dir, True) # supress noise
|
||||
func_list = load_C_func_list(binding_dir, True) # suppress noise
|
||||
# FIXME: until romio interface is generated
|
||||
func_list.extend(get_mpiio_func_list())
|
||||
func_list.extend(get_type_create_f90_func_list())
|
||||
|
||||
@@ -234,7 +234,7 @@ close HFILE;
|
||||
# FIXME: This is RLOG specific and should be placed in the appropriate
|
||||
# RLOG directory, not common.
|
||||
# FIXME: It would also make more sense for the RLOG_Describe_state routine
|
||||
# to perform the random color assignement when provided with an empty
|
||||
# to perform the random color assignment when provided with an empty
|
||||
# or null color string, rather than including all of this code in what is
|
||||
# otherwise an RLOG-specific file.
|
||||
|
||||
|
||||
@@ -60,13 +60,13 @@ $annoteFiles = 0;
|
||||
$annoteBaseDir = "";
|
||||
%AnnoteFilesMap = (); # Clear the list of files
|
||||
%AnnoteMissed = (); # Clear the mapping of filenames to "missed;total" lines
|
||||
%AnnoteFilesToOrig = (); # Map from annoted file key to original name (used for
|
||||
%AnnoteFilesToOrig = (); # Map from annotated file key to original name (used for
|
||||
# indexing into AnnoteMissed)
|
||||
$gDebug = 0;
|
||||
$gDebugDetail = 0;
|
||||
|
||||
# The line leaders are used to provide a common set of expressions to match
|
||||
# the begining of a line. This matches the output from the gcov tools.
|
||||
# the beginning of a line. This matches the output from the gcov tools.
|
||||
# There are two of these because the output from the tools associtated with
|
||||
# gcc version 2.x and 3.x are different.
|
||||
# As, apparently is 4.x.
|
||||
@@ -783,7 +783,7 @@ sub ExpandDir {
|
||||
$otherdirs[$#otherdirs+1] = "$dir/$filename";
|
||||
}
|
||||
elsif ($filename =~ /(.*\.gcov)$/) {
|
||||
# Check for the presense of a "merged" gcov file and use instead
|
||||
# Check for the presence of a "merged" gcov file and use instead
|
||||
if (-f "$dir/$filename.merge") {
|
||||
$files[$#files + 1] = "$dir/$filename.merge";
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# This hook prevent from pushing a branch that is not rebased on
|
||||
# latest MPICH main branch.
|
||||
#
|
||||
# It fetchs the hash of the latest main branch from github and compares
|
||||
# It fetches the hash of the latest main branch from github and compares
|
||||
# the local branch. It returns 1 if either the hash of the latest
|
||||
# main branch does not exist in the local git repo or the branch needs
|
||||
# rebasing.
|
||||
|
||||
@@ -700,13 +700,13 @@ I said B<human-readable> and not B<geek-readable>. The sort of files that
|
||||
your average manager or secretary should be able to look at and make
|
||||
sense of.
|
||||
|
||||
L<YAML::Tiny> does not generate comments, it won't necesarily preserve the
|
||||
L<YAML::Tiny> does not generate comments, it won't necessarily preserve the
|
||||
order of your hashes, and it will normalise if reading in and writing out
|
||||
again.
|
||||
|
||||
It only supports a very basic subset of the full YAML specification.
|
||||
|
||||
Usage is targetted at files like Perl's META.yml, for which a small and
|
||||
Usage is targeted at files like Perl's META.yml, for which a small and
|
||||
easily-embeddable module is extremely attractive.
|
||||
|
||||
Features will only be added if they are human readable, and can be written
|
||||
@@ -746,7 +746,7 @@ JSON, with the additional limitation that only simple keys are supported.
|
||||
|
||||
As a result, all possible YAML Tiny documents should be able to be
|
||||
transformed into an equivalent JSON document, although the reverse is
|
||||
not necesarily true (but will be true in simple cases).
|
||||
not necessarily true (but will be true in simple cases).
|
||||
|
||||
As a result of these simplifications the YAML Tiny specification should
|
||||
be implementable in a relatively small amount of code in any language
|
||||
@@ -804,7 +804,7 @@ B<Loading Failure Points>
|
||||
|
||||
YAML Tiny parsers and emitters are not expected to recover from adapt to
|
||||
errors. The specific error modality of any implementation is not dictated
|
||||
(return codes, exceptions, etc) but is expected to be consistant.
|
||||
(return codes, exceptions, etc) but is expected to be consistent.
|
||||
|
||||
=head2 4. Syntax
|
||||
|
||||
@@ -905,7 +905,7 @@ Indentation spaces work as per the YAML specification in all cases.
|
||||
Comments work as per the YAML specification in all simple cases.
|
||||
Support for indented multi-line comments is B<not> required.
|
||||
|
||||
Seperation spaces work as per the YAML specification in all cases.
|
||||
Separation spaces work as per the YAML specification in all cases.
|
||||
|
||||
B<YAML Tiny Character Stream>
|
||||
|
||||
@@ -938,7 +938,7 @@ Support for the document boundary marker "---" is required.
|
||||
|
||||
Support for the document boundary market "..." is B<not> required.
|
||||
|
||||
If necesary, a document boundary should simply by indicated with a
|
||||
If necessary, a document boundary should simply by indicated with a
|
||||
"---" marker, with not preceding "..." marker.
|
||||
|
||||
Support for empty streams (containing no documents) is required.
|
||||
@@ -961,7 +961,7 @@ Support for nodes optional anchor and tag properties are B<not> required.
|
||||
|
||||
Support for node anchors is B<not> required.
|
||||
|
||||
Supprot for node tags is B<not> required.
|
||||
Support for node tags is B<not> required.
|
||||
|
||||
Support for alias nodes is B<not> required.
|
||||
|
||||
|
||||
@@ -756,7 +756,7 @@ def check_large_parameters(func):
|
||||
|
||||
# Set func['_poly_impl']
|
||||
if 'poly_impl' in func:
|
||||
# always prefer explict .poly_impl directive
|
||||
# always prefer explicit .poly_impl directive
|
||||
func['_poly_impl'] = func['poly_impl']
|
||||
elif 'code-large_count' in func:
|
||||
# { -- large_count } code block exist
|
||||
@@ -2113,7 +2113,7 @@ def get_impl_param(func, param):
|
||||
|
||||
def get_polymorph_param_and_arg(s):
|
||||
# s is a polymorph spec, e.g. "MPIR_Attr_type attr_type=MPIR_ATTR_PTR"
|
||||
# Note: we assum limit of single extra param for now (which is sufficient)
|
||||
# Note: we assume limit of single extra param for now (which is sufficient)
|
||||
RE.match(r'^\s*(.+?)\s*(\w+)\s*=\s*(.+)', s)
|
||||
extra_param = RE.m.group(1) + ' ' + RE.m.group(2)
|
||||
extra_arg = RE.m.group(3)
|
||||
|
||||
@@ -24,7 +24,7 @@ def split_line_with_break(s, tail, N=100):
|
||||
tlist.append(s)
|
||||
n = len(s)
|
||||
elif RE.match(r'(.*?\()(.*)', s):
|
||||
# line with function pattern, match indent at openning parenthesis
|
||||
# line with function pattern, match indent at opening parenthesis
|
||||
s_lead, s_next = RE.m.group(1,2)
|
||||
n_lead = len(s_lead)
|
||||
|
||||
|
||||
@@ -77,7 +77,7 @@ def dump_f08_wrappers_c(func):
|
||||
p5 = func['parameters'][i + 4]
|
||||
dump_buf(p['name'], True)
|
||||
dump_buf(p2['name'], False)
|
||||
# arbitary: only recvbuf may be sub-array
|
||||
# arbitrary: only recvbuf may be sub-array
|
||||
if RE.match(r'mpi_i?reduce_scatter', func['name'], re.IGNORECASE):
|
||||
dump_p(p3)
|
||||
dump_p(p4)
|
||||
@@ -420,7 +420,7 @@ def dump_f08_wrappers_f(func):
|
||||
need_check_int_kind = True
|
||||
if not has_comm_size:
|
||||
if RE.search(r'alltoallw', func['name'], re.IGNORECASE):
|
||||
# always need the lenght for types array
|
||||
# always need the length for types array
|
||||
use_list = convert_list_pre
|
||||
else:
|
||||
use_list = convert_list_1
|
||||
|
||||
+1
-1
@@ -207,7 +207,7 @@ sub StripComments {
|
||||
$comment_line = $1;
|
||||
$curline =~ s/\/\*.*?\*\///s;
|
||||
print "Removed comment, now is $curline\n" if $debug;
|
||||
# Keep looking for comments incase the line has multiple
|
||||
# Keep looking for comments in case the line has multiple
|
||||
# comments
|
||||
}
|
||||
else {
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário