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

Solothurn Debian GNU/Linux Desktop Migration Update Solothurn, a swiss canton located about 35km north of Bern, plans to conclude its ongoing migration of 2000 desktops to Debian GNU/Linux. The migratio...
10 ways to go green with Linux Editor's note: Most people write about Linux as if it's the only free and open source operating system in use. They seem to forget, or are ignorant, o...
EC’s IDABC Unit to Publish Debian-based GNU/Linux The European Commission's IDABC unit responsible for the Open Source Software Observatory and Repository (OSOR) will publish it's own derivative of ...
Built to last It has now been almost exactly five years since kernel development community tentatively started using the git source code management system with the ...
Elastix 1.4 Beta Released Elastix 1.4 Beta has been released and made available for download. Elastix is a CentOS-based, IP-PBX "appliance software that integrates the best too...
Interview with Matthias Ettrich: The Founder of KDE KDE is the one of the leading desktop environments. It is available on Linux as well as other operating systems. In this article, we feature excerpts ...

We Recommend These Vendors and Free Offers

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).

Want to become an expert ethical hacker and penetration tester? Request your free video training course of Online Penetration Testing and Ethical Hacking

Whether you're new to Linux or are a Linux guru, you can learn a lot more about the Linux kernel by requesting your free ebook of Linux Kernel In A Nutshell.


Leave a Comment

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

*