Hi guys,
So it looks like multicore and all its associated complications are here to stay. I am planning a software project that will definitely benefit from parallelism. The problem is that I have very little experience writing concurrent software. I studied it at University and understand the concepts and theory very well but have zero hands on useful experience building software to run on on multiple processors since school.
So my question is, what is the best way to get started with multiprocessor programming? I am familiar with mostly Linux development in C/C++ and Obj-C on Mac OS X with almost zero Windows experience. Also my planned software project will require FFT and probably floating point comparisons of a lot of data.
There is OpenCL, OpenMP, MPI, POSIX threads, etc... What technologies should I start with?
Here are a couple stack options I am considering but not sure if they will let me experiment in working towards my goal:
- Should I get Snow Leopard and try to get OpenCL Obj-C programs to run execution on the ATI X1600 GPU on my laptop? or
- Should I get a Playstation and try writing C code to throw across its six available Cell SPE cores? or
- Should I build out a Linux box with an Nvidia card and try working with CUDA?
Thanks in advance for your help.
-Talesh.