On 20210916@11:53, Paul Gevers wrote: > Hi, > > On 16-09-2021 09:20, Michele Martone wrote: > >> root@autopkgtest-lxc-bexxro:/tmp/autopkgtest-lxc.ghhdpc6_/downtmp/build.J9f/src# > >> rsbench -CERROR 0xfffffc00 : The requested feature (e.g.:blocking) is > >> not available because it was opted out or not configured at built time. > > You have up to 160 threads. > > The hardcoded default (overridable ./configure --with-max-threads N) is > > likely 128.> > > Can you export > > OMP_NUM_THREADS=3 # or anything below the hardcoded limit of 128 > > and rerun rsbench -C > > root@autopkgtest-lxc-huzjhy:/tmp/autopkgtest-lxc.ohtynpml/downtmp/build.Ray/src# > OMP_NUM_THREADS=3 rsbench -C > rsbench version: 1.2.0 > ... > RSB_CONST_MAX_SUPPORTED_CORES:64 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Ok, indeed 128>64 and that one cause of error. I just uploaded a new tarball (release ongoing) https://sourceforge.net/projects/librsb/files/librsb-1.2.0.10.tar.gz/download which in such cases shall emit an error on `rsbench -C` and still print all the relevant info, instead of failing almost-silently, as you experienced.
> ... > > > and/or redo the octave-sparsersb experiments ? > > I ran autopkgtest with the --env option, it seems to do what I intended > as this run doesn't hang *and* reports some test ran. It still reports > the segfault. > root@ci-worker-armel-01:~# autopkgtest octave-sparsersb > --env=OMP_NUM_THREADS=3 --shell --shell-fail -- lxc > autopkgtest-unstable-armhf > > [...] > > ***** demo > disp("'sparsersb' can render sparse matrices into Encapsulated > Postscript files showing the RSB blocks layout.") > rm = sparsersb(sprand(100000,100000,.0001)); > sparsersb(rm,'render','sptest.eps') > disp("You can open sptest.eps now.") > 994 tests, 994 passed, 0 known failure, 0 skipped ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ These 994 tests are actual proof the librsb plugin for Octave is working as it should -- at least here. > Run tests in debian/check.m > make: Entering directory > '/tmp/autopkgtest-lxc.o84pxsbs/downtmp/build.OTf/src/src' > LFLAGS=" " LDFLAGS=" " CXXFLAGS=" " -D'RSB_SPARSERSB_LABEL=sparsersb' > -o sparsersb.oct sparsersb.cc > make: -p: No such file or directory > make: -p: No such file or directory > /bin/sh: 1: -DRSB_SPARSERSB_LABEL=sparsersb: not found The above seems like like that line from sparsersb's Makefile where MKOCTFILE should be set, but it isn't. > make: *** [Makefile:38: sparsersb.oct] Error 127 > make: Leaving directory > '/tmp/autopkgtest-lxc.o84pxsbs/downtmp/build.OTf/src/src' > fatal: caught signal Segmentation fault > Summary: 995 tests, 995 passed, 0 known failures, 0 skipped Seems like.. the segfault is a consequence of the missing MKOCTFILE!? > > If that was the problem, > > $ rsbench -B > > shall run fine (a few s will suffice); and > > root@autopkgtest-lxc-vorfrc:/tmp/autopkgtest-lxc.x7kgxv0e/downtmp/build.6k2/src# > OMP_NUM_THREADS=3 rsbench -B > > [...] > > % rendering time ~ 0.000200033 s > PRINT TEST: END (SUCCESS) > BASIC SPARSE BLAS TEST: END (SUCCESS) > STRESS SPARSE BLAS TEST: BEGIN > STRESS SPARSE BLAS TEST: END (SUCCESS) > SPARSE BLAS TESTS: END (SUCCESS) > BASIC PRIMITIVES TEST: BEGIN > BASIC PRIMITIVES TEST: END (SUCCESS) > ADVANCED SPARSE BLAS TEST: BEGIN > 0: type:S sym:LT incX:1 incB:1 dim: 1 transT:N alpha:-2 > beta:+1 diag:E subms: 1 nz:1 is ok > Terminating testing earlier due to interactive user request: test took > 0.000000 s, max allowed was 0.000000. > PASSED:1 > FAILED:0 > ADVANCED SPARSE BLAS TEST: END (SUCCESS) > > > $ ./rsbench -oa -Ob --dense 100 --verbose --verbose > > --write-performance-record foo | grep ^pr.*1 > > shall lead to something similar to > > pr: 1:r_r dense-100x100-10000nz 100 100 10000 1 D G N 4 0 0 4.1664 > > 4.1664 16 16 1525.20 1.311e-05 0.000e+00 1.311e-05 0.000e+00 2.420e-02 > > 9.46e+00 6.16e+00 0 2.00e-02 > > root@autopkgtest-lxc-vorfrc:/tmp/autopkgtest-lxc.x7kgxv0e/downtmp/build.6k2/src# > OMP_NUM_THREADS=3 rsbench -oa -Ob --dense 100 --verbose --verbose > --write-performance-record foo | grep ^pr.*1 > pr: 1:r_r dense-100x100-10000nz 100 100 10000 1 D G N 3 0 0 > 4.1664 4.1664 16 16 2.28 8.768e-03 0.000e+00 8.768e-03 0.000e+00 > 2.452e+00 1.41e-02 6.16e+00 0 2.00e-02 The above output is sane. I suggest to set OMP_NUM_THREADS to something small before tests -- say, min(nproc,4) -- for all purposes of testing librsb and octave-sparsersb. For architectural reasons, using all the cores (e.g.160) is nonsense here. Is that okay? > > If that's the problem, maybe I can devise a fix to make the error easier > > to spot. > > What about the negative free memory that's reported? Those lines print output of sysconf() call, and AFAIK that's long. Now, from your 20210916@08:54 output of `rsbench -I` I see long is 4 bytes (which is strange, given the machine). That's causing negative printouts. Would be great if you could try the tarball I linked at the beginning of the email -- I'm using some 'unsigned' prints -- that shall help a bit (one bit ;-) . Please let me know! Cheers, Michele
signature.asc
Description: PGP signature