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>'import' 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"><<a href=3D"mailto:[email protected]" target=3D"_blank">mailingl= [email protected]</a>></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'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> <AsyncMapResult: f><br> Traceback (most recent call last):<br> =C2=A0 File "iparallel.py", line 22, in <module><br> =C2=A0 =C2=A0 print(res.get_dict())<br> =C2=A0 File "/usr/lib/python3.5/site-<wbr>packages/ipyparallel/client/= <wbr>asyncresult.py", line 256, in get_dict<br> =C2=A0 =C2=A0 results =3D self.get(timeout)<br> =C2=A0 File "/usr/lib/python3.5/site-<wbr>packages/ipyparallel/client/= <wbr>asyncresult.py", line 166, in get<br> =C2=A0 =C2=A0 raise self.exception()<br> =C2=A0 File "/usr/lib/python3.5/site-<wbr>packages/ipyparallel/client/= <wbr>asyncresult.py", line 225, in _resolve_result<br> =C2=A0 =C2=A0 results =3D error.collect_exceptions(<wbr>results, self._fnam= e)<br> =C2=A0 File "/usr/lib/python3.5/site-<wbr>packages/ipyparallel/error.p= y"<wbr>, line 233, in collect_exceptions<br> =C2=A0 =C2=A0 raise e<br> =C2=A0 File "/usr/lib/python3.5/site-<wbr>packages/ipyparallel/error.p= y"<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 'g'<br> [3:apply]: ImportError: No module named 'g'<br> [0:apply]: ImportError: No module named 'g'<br> [1:apply]: ImportError: No module named 'g'<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==--