bugGNU Octave - Bugs: bug #45831, [octave forge] (parallel)...

 
 

bug #45831: [octave forge] (parallel) parcellfun cannot handle objects as return value

Submitter:  None
Submitted:  Wed 26 Aug 2015 07:44:02 PM UTC
   
 
Category:  Octave Package Severity:  3 - Normal
Priority:  5 - Normal Item Group:  Incorrect Result
Status:  Postponed Assigned to:  None
Originator Name:  Originator Email:  -email is unavailable-
Open/Closed:  * Open Release:  * other
Operating System:  * Any Fixed Release:  None
Planned Release:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Thu 27 Aug 2015 06:14:19 PM UTC, comment #8: 

Ok, I see jwe's comments that you are referring to (whether to support load/save of classdef for all file types or standardize on one or more of Matlab's file formats).

Regardless, that's now bug #45833, adding a followup comment there. :)

Mike Miller <mtmiller>
Group Member
Thu 27 Aug 2015 05:42:05 PM UTC, comment #7: 

Yep, you're right.
Re-reading jwe's answer in the thread I referred to, it seems clear he wanted (at that time at least) to have classdef support only for v7.3 .mat-files.

Philip Nienhuis <philipnienhuis>
Group Member
Thu 27 Aug 2015 12:10:07 PM UTC, comment #6: 

Reported and added dependency of bug #45833 (support load/save for classdef objects).

Mike Miller <mtmiller>
Group Member
Thu 27 Aug 2015 12:06:57 PM UTC, comment #5: 

I think you are slightly mistaken. I think load/save can be implemented for classdef without any hdf5 support if necessary (e.g. load -binary and load -text for Octave's native formats). And the -v7.3 format has nothing to do with h5load / h5read, which is patch #8607 (although ideally there may be some common code refactoring that can be done).

Mike Miller <mtmiller>
Group Member
Thu 27 Aug 2015 11:52:56 AM UTC, comment #4: 

JWE does (should) know, see http://comments.gmane.org/gmane.comp.gnu.octave.maintainers/40177

[OT] I'm very much in favor of having classdef support added to load/save, but if I'm not mistaken this also requires hfd5 support (i.e, v7.3 mat files).
There is a patch for hdf5 itself (patch #8607), however I couldn't get it working properly at the time due to some include file issues on my box. Work on it by the author has stalled in the mean time as he got too little response. Maybe during the next OctConf this can be revived?

Philip Nienhuis <philipnienhuis>
Group Member
Thu 27 Aug 2015 08:06:36 AM UTC, comment #3: 

For transfering values between processes, `parcellfun' uses the save/load funtionality implemented in Octave separately for each type of value.

The classdef object type is still rather new, and save/load does not seem to be implemented for it as yet (Octave-4.0.0):


octave:1> a = cin(2)
a =

<object cin>

octave:2> save ("-binary", "test.dat", "a")
error: octave_base_value::save_binary(): wrong type argument 'object'
...


Trying to rewrite parcellfun to use threads, not processes, would be a major effort, and without a strong reason probably nobody will attempt it. So as long as the above `save ...' does not work, `parcellfun' has no chance to work with classdef objects.

So that's rather a bug in Octave than in the `parallel' package. But I'd guess JWE already knows about this issue.

Olaf

Olaf Till <i7tiol>
Group Member
Thu 27 Aug 2015 06:38:17 AM UTC, comment #2: 

the error messages are missing in the original submission for some reason:

parcellfun: 0/2 jobs done
warning: parcellfun: unhandled error in subprocess 2
warning: called from
    parcellfun at line 288 column 9
    tst.m at line 4 column 7
error: clone: invalid object
error: called from
    parcellfun at line 358 column 26
    tst.m at line 4 column 7
error: octave_base_value::load_binary(): wrong type argument 'object'
error: called from
    parcellfun at line 358 column 26
    tst.m at line 4 column 7
error: load: trouble reading binary file ''
error: called from
    parcellfun at line 358 column 26
    tst.m at line 4 column 7

warning: parcellfun: unhandled error in subprocess 1
warning: called from
    parcellfun at line 288 column 9
    tst.m at line 4 column 7
warning: broken pipe

A.R. Burgers <arb>
Wed 26 Aug 2015 09:12:28 PM UTC, comment #1: 

Adding package maintainer to CC.

Carnë Draug <carandraug>
Group Member
Wed 26 Aug 2015 07:44:02 PM UTC, original submission:  

attached example tst.m+cin.m shows execution of a function that returns an object with both cellfun and parcellfun. With cellfun that works, with parcellfun there is an error:


parcellfun: 0/2 jobs done
warning: parcellfun: unhandled error in subprocess 1
warning: called from
    parcellfun at line 288 column 9
    tst.m at line 4 column 7
error: clone: invalid object
error: called from
    parcellfun at line 358 column 26
    tst.m at line 4 column 7
error: octave_base_value::load_binary(): wrong type argument 'object'
+verbatim+

Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #34742:  cin.m added by None (113B - application/octet-stream)
file #34743:  tst.m added by None (172B - application/octet-stream)

 

Digest:
   bug dependencies.

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by jwe (Updated the item)
  • -email is unavailable- added by mtmiller (Posted a comment)
  • -email is unavailable- added by i7tiol (Posted a comment)
  • -email is unavailable- added by arb (Posted a comment)
  • -email is unavailable- added by carandraug (Olaf Till - maintainer of parallel package)
  • -email is unavailable- added by None (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only group members can vote.

     

    Follow 8 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2017-08-13 jwe Summaryparallel package: parcellfun cannot handle objects as return value [octave forge] (parallel) parcellfun cannot handle objects as return value
    2015-08-27 mtmiller Release4.0.0 other
        Dependencies- Depends on bugs #45833
    2015-08-27 mtmiller Item GroupSegfault, Bus Error, etc. Incorrect Result
        StatusNone Postponed
    2015-08-26 carandraug Carbon-Copy- Added -email is unavailable-
    2015-08-26 None Attached File- Added cin.m, #34742
        Attached File- Added tst.m, #34743

    Back to the top

    Powered by Savane 3.13-f8d8.
    Corresponding source code