As the originator of PSBLAS, I should perhaps point out that it contains iterative solvers, not the direct ones that are implied by the \ operator. Our intention, as far as Octave is concerned, is to make available the Krylov solvers we have, coupled with the multilevel preconditioners of MLD2P4; both libraries are mainly about parallel systems using MPI, but an implementation under Octave would be able to run in shared memory mode.
Hope this helps; more details on the two packages at www.mld2p4.it and www.ce.uniroma2.it/psblas Thanks Salvatore Il giorno sab, 12/11/2011 alle 11.44 +0100, Alexander Barth ha scritto: > On Fri, Nov 11, 2011 at 11:48 PM, Michele Martone > <michele.mart...@ipp.mpg.de> wrote: > > On 20111111@22:29, Alexander Barth wrote: > >> > > >> > hello, octave-forge :) > >> > created main/sparsersb, in order to host files for the "sparsersb" > >> > oct-file package; that is, an Octave function to have an additional > >> > Octave type for using the sparse matrix implementation given by the > >> > "librsb" library. > >> > > >> > ------------------------------------------------------------------------ > >> > > >> > I confirm I'm able to commit -- thanks! > >> > > >> > ------------------------------------------------------------------------------ > >> > >> Dear Michele, > >> > >> Thank you for making your work available! I'm very interested in using > >> a library able to do sparse matrix operations in parallel! > >> > >> However, I have some problems when I want to use the sparsersb type to > >> solve a linear system: > >> > >> % C is 900x900 sparse matrix (octave-type) and b a vector 900x1 > >> load icovar.mat C b > >> x = C \ b; % works > >> > >> S = sparsersb(full(C)); > >> x = S \ b; % fails > >> ERROR 0xffffffe0 : The user supplied some corrupt data as argument > >> > >> Is the backslash operator implemented for sparsersb? > >> > >> The file icovar.mat is available here: > >> http://modb.oce.ulg.ac.be/mediawiki/upload/Alex/icovar.mat > >> > >> Thanks again and best regards, > >> Alex > > > > Dear Alex, > > > > First of all, I'm very happy that you tried (that is: built and tested) > > the whole thing. > > > > I was about to write more librsb/sparersb build documentation, so every > > bit of of your feedback may be useful for improving it, especially to > > allow other Octave devels to try/check the sparsersb package. > > > > Also error reporting is an important thing: that error message is not > > very informative: I'll it to a more reasonable one in the next commits. > > The \ operator, for now, performs tringular solution by a vector or > > multivector. > > > > librsb is not a solver library: we (me and Salvatore and Alfredo) plan > > another contribution for that in the future (interfacing to the PSBLAS > > solver library). > > > > However, we may discuss anddecide for the most reasonable semantics > > for sparsersb's operators. > > When it comes to '\', as far as i know (I've read David Bateman's > > article about Octave sparse internals and '\'), a "polyalgorithm" is > > involved; that is, a number of methods are considered following a tree of > > decisions (e.g.: matrix factorizations using UMFPACK, for instance). > > > > Since "sparsersb" doesn't have the ambition of solving linear systems by > > itself, I would say that a good default, in perspective, may be: > > > > - if the matric is NOT triangular switch to sparse (or dense) in a > > temporary copy; then perform Octave's '\' > > - if it's triangular perform triangular solution > > > > So for now, '\' is legal for 'sparsersb' as far as the matrix is > > triangular (tril or triu): > > > > load icovar.mat C b > > x = C \ b; > > (tril(C)\b)-(sparsersb(tril(C))\b) > > > > > > Cheers, > > Michele > > > > Dear Michele, > > Thank you for your fast response. The way you propose to implement the > \ operator makes sens to me and a possibily interface to PSBLAS sound > very promising! > > I have had some issues/doubts when I compiled librsb et sparsersb. > When I configured librsb (version 0.0.1445) with: > ./configure CFLAGS="-O3 -fPIC" --prefix /home/abarth/opt/librsb-0.0.1445/ > > I get the following warning at the end: > configure: WARNING: You seem to not have octave or have disabled 'int' > type. We will not be able to use it to build a test suite if you'll > want to regenerate the library code. > > Octave is indeed installed (version 3.4.0). Is it safe to ignore this warning? > > When I compile "sparsersb" (svn version from octave-forge), I get the > following error: > > $ make > mkoctfile -Doctave_idx_type=int -DNEED_OCTAVE_QUIT -DHAVE_OCTAVE_34 -v > -D''RSB_SPARSERSB_LABEL=sparsersb > -I/home/abarth/opt/librsb-0.0.1445/include/ -o sparsersb.oct > sparsersb.cc -L/home/abarth/opt/librsb-0.0.1445/lib -lrsb -lgomp > g++ -c -fPIC -I/home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/.. > -I/home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave > -I/home/abarth/opt/octave-3.4.0/include -I/usr/include/freetype2 -g > -O2 -I/home/abarth/opt/librsb-0.0.1445/include/ -Doctave_idx_type=int > -DNEED_OCTAVE_QUIT -DHAVE_OCTAVE_34 -DRSB_SPARSERSB_LABEL=sparsersb > sparsersb.cc -o sparsersb.o > In file included from sparsersb.cc:45: > /home/abarth/opt/librsb-0.0.1445/include/rsb.h:232:1: warning: > "restrict" redefined > In file included from > /home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/../octave/oct.h:31, > from sparsersb.cc:39: > /home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/../octave/config.h:2455:1: > warning: this is the location of the previous definition > In file included from > /home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/../octave/oct.h:31, > from sparsersb.cc:39: > /home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/../octave/config.h:2628: > error: multiple types in one declaration > /home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/../octave/config.h:2628: > error: declaration does not declare anything > make: *** [sparsersb.oct] Error 1 > > > Line 2628 of > /home/abarth/opt/octave-3.4.0/include/octave-3.4.0/octave/../octave/config.h > contains the following definition: > typedef OCTAVE_IDX_TYPE octave_idx_type; > > When I remove the CPP flag -Doctave_idx_type=int from the mkoctfile > command, I can compile sparsersb.cc. Is this CPP flag really nessary? > In my config.h, I have also the definition: > #define OCTAVE_IDX_TYPE int > > Cheers, > Alex > ------------------------------------------------------------------------------ RSA(R) Conference 2012 Save $700 by Nov 18 Register now http://p.sf.net/sfu/rsa-sfdev2dev1 _______________________________________________ Octave-dev mailing list Octave-dev@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/octave-dev