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