astooke / Synkhronos

Extension to Theano for multi-GPU data parallelism
MIT License
20 stars 5 forks source link

Python2.7 compatibility - easy or not? #1

Open mharradon opened 7 years ago

mharradon commented 7 years ago

I think 2.7 support is pretty popular among ML types who don't really benefit much from the new features, since doing package management over again is annoying and most of the work happens through third-party (scipy/numpy/theano) apis anyway.

Is there any fancy python3 in the codebase that would be hard to backport, or is it mostly minor syntactic stuff? I might take a crack at it if it's the latter.

I'm upgrading my code to python3 now to try out synkhronos now, at any rate. It's really exactly what I had been looking for, and right now this sort of interface is one of the biggest advantages TF has over theano right now.

mharradon commented 7 years ago

Also it looks like it's specifically python3.6 or later?

astooke commented 7 years ago

Thanks for your interest.

I think it's mostly syntactic stuff, like print functions and iterating through dictionaries...2.7 support is certainly on the to-do list now that the design has mostly stabilized (will also note that the docs are way out of date at this point, also on the to-do list). If you do try to backport, please let me know if you run into anything difficult.

If I've specified 3.6, that might just reflect the version I was running in at the time, and haven't necessarily tried any others.

Out of all the versioning, the only thing certain is that Windows won't work, on account of posix_ipc.

astooke commented 7 years ago

Actually I have remembered now that Python 2 Multiprocessing does not have a Barrier. Can certainly be made using some semaphores, but anyway it's enough that 2.7 is not a priority.