views:

90

answers:

3

I'm going to be using a subset of C++ (working within some of the ideas in Elements of Programming), but I haven't used C++ in years. I'm going to be writing a highly parallel algorithm on a 100+ nodes system with shared memory. The nodes are Mac OS X, but I have access to *nix and windows machines, too.

Do people have suggestions for editors, debuggers, etc.? (I'm assuming I should use gcc as a compiler?) I'm not sure what sort of environment to put myself in to do this. What's the standard industry environment? Even better, what's the best FOSS conglomeration? (I'm a graduate student.) I'll be calling STL and possibly some third party code, too.

Suggestions from here? http://stackoverflow.com/questions/89924/c-editor-compiler-debugger-on-windows-lighter-than-visual-studio

+3  A: 

On Mac you could use XCode, it's free.

But if you want a cross-platform IDE (Windows/Linux/Mac OS X) take a look at Eclipse and KDevelop.

GCC (C/C++) is available on all these systems.

karlphillip
Hmm, so maybe XCode on my workstation with MacFuse to map to the cluster?
MarkL4
Probably! But check this out: *The current MacFUSE source tree has only been compiled with Xcode 3.x (Leopard) and Xcode 2.4.x/2.5.x (Tiger)* http://code.google.com/p/macfuse/wiki/HOWTO
karlphillip
+1  A: 

Netbeans is always nice as a cross-platform IDE.

Kyle
A: 

Ordinarily I'd recommend either TotalView or DDT for debugging parallel programs. However, so far as I know neither is implemented for Mac OS X. Mac fan though I am this is a compelling reason for running Linux on a cluster or supercomputer.

If you had Linux on your cluster I'd also recommend a parallel profiler such as Intel's ThreadAnalyzer or Allinea's OPT (same link as above). Again, for serious parallel development this sort of tool is a must. Fiddling around trying to analyse parallel performance or figure out reasons for poor scaling with tools designed for serial programs is a waste of time.

I'm puzzled why a graduate student feels constrained to FOSS. The universities I know best (only a couple I admit) all have all sorts of commercial compilers and other tools. I'm not a big fan of GCC. Even less so am I a fan of having only one compiler; the more compilers you have access to the more you will learn about what they can do. In my experience the compilers which generate the fastest code are generally not the ones which produce the best diagnostics. I like to have both at different stages of development.

As for IDE -- I use Emacs. Nuff said on that.

High Performance Mark