Dear Filippone,

Also an iterative parallel solver would be very useful for me.
Currently, I'm using either a direct solver (the \ operator) or the
conjugate gradient alogorithm.
I tried to find our more information about PSBLAS but it seems that
the web-page has currently some problems (time-out).

Best regards,
Alex


On Sat, Nov 12, 2011 at 12:01 PM, Salvatore Filippone
<salvatore.filipp...@uniroma2.it> wrote:
> 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