[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [igraph] ARPACK error in igraph 0.6

From: Paul Johnson
Subject: Re: [igraph] ARPACK error in igraph 0.6
Date: Wed, 23 Nov 2011 23:34:06 -0600

On Tue, Nov 15, 2011 at 6:22 PM, Leo Alekseyev <address@hidden> wrote:
> I am trying to compute the page rank of a graph with ~50,000 vertices
> and 300,000 edges.  I'm using the R interface to the latest nightly of
> igraph (igraph_nightly_0.6-2591-20111110).  I keep running into the
> following error:
> At arpack.c:961 : ARPACK error, The Schur form computed by LAPACK
> routine dlahqr could not be reordered by LAPACK routine dtrsen.
I'm sorry if I am telling you something you already know.

R is delivered with only a basic BLAS setup, and one can set it up to
use an enhanced shared library implementation of BLAS, such as ATLAS,
GOTOblas2 (now the openblas package), or the Intel MKL (packaged for
Ubuntu's version of R).  This can  be done either by re-compiling R to
tell it explicitly where the BLAS is located or by configuring R to
use a shared BLAS that can be substituted at runtime.
>From what I can tell, this can be frustrating for Windows users, but
it is easy on Linux/Unix/Mac.

I am a little unsure which particular LAPACK routines get replaced, I
think not all shared BLAS libraries will be identical.  I'm no expert
on that part. But if you read, for example here:


It appears that even if your particular LAPACK function is not
replaced, it may work better because it is built on the better version
of BLAS.

Depending on which version of Linux you run, it may be more or less
easy to switch the BLAS implementation you rely on.   I am sure there
are substantial performance differences to be had by changing this.

The first time I did this, I was following the instructions in the
R-admin manual, and that describes one approach.  Dirk Eddelbuettel
helped me figure out quite a few details, he's the packager for Ubuntu
and Debian. If you run Ubuntu, I think it is quite easy to use the
Intel MKL because r-revolution is a package that is designed to drop
in the new BLAS where R will find it (as I recall, that R is compiled
so that R looks in the ld load path.

The devel headers for building R can be the same, the only part that
changes is the location of the shared BLAS library. I'm running Debian
now, for example, and the shared library name that programs look for


but that ends up at ATLAS through a series of links,

 libblas.so -> libblas.so.3gf

/usr/lib/libblas.so.3gf -> /etc/alternatives/libblas.so.3gf
/etc/alternatives/libblas.so.3gf -> /usr/lib/atlas-base/atlas/libblas.so.3gf

Well, I can feel myself getting carried away. The point is, if your
BLAS/LAPACK routine crashes, try swapping out your BLAS, it may make
you happy.


Paul E. Johnson
Professor, Political Science
1541 Lilac Lane, Room 504
University of Kansas

reply via email to

[Prev in Thread] Current Thread [Next in Thread]