On 20111113@23:09, Carlo de Falco wrote: > On 13 Nov 2011, at 23:02, c. wrote: > > On 13 Nov 2011, at 22:20, Alexander Barth wrote: > >> Dear Michele, > >> > >> I would like to try the suggestion of Filippone, but I sumbled upon a > >> a segmentation fault for the following matrix multiplication: > >> > >> load test.mat % http://modb.oce.ulg.ac.be/mediawiki/upload/Alex/test.matbut > >> [i,j,s]=find(A); > >> A2 = sparsersb(i,j,s); > >> [i,j,s]=find(extx); > >> extx2 = sparsersb(i,j,s); > >> extx2*A2; > >> > >> panic: Segmentation fault -- stopping myself... > >> attempting to save variables to `octave-core'... > >> save to `octave-core' complete > >> Segmentation fault > >> > >> Any help would be appreciated, > >> Cheers, > >> Alex > > > > Alex, > > FYI, your example is working fine for me: > > > >>> load test.mat > >>> A2 = sparsersb (A); > >>> extx2 = sparsersb (extx); > >>> x2 = A2 * extx2; > >>> [ia, ja, va] = find (A); > >>> [ie, je, ve] = find (extx); > >>> A3 = sparsersb (ia, ja, va); > >>> extx3 = sparsersb (ie, je, ve); > >>> x3 = A3 * extx3; > > > > What version of Octave are you using? how did you install sparsersb? > > c. > > OTH, if I run the example repeatedly I also get a crash, eventually: > > $ RSB_USER_SET_MEM_HIERARCHY_INFO="L2:4/64/3M,L1:8/64/32K" octave -q > >> load test.mat > >> A2 = sparsersb (A); > >> extx2 = sparsersb (extx); > >> x2 = A2 * extx2; > >> x2 = A2 * extx2; > >> x2 = A2 * extx2; > ... Dear Alex, Carlo,
Thanks, you catched another bug(s)! Indeed, sparse-sparse product is not a well tested feature: I wrote it more for the challenge/fun of having it, to be honest. It's parallel, however I wonder how much efficient. By the way, it seems like even: A=[1];B=sparsersb(A);C=sparsersb(A);D=B*C; is enough to make it crash. I'll definitely have to investigate --- please do not report about it until I propose some update about it. I wonder how much critical this operation is in linear system solving applications. This information would be useful in order to settle priorities in bugfixing; do you have an idea about this ? p.s.: I suggest to make some test in sparsersb vs dense product (without subsref); E.g.: A=sparsersb([1]);B=[1,1];D=A*B; and bigger systems, with at least more right hand sides. p.s.: In the future, sparsersb should also need to align to Octave's policy of handling triangular solution to matrices with no diagonal, and to a wealth of such "corner cases" which I currently ignore. p.s.: Recompiling librsb by adding --with-internal-error-verbosity=1 to the configure arguments (then make clean;make) would be a good idea :)
pgphMW6GYMfMW.pgp
Description: PGP signature
------------------------------------------------------------------------------ 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