<div dir="ltr">Hi,<div style>I&#39;m having an issue trying to execute a function in parallel which references a class object.  Here&#39;s a minimal snippet:</div><div style><br></div><div style>#------------------------------------------------</div>
<div style><div>from IPython.parallel import Client</div><div>client = Client()</div><div>lbv = client.load_balanced_view()</div><div><br></div><div># the real model object is much more involved...</div><div>class MyModel(object):</div>
<div>    def maximize(self, r):</div><div>        return max(r, 4)</div><div><br></div><div>def evaluate(r, model):</div><div>    return model.maximize(r)</div><div><br></div><div>model = MyModel()</div><div>print lbv.apply(evaluate, 2, model).get()</div>
<div>#-----------------------------------------------</div><div><br></div><div style>when I run this, I get the following error:</div><div style><br></div><div style>IPython.parallel.error.RemoteError: AttributeError(&#39;DummyMod&#39; object has no attribute &#39;MyModel&#39;)<br>
</div><div style><br></div><div style>I&#39;ve found that I can get around this by moving the definition of MyModel to a separate .py file, and importing it from there rather than defining it in-place.  Is this generally the case in IPython parallel that objects defined within the script cannot be used in parallel execution?  Is there a way to get around this without using separate files?</div>
<div style><br></div><div style>Thanks,</div><div style>   Jake</div><div><br></div><div><br></div></div><div style><br></div><div style><br></div></div>