Commit 2d929656 authored by Radford Neal's avatar Radford Neal

rename --disable-mat-mult-with-BLAS-in-helpers to --disable-BLAS-in-helpers

parent 35e94a0c
...@@ -54,7 +54,7 @@ likely to be useful are as follows: ...@@ -54,7 +54,7 @@ likely to be useful are as follows:
hyperthreading. It is necessary if your system does not hyperthreading. It is necessary if your system does not
support the OpenMP facility. support the OpenMP facility.
--disable-mat-mult-with-BLAS-in-helpers --disable-BLAS-in-helpers
Specify this option if the BLAS routines you plan to use are Specify this option if the BLAS routines you plan to use are
not thread-safe, and hence should not be run in parallel. The not thread-safe, and hence should not be run in parallel. The
......
...@@ -300,16 +300,16 @@ fi ...@@ -300,16 +300,16 @@ fi
AM_CONDITIONAL(WANT_R_FRAMEWORK, [test "x${want_R_framework}" = xyes]) AM_CONDITIONAL(WANT_R_FRAMEWORK, [test "x${want_R_framework}" = xyes])
## Allow specification of whether BLAS matrix multiplies are allowed in helpers. ## Allow specification of whether BLAS matrix multiplies are allowed in helpers.
AC_ARG_ENABLE([mat-mult-with-BLAS-in-helpers], AC_ARG_ENABLE([BLAS-in-helpers],
[AS_HELP_STRING([--enable-mat-mult-with-BLAS-in-helpers],[allow %*% with BLAS to be done in helpers @<:@yes@:>@])], [AS_HELP_STRING([--enable-BLAS-in-helpers],[allow (some) BLAS calls to be done in helpers @<:@yes@:>@])],
[if test "${enableval}" = no; then [if test "${enableval}" = no; then
mat_mult_with_BLAS_in_helpers=no BLAS_in_helpers=no
elif test "${enableval}" = yes; then elif test "${enableval}" = yes; then
mat_mult_with_BLAS_in_helpers=yes BLAS_in_helpers=yes
else else
mat_mult_with_BLAS_in_helpers=yes BLAS_in_helpers=yes
fi], fi],
[mat_mult_with_BLAS_in_helpers=yes]) [BLAS_in_helpers=yes])
## Allow speciication of the default for mat_mult_with_BLAS ## Allow speciication of the default for mat_mult_with_BLAS
AC_ARG_ENABLE([mat-mult-with-BLAS-by-default], AC_ARG_ENABLE([mat-mult-with-BLAS-by-default],
...@@ -2273,7 +2273,7 @@ if test "${want_memory_profiling}" = yes; then ...@@ -2273,7 +2273,7 @@ if test "${want_memory_profiling}" = yes; then
fi fi
## Whether matrix multiply with BLAS in helpers allowed ## Whether matrix multiply with BLAS in helpers allowed
if test "${mat_mult_with_BLAS_in_helpers}" = yes; then if test "${BLAS_in_helpers}" = yes; then
AC_DEFINE(R_MAT_MULT_WITH_BLAS_IN_HELPERS_OK, 1, [Define if BLAS matrix multiply is thread safe.]) AC_DEFINE(R_MAT_MULT_WITH_BLAS_IN_HELPERS_OK, 1, [Define if BLAS matrix multiply is thread safe.])
fi fi
......
...@@ -86,9 +86,10 @@ ...@@ -86,9 +86,10 @@
references on the stack. references on the stack.
}} }}
\subsection{NEW FEATURES FOR BUILDING, TESTING, AND DEBUGGING}{ \subsection{INSTALLATION, BUILDING, TESTING, AND DEBUGGING}{
These are mostly of interest to developers, not to most users.
\itemize{ \itemize{
\item The \code{--disable-mat-mult-with-BLAS-in-helpers} configuration
option has been renamed as \code{--disable-BLAS-in-helpers}.
\item Setting the environment variable \code{R_ABORT} to any non-null \item Setting the environment variable \code{R_ABORT} to any non-null
string will prevent any attempt to produce a stack trace on a string will prevent any attempt to produce a stack trace on a
segmentation fault, in favour of instead producing (maybe) an segmentation fault, in favour of instead producing (maybe) an
......
...@@ -3513,11 +3513,11 @@ produce a further slight speed improvement in situations where neither ...@@ -3513,11 +3513,11 @@ produce a further slight speed improvement in situations where neither
helper threads nor task merging are useful. helper threads nor task merging are useful.
If the BLAS routines used for matrix multiplication are not If the BLAS routines used for matrix multiplication are not
thread-safe, the @code{--disable-mat-mult-with-BLAS-in-helpers} option thread-safe, the @code{--disable-BLAS-in-helpers} option should be
should be used, to prevent tasks that call the BLAS from being run in used, to prevent tasks that call the BLAS from being run in helper
helper threads. This option may also be useful if the BLAS is threads. This option may also be useful if the BLAS is multi-threaded
multi-threaded and runs inefficiently (even if correctly) when several and runs inefficiently (even if correctly) when several BLAS routines
BLAS routines are running in parallel. are running in parallel.
@node Internationalization support, Configuration variables, Helper threads and task merging, Configuration on a Unix-alike @node Internationalization support, Configuration variables, Helper threads and task merging, Configuration on a Unix-alike
......
Changes to whether BLAS is used to do matrix multiplies, Changes to whether BLAS is used to do matrix multiplies,
to mimic R Core behaviour so far as it makes any sense to mimic R Core behaviour so far as it makes any sense
at all. at all.
Also renames the --disable-mat-mult-with-BLAS-in-helpers
configuration option to --disable-BLAS-in-helpers.
...@@ -47,9 +47,8 @@ tcrossprod(x, y = NULL) ...@@ -47,9 +47,8 @@ tcrossprod(x, y = NULL)
produce pipelined output, and \code{crossprod} but not produce pipelined output, and \code{crossprod} but not
\code{tcrossprod} will take pipelined input for the second operand. \code{tcrossprod} will take pipelined input for the second operand.
When a BLAS routine is used, the multiplication can be done in a When a BLAS routine is used, the multiplication can be done in a
helper thread (unless this is disabled with helper thread (unless this is disabled with \code{--disable-BLAS-in-helpers}
\code{--disable-mat-mult-with-BLAS-in-helpers} when configuring when configuring pqR), but with no pipelining of inputs or output.
pqR), but with no pipelining of inputs or output.
When \code{crossprod} or \code{tcrossprod} is given only one When \code{crossprod} or \code{tcrossprod} is given only one
argument (the second defaulting to be the same as the first), or when the argument (the second defaulting to be the same as the first), or when the
......
...@@ -46,12 +46,12 @@ x \%*\% y ...@@ -46,12 +46,12 @@ x \%*\% y
when configuring pqR. when configuring pqR.
If the builtin C routines are used when helper threads are enabled, If the builtin C routines are used when helper threads are enabled,
they will take piplelined input for their second operand, and produce they will take piplelined input for their second operand, and
pipelined output for vector-matrix and matrix-matrix products. Matrix produce pipelined output for vector-matrix and matrix-matrix
multiplication with the BLAS routines can also be done in helper threads products. Matrix multiplication with the BLAS routines can also be
(though this can be disabled when configuring pqR with the done in helper threads (though this can be disabled when configuring
\code{--disable-mat-mult-with-BLAS-in-helpers} option), pqR with the \code{--disable-BLAS-in-helpers} option), but with no
but with no pipelining of inputs or output. pipelining of inputs or output.
Another reason one might wish to use the built-in C routines is that Another reason one might wish to use the built-in C routines is that
they guarantee correct behaviour when some elements are \code{NA}, they guarantee correct behaviour when some elements are \code{NA},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment