I'm looking into using PPO implementations like OpenAi's SpinningUp and Baselines. However, I fear that these implementations require packages which are not available for Windows. So I'm wondering if in general Linux should be used for working with DRL algorithms. Also, I'm not planing on using OpenAI's gym environments. Environments, created with the ml-agents toolkit from Unity and its gym wrapper are going to be used.

What is your opinion on this? Should I rather work on Linux or Windows? And what do you think about alternatives such as: VM on Windows with Ubuntu or Subsystem on Windows with Ubuntu (WSL)?

  • 2
    $\begingroup$ If you're going to use Python, then most (if not all) your packages will be Python libraries. Note that Python is an interpreted language. So, in terms of Python libraries, they should be available for all main OSes (including Windows). However, it's possible that some Python libraries are actually wrappers around C (or other languages, like C++) libraries, like NumPy or TensorFlow. In those cases, you may need to first install the underlying dependencies for the underlying language/software. Which libraries exactly do you plan to use? $\endgroup$ – nbro Feb 19 '19 at 10:51
  • 1
    $\begingroup$ I think that in general it may not be easy to answer to your question. I would say that if you have some experience with programming (and, in particular, in the context of machine learning) in Windows, and you have not had many issues, then why should you switch (unless you have some sort of requirement)? Anyway, isn't this question better suited for softwareengineering.stackexchange.com? $\endgroup$ – nbro Feb 19 '19 at 10:55
  • $\begingroup$ Python itself is not really dramatic, but there are some peculiarities occasionally, which make me wonder about this context. To give a more concrete example. In the mentioned PPO implementations OpenMPI is used for threading, which does not seem to be available for Windows. $\endgroup$ – MarcoMeter Feb 19 '19 at 10:58
  • $\begingroup$ Python has its own threading library. OpenMPI is mainly for C or C++ (AFAIK). It's possible that those implementations are in C or C++ and what you saw was a Python wrapper around that implementations. $\endgroup$ – nbro Feb 19 '19 at 11:01

TLDR Use whatever environment you are most comfortable with.

Today the choice of operating system is of much less importance than few years ago. Generally speaking, you will have more application choices under Linux, however, some of these choices will be less than spectacular :-) Windows works better with some hardware. Hence, under Linux, it is a very good idea to check the forums before buying or installing.

I have played with OpenAI gym under Linux for some time and it worked as advertised.

Early versions of many important pieces of deep learning software get released for Linux only. For instance, PyTorch and Tensorflow were available for Linux at least one year before the release of Windows ports.


Not the answer you're looking for? Browse other questions tagged or ask your own question.