octave parallel segment faults

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

octave parallel segment faults

sshah
This post was updated on .
I am using octave 4.4.1 on mac OS 10.13.6, installed using Homewbrew (octave
version 4.4.1_4).  It is installed for cli (non-gui).
------
brew info octave
octave: stable 4.4.1 (bottled), HEAD

==> Dependencies
Build: gnu-sed ✔, pkg-config ✔
Required: arpack ✔, epstool ✔, fftw ✔, fig2dev ✔, fltk ✔, fontconfig ✔,
freetype ✔, gcc ✔, ghostscript ✔, gl2ps ✔, glpk ✔, gnuplot ✘, graphicsmagick
✔, hdf5 ✔, libsndfile ✔, libtool ✔, pcre ✔, portaudio ✔, pstoedit ✔, qhull
✔, qrupdate ✔, readline ✔, suite-sparse ✔, sundials ✔, texinfo ✔, veclibfort

Optional: qt ✔
==> Requirements
Build: java >= 1.6 ✔
==> Options
--with-qt
        Build with qt support
--HEAD
        Install HEAD version


In parallel package 3.1.3, I see the following seg fault:

octave:20>out=pararrayfun(nproc,@(jj)
par_test2(4097),1:4,"uniformoutput",false);
parcellfun: 0/4 jobs donefatal: caught signal Segmentation fault: 11 --
stopping myself...
fatal: caught signal Segmentation fault: 11 -- stopping myself...
fatal: caught signal Segmentation fault: 11 -- stopping myself...
parcellfun: 0/4 jobs donefatal: caught signal Segmentation fault: 11 --
stopping myself...
warning: parcellfun: premature exit due to closed pipe
warning: called from
    parcellfun at line 350 column 11
    pararrayfun at line 85 column 26

warning: broken pipe
warning: broken pipe
warning: broken pipe
warning: broken pipe

----------------
function err=par_test2(in1)
%
%    Test this using pararrayfun(nproc,@(jj)
par_test2(in1),1:4,"uniformoutput",false);
a=randn(in1,2);
b=randn(2,1);
r1=a(1:in1,1)*b(1)+a(1:in1,2)*b(2);
%  does not work for in1 =4097, works for in1=4096
  r2=a*b;
err=norm(r1-r2);
endfunction
---
It works by itself:

octave:21>par_test2(4097)
ans = 0
----
It works with dimension of 4096
octave:23> out=pararrayfun(nproc,@(jj)
par_test2(4096),1:4,"uniformoutput",false);
parcellfun: 4/4 jobs done

The dimension limit for seg faults is platform dependent, higher for another
newer Mac.  It seems that this problem is unique to matrix multiplication,
though I have not tested it sufficiently.  



Any clues?  

I see [bug #49532]  but no resolution.  

I also tested the it on Amazon AWS c5.2xlarge instance running ubuntu 16.04 LTS, octave 4.2.2. using Mike Miller's ppa. It works fine on it, tested up to dimension 1e8.

Should I post this on github Homebrew  issues?
_____________

sshah  




--
Sent from: http://octave.1599824.n4.nabble.com/Octave-General-f1599825.html