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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel

Reply via email to