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

Reply via email to