Switching to Linux: A Windows developer’s view

A few weeks ago, I switched my development environment from Windows to Linux, on a project which was developed so far on Windows only. In this post, I want to describe the issues that brought me to this switch, a short overview how I did the actual port, and some observations on Linux for developers. This is the first post in a series of at least two, the second post will describe the tools I use on Linux right now.

Background

The project I’m working on is written in C++, with some Python tools mixed in. My original development environment was Visual Studio 2005 on Windows XP. This is already the first issue: Updating Visual Studio or Windows is not trivial, as both the OS upgrade as well as IDE updates require new licenses, and especially in companies new versions are not bought immediately.

The problems became apparent when I tried to multi-thread parts of the application. At the core, it’s doing a lot of number crunching, in small work blocks which can be processed independently. As I couldn’t use OpenMP due to dependency issues (a 3rd party library could not be linked when OpenMP was enabled), I was threading manually. Unfortunately, the application had to allocate some memory in each thread, and as it turned out, the scaling on XP was catastrophic. While I did get a speedup from 1->3 cores, it became slower from 3->4 – clearly, I was hitting some issues with either the scheduler or the memory subsystem, as my code didn’t have any I/O in it. Continued …

Related Posts

Linux is top OS on supercomputers Data compiled by top500 shows that Linux is the operating of choice on supercomputers. That's good news. The table (image reproduced below) does not g...
Mandriva Linux 2009 Released Mandriva, a worldwide Linux solutions provider, has announced the release of Mandriva Linux 2009. Mandriva Linux, formerly known as Mandrake Linux, w...
The State of Linux Techworld has published a lengthy interview with Jim Zemlin, the Executive Director of the Linux Foundation. It's a pretty comprehensive interview, to...
Forking Mandriva Linux: The birth of Mageia Mandriva, one of my favorite Linux distributions, has been forked, and the new distribution is named Mageia. With the well publicized mass exodus of d...
Nokia to Acquire Trolltech “Nokia and Trolltech ASA today announced that they have entered into an agreement that Nokia will make a public voluntary tender offer to acquire Trol...
Invasion of the Linux Desktop This story reports on a trend that's been observed in most of Africa, South America, and the rest of the developing world. Would you rather pay for a ...

We Recommend These Vendors

Launch an SSD VPS in Europe, USA, Asia & Australia on Vultr's KVM-based Cloud platform starting at $5:00/month (15 GB SSD, 768 MB of RAM).

Deploy an SSD Cloud server in 55 seconds on DigitalOcean. Built for developers and starting at $5:00/month (20 GB SSD, 512 MB of RAM).


Leave a Comment

Your email address will not be published. Required fields are marked *

*