R-3.0.1 - "transient" make check failure in splines-EX.r
Thank you very much, Paul. Serendipitously, I seem to have stumbled on a solution. In my parallel (still unsuccessful) attempt to build a BLAS for a 64bit machine (see <https://stat.ethz.ch/pipermail/r-devel/2013-May/066731.html>) I remembered from ATLAS that under the newer Windows there is a divergence from the "standard" ABI (see <http://math-atlas.sourceforge.net/atlas_install/node57.html>). Looking through the various makefiles under OpenBLAS, I found the following: ifeq ($(C_COMPILER), GCC) #Test for supporting MS_ABI GCCVERSIONGTEQ4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \>= 4) GCCVERSIONGT4 := $(shell expr `$(CC) -dumpversion | cut -f1 -d.` \> 4) GCCMINORVERSIONGTEQ7 := $(shell expr `$(CC) -dumpversion | cut -f2 -d.` \>= 7) ifeq ($(GCCVERSIONGT4), 1) # GCC Majar version > 4 # It is compatible with MSVC ABI. CCOMMON_OPT += -DMS_ABI endif I had been building OPBL using gcc4.8.0, which is ostensibly "compatible" with the newer ABI, but Rtools still lives in 4.6.3, which isn't. Recompiling the BLAS with MinGW32 for 4.6.3 created a file that has passed `make check-all` twice now. I plan on comparing the speed with the ATLAS-based blas, and if it is faster, I hope to e-mail the dll and check results to Dr. Ligges. I say "stumbled serendipitously" because when using the 64 bit version of MinGw 4.6.3 resulted in the same `optim`-based error in `factanal` which I describe in the thread linked-to above. I will try using different versions of MinGW or even trying under Cygwin, I guess. In any event, Paul, I am curious if when you were trying to compile and had the same issue, were you using a different version or generation of gcc in the BLAS compilation than in the R compilation? Once again, thank you very much. Avraham Adler -----Original Message----- From: Paul Gilbert Sent: Thursday, May 30, 2013 12:26 AM To: Adler, Avraham Subject: Re: R-3.0.1 - "transient" make check failure in splines-EX.r Avraham I resolved this only by switching to a different BLAS on the 32 bit machine.Since no one else seemed to be having problems, I considered it possible that there was a hardware issue on my old 32 bit machine. The R check test failed somewhat randomly, but often. most disconcertingly, it failed because it gives different answers. If you source the code in an R session a few times you have no trouble reproducing this. It gives the impression of an improperly zeroed matrix. (All this from memory, I'm on the road.) Paul
On 13-05-28 06:36 PM, Adler, Avraham wrote:
Hello. I seem to be having the same problem that Paul had in the thread titled "[Rd] R 2.15.2 make check failure on 32-bit --with-blas="-lgoto2"" from October of last year <https://stat.ethz.ch/pipermail/r-devel/2012-October/065103.html> Unfortunately, that thread ended without an answer to his last question. Briefly, I am trying to compile an Rblas for Windows NT 32bit using OpenBlas (successor to GotoBlas) (Nehalem - corei7), and the compiled version passes all tests except for the "splines-Ex" test in the exact same place that Paul had issues: ~~~~
stopifnot(identical(ns(x), ns(x, df = 1)),
+ identical(ns(x, df = 2), ns(x, df = 2, knots = NULL)), # not true till 2.15.2 + !is.null(kk <- attr(ns(x), "knots")), # not true till 1.5.1 + length(kk) == 0) Error: identical(ns(x, df = 2), ns(x, df = 2, knots = NULL)) is not TRUE ~~~~ Yet, opening up R and running the actual code shows that the error is transient: ~~~~
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] FALSE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] TRUE
identical(ns(x, df = 2), ns(x, df = 2, knots = NULL))
[1] FALSE ~~~~ This is the only error I have on the 32-bit version, I believe (trying to build a blas for 64-bit on SandyBridge is a completely different kettle of fish that is causing me to pull out what little hair I have left), and if it can be solved that would be great. Thank you, Avraham