programming languages / frameworks / tools

Dear Everyone.

I'm just starting my PhD, and have become an eager Mac user during the writing of my master thesis. I am curious as to what tools and languages people use for scientific computing?

As an example, I give my "information". I have experimented with:
Xcode, Eclipse and TextMate for code writing (like all rather well)
C, C++, Python, Java, Bash for programming - prefer Java for performance computing, python/bash for job control and data analysis
Slightly played with some UNIX libraries, like GNU linear programming kit, BLAS...
Slightly looked at some Mac-specific frameworks like Accelerate
Gnuplot for plotting - this is the winner for me
Matlab for plotting and data analysis, didn't like it so much

What do people use for performance computing? Data analysis? I think it would be interesting to see what people use, compare, and so on. I think it is useful to review one's tools every now and then, and consider trying out others. I am sure some of the tools I use are not the best choice - maybe so for others as well.

Do you have any philosophy as to open source vs use the best product available?

Looking forwards to interesting replies.
Paul.

My Tools

I am working on a PhD in computational chemistry/physics.
Here are many of the tools that I use almost daily.

LaTeX for writing long documents like papers for publication or long lecture notes.
Pages for writing shorter stuff.
Keynote for presentations.
Numbers or Excel for gradebooks.
I use iWork and NeoOffice equally.
LaTeXiT for inserting equations into any app. (A must have for any Mac user that is familiar with LaTeX)
Mathematica for data analysis and prototyping codes that will be ported to gfortran. (Student version available for $140 US)
Gimp/EazyDraw/NeoOffice for graphics.
Bash scripting for all sorts of things.
Many command line tools (vi, sed, awk, locate, etc.).

Hi, I use pretty extensively

Hi,
I use pretty extensively python (numpy and scipy) for data analysis and (almost) everything else.
We use a very nice data storage format: HDF5 - there is an excellent python module called pytables for it, its really great (also usable via C/Fortran).

For plotting I use Igor.
sometimes sed, bash etc are handy.
The editor I use is BBEdit or VIM.

Performance:
I once rewrote a fortran program in python/numpy and it was 2 times faster.
Bad written programs can be really slow, even in a highly efficient language (lapack was not used in this case).

I think what you mean with performance computing is parallel computing, I am not doing that.

I recommend reading hte thread "The ideal software bundle for scientists", i think they got there most of the stuff covered.

Performance computing

Well, high performance computing can be several things I would say. If you run simulations for a few days on your own desktop (which I have done many times), I would say it qualifies. Also, GPGPU programming should feel at home here (for an example, see http://fastra.ua.ac.be/en/index.html). And then, in the end, you also have parallel computing, meaning multi-core, multi-processor, or bigger systems.

Agree?

HPC and the Swiss Army Knife for Scientific Visualisation

I am developing code for computational fluid dynamics on parallel computers. We actually have a cluster with 256 Cores (128 Dual Xeon Server) and a second one containing 152 Cores (19 Dual Quad Cores). The code is written in C/C++ using the Message Passing Interface (MPI) for interprocess communication. We mostly visualize with paraview (open source product by kitware) -- the swiss army knife for scientific computing. There's a framework called VTK to build your own visualisation tool. Matlab is only used for some data analysis and to plot diagrams.
The bash is very good for automation. Java lacks performance (in my opinion). Why not use Cocoa and objective C instead?

For data visualization

For data visualization there seems to be a few good choices.

For plotting beyond Excel and Numbers see Igor
For 3D plotting of simulation results see Tecplot
For interactive post-processing and visualization of 3D simulation models see EnSight
Matlab is also good as a general framework

VTK is fine if you to start from scratch and write a tool to do something that these other tools can't already do for you. But its not for the average person, its a programming tool.

Re: programming languages / frameworks / tools

I use Mathematica almost exclusively, for computation, visualization, writing reports and papers, and creating user interfaces....

David Reiss
http://Scientificarts.com/worklife

Data visualization

I create a number of tools that fit here

For plotting beyond Excel and Numbers - DataGraph
For 2D/3D plotting and interactive post processing - DataTank
For graphing in your own Cocoa app - DataGraph Framework

David

RE:programming languages / frameworks / tools

Hi,

In addition to the tools discussed there is a very nice data exploration tool available from LLNL called Visit. It is aimed at exploring large 2,3 and 4-D data sets and has both graphing and manipulation tools build in. There are binaries available for Mac OS 10.4+ for both PPC and Intel (as well as Linux and even Windows). See https://wci.llnl.gov/codes/visit/ We use it on both our Macs and Linux boxes.

Take care

David

David Newman
Physics Department
UAF