Serializing functions

Matteo Landi landimatte at gmail.com
Thu Jun 17 09:23:35 EDT 2010


Some weeks ago, here on the mailing list I read about picloud[1], a
python library used for cloud-computing; I was impressed by its
simplicity, here is an example:

>>>import cloud
>>>def square(x):
...  return x * x
>>>cloud.call(square, 10)
>>>cloud.result()
100

So, I tried to figure out how to achieve the same result, i.e. define a
local generic function and send it somewhere for remote execution, and
the get the result back.
So I thought about serialization (pickle): I made a few tries and it
seemed to work.. but I was wrong, because I never tried to load pickled
data from another session different from the one used to pickle data
itself. If you try and pickle a function, it is not pickled as a whole,
indeed, once you unpickle it, it will raise an exception telling you
that the target function was not found in the current module.

So I'm here, with nothing in my hands; how would you implement this?

Thanks in advance.

[1] http://www.picloud.com/

-- 
Matteo Landi
http://www.matteolandi.net




More information about the Python-list mailing list