Re: Getting started: Call another function in parallel

Thomas Kluyver <[email protected]> Mon, 12 Dec 2016 14:32:21 +0000
Newsgroups gmane.comp.python.ipython.user
Message-ID <CAOvn4qge5UrQ4zwHCnPT95AtEmK5sSyoOSE8X14=ag=mL1pCUQ@mail.gmail.com>
--===============5911692336616738385==
Content-Type: multipart/alternative; boundary=94eb2c058ce88c8d97054376fa67

--94eb2c058ce88c8d97054376fa67
Content-Type: text/plain; charset=UTF-8

Hi Florian,

'import' only works with modules. Have a look at the docs here for ideas on
how to get your function to the workers:

http://ipyparallel.readthedocs.io/en/latest/multiengine.html#moving-python-objects-around

Thomas

On 12 December 2016 at 08:33, Florian Lindner <[email protected]> wrote:

> Hello,
>
> I'm a bit lost on how to get started using the parallel ipython stuff:
>
> I have some code:
>
> from ipyparallel import Client
>
> c = Client()
> lview = c.load_balanced_view()
>
> def g(x):
>     return x + 4
>
> @lview.parallel()
> def f(x):
>     import g
>     return 5 + g(x)
>
> res = f.map(range(5))
>
> print(res)
> print(res.get_dict())
>
>
> but this prints:
>
> <AsyncMapResult: f>
> Traceback (most recent call last):
>   File "iparallel.py", line 22, in <module>
>     print(res.get_dict())
>   File "/usr/lib/python3.5/site-packages/ipyparallel/client/asyncresult.py",
> line 256, in get_dict
>     results = self.get(timeout)
>   File "/usr/lib/python3.5/site-packages/ipyparallel/client/asyncresult.py",
> line 166, in get
>     raise self.exception()
>   File "/usr/lib/python3.5/site-packages/ipyparallel/client/asyncresult.py",
> line 225, in _resolve_result
>     results = error.collect_exceptions(results, self._fname)
>   File "/usr/lib/python3.5/site-packages/ipyparallel/error.py", line 233,
> in collect_exceptions
>     raise e
>   File "/usr/lib/python3.5/site-packages/ipyparallel/error.py", line 231,
> in collect_exceptions
>     raise CompositeError(msg, elist)
> ipyparallel.error.CompositeError: one or more exceptions from call to
> method: f
> [2:apply]: ImportError: No module named 'g'
> [3:apply]: ImportError: No module named 'g'
> [0:apply]: ImportError: No module named 'g'
> [1:apply]: ImportError: No module named 'g'
> .... 1 more exceptions ...
>
>
> How can I access other functions in my module?
>
> Thanks,
> Florian
> _______________________________________________
> IPython-User mailing list
> [email protected]
> https://mail.scipy.org/mailman/listinfo/ipython-user
>

--94eb2c058ce88c8d97054376fa67
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div><div>Hi Florian,<br><br></div>&#39;import&#39; only w=
orks with modules. Have a look at the docs here for ideas on how to get you=
r function to the workers:<br><br><a href=3D"http://ipyparallel.readthedocs=
.io/en/latest/multiengine.html#moving-python-objects-around">http://ipypara=
llel.readthedocs.io/en/latest/multiengine.html#moving-python-objects-around=
</a><br><br></div>Thomas<br></div><div class=3D"gmail_extra"><br><div class=
=3D"gmail_quote">On 12 December 2016 at 08:33, Florian Lindner <span dir=3D=
"ltr">&lt;<a href=3D"mailto:[email protected]" target=3D"_blank">mailingl=
[email protected]</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<=
br>
<br>
I&#39;m a bit lost on how to get started using the parallel ipython stuff:<=
br>
<br>
I have some code:<br>
<br>
from ipyparallel import Client<br>
<br>
c =3D Client()<br>
lview =3D c.load_balanced_view()<br>
<br>
def g(x):<br>
=C2=A0 =C2=A0 return x + 4<br>
<br>
@lview.parallel()<br>
def f(x):<br>
=C2=A0 =C2=A0 import g<br>
=C2=A0 =C2=A0 return 5 + g(x)<br>
<br>
res =3D f.map(range(5))<br>
<br>
print(res)<br>
print(res.get_dict())<br>
<br>
<br>
but this prints:<br>
<br>
&lt;AsyncMapResult: f&gt;<br>
Traceback (most recent call last):<br>
=C2=A0 File &quot;iparallel.py&quot;, line 22, in &lt;module&gt;<br>
=C2=A0 =C2=A0 print(res.get_dict())<br>
=C2=A0 File &quot;/usr/lib/python3.5/site-<wbr>packages/ipyparallel/client/=
<wbr>asyncresult.py&quot;, line 256, in get_dict<br>
=C2=A0 =C2=A0 results =3D self.get(timeout)<br>
=C2=A0 File &quot;/usr/lib/python3.5/site-<wbr>packages/ipyparallel/client/=
<wbr>asyncresult.py&quot;, line 166, in get<br>
=C2=A0 =C2=A0 raise self.exception()<br>
=C2=A0 File &quot;/usr/lib/python3.5/site-<wbr>packages/ipyparallel/client/=
<wbr>asyncresult.py&quot;, line 225, in _resolve_result<br>
=C2=A0 =C2=A0 results =3D error.collect_exceptions(<wbr>results, self._fnam=
e)<br>
=C2=A0 File &quot;/usr/lib/python3.5/site-<wbr>packages/ipyparallel/error.p=
y&quot;<wbr>, line 233, in collect_exceptions<br>
=C2=A0 =C2=A0 raise e<br>
=C2=A0 File &quot;/usr/lib/python3.5/site-<wbr>packages/ipyparallel/error.p=
y&quot;<wbr>, line 231, in collect_exceptions<br>
=C2=A0 =C2=A0 raise CompositeError(msg, elist)<br>
ipyparallel.error.<wbr>CompositeError: one or more exceptions from call to =
method: f<br>
[2:apply]: ImportError: No module named &#39;g&#39;<br>
[3:apply]: ImportError: No module named &#39;g&#39;<br>
[0:apply]: ImportError: No module named &#39;g&#39;<br>
[1:apply]: ImportError: No module named &#39;g&#39;<br>
.... 1 more exceptions ...<br>
<br>
<br>
How can I access other functions in my module?<br>
<br>
Thanks,<br>
Florian<br>
______________________________<wbr>_________________<br>
IPython-User mailing list<br>
<a href=3D"mailto:[email protected]">[email protected]</a><br>
<a href=3D"https://mail.scipy.org/mailman/listinfo/ipython-user" rel=3D"nor=
eferrer" target=3D"_blank">https://mail.scipy.org/<wbr>mailman/listinfo/ipy=
thon-user</a><br>
</blockquote></div><br></div>

--94eb2c058ce88c8d97054376fa67--

--===============5911692336616738385==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
IPython-User mailing list
[email protected]
https://mail.scipy.org/mailman/listinfo/ipython-user

--===============5911692336616738385==--