#6943: Make @parallel more robust.
----------------------+-----------------------------------------------------
Reporter: boothby | Owner: boothby
Type: defect | Status: new
Priority: critical | Milestone:
Component: misc | Keywords:
Reviewer: | Author:
Merged: |
----------------------+-----------------------------------------------------
Description changed by boothby:
Old description:
> The following should work:
>
> {{{
> @parallel
> @cached_function
> def foo(x):
> return x+1
> }}}
>
> however, when we attempt to evaluate foo...
>
> {{{
> sage: for k in foo(range(200)):
> ... print k
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File
> "/home/boothby/.sage/sage_notebook/worksheets/admin/69/code/995.py", line
> 7, in <module>
> for k in foo(range(_sage_const_200 )):\u000a print k
> File "", line 1, in <module>
>
> File "/scratch/boothby/sage/local/lib/python2.6/site-
> packages/sage/parallel/multiprocessing.py", line 63, in parallel_iter
> fp = pickle_function(f)
> File "fpickle.pyx", line 60, in sage.misc.fpickle.pickle_function
> (sage/misc/fpickle.c:746)
> AttributeError: 'CachedFunction' object has no attribute 'func_code'
> }}}
>
> If any callable object is picklable, it should work with the parallel
> decorator.
New description:
The following should work:
{{{
@parallel
@cached_function
def foo(x):
return x+1
}}}
however, when we attempt to evaluate foo...
{{{
sage: for k in foo(range(200)):
... print k
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File
"/home/boothby/.sage/sage_notebook/worksheets/admin/69/code/995.py", line
7, in <module>
for k in foo(range(_sage_const_200 )):\u000a print k
File "", line 1, in <module>
File "/scratch/boothby/sage/local/lib/python2.6/site-
packages/sage/parallel/multiprocessing.py", line 63, in parallel_iter
fp = pickle_function(f)
File "fpickle.pyx", line 60, in sage.misc.fpickle.pickle_function
(sage/misc/fpickle.c:746)
AttributeError: 'CachedFunction' object has no attribute 'func_code'
}}}
If any callable object is picklable, it should work with the parallel
decorator.
Also, it should be possible to time individual processes out after a given
amount of time.
--
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/6943#comment:1>
Sage <http://sagemath.org/>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en
-~----------~----~----~----~------~----~------~--~---