Happy New Year! Forget all that stuff about the Mayan Calendar. Be Cool!

Latest Reviews & Tutorials

  • GhostBSD 2.5 review
  • How to install Takeoff Launcher on Fedora 16 KDE
  • Install Quick Access on Linux Mint 12 KDE or any KDE installation
  • How to install Linux Mint 12 KDE on a btrfs file system
  • Manual disk partitioning guide for Linux Mint 12 KDE
  • How to compile and install Takeoff Launcher on Linux Mint 12 KDE
  • 3 must-have extensions for Fedora 16 and other GNOME 3 installations
  • How to install Razor-qt on Linux Mint 12 KDE
  • How to enable desktop slideshow on Linux Mint 12 KDE
  • KahelOS 111111 review
  • How to install Cinnamon in Ubuntu 11.10
  • How to customize Cinnamon on Fedora 16 and Linux Mint 12
  • How to install Cinnamon on Fedora 16
  • What does Cinnamon bring to the desktop?
  • How to access Microsoft Windows files and folders from Linux
  • How to dual-boot Pear OS Panther 3 and Windows 7
  • How to dual-boot Chakra Linux Edn and Windows 7, part 1
  • Linpus Lite Desktop 1.6 review
  • Chakra GNU/Linux Edn 2011.12 review
  • How to customize Pear OS Linux Panther 3

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 …

0saves
To have articles like this delivered automatically to your Feed Reader or Inbox, subscribe via RSS or email. For simple comments, use the commenting system, but for more involved assistance, please use the Question & Answer section.

Posts From The Same Category:




Questions & Answers Hola! Looking for an answer to a question but did not find it? Then surf on over to the Questions & Answers section. It's a brand new addition to our site, and we are waiting just to answer your question(s).

Leave a Reply

Trackbacks

Read previous post:
How to configure Firestarter firewall on Zenwalk 6.2
What Microsoft Doesn’t Get – And What I Hope You Do
The Free Software Definition
Close