Coding on GPU for a scientific project - Need some help please

We all know or have heard how powerful GPUs are. I want to write a program for a scientific project and want to utilize cheap GPUs for "accelerated parallel processing". Now here's the hard part. I have NO idea where to start. I've been reading and watching several instructionals, but everything is SO general about various characteristics or families of architectures (eg. shared memory or not), very old, or about other parallel systems like OpenMP or MPI which is not what I am after.

My question is: Let's say I want to calculate a+b. HOW do I write a program to execute on my, say, R9 290x? Is there assembly language for the GCN "architecture"? Please help

I am not too informed on the subject, but this seems like the place to start. Using assembly language for this stuff would be a bit of a pain in the ass, I'm guessing.

http://developer.amd.com/wordpress/media/2013/07/AMD_Accelerated_Parallel_Processing_OpenCL_Programming_Guide-rev-2.7.pdf

No you do not have to go to assembly coding.

If you want to run computing on an AMD GPU the goto framework is OpenCL.

For Nvidia cards you have the choice of coding in Cuda:

Since you are doing scientific programming I expect you have some kind of experience with Matlab.

Well Matlab provides high level libraries both for parallel processing on mult-ciore CPUs and for Nvidia cards thought Cuda. The functions are integrated into Matlab code and its much easier than to code on raw Cuda or OpenCL. Probaly this is the best place to start:

http://nl.mathworks.com/products/parallel-computing/

This is a matlab example for GPU computing with the Matlab libraries:

http://nl.mathworks.com/help/distcomp/examples/illustrating-three-approaches-to-gpu-computing-the-mandelbrot-set.html

BTW OpenMP and MPI is exactly what you would need if you wanted to do parallel processing on your multi-core CPU