I got a Nvidia Quadro 2000M, but it doesn't really matter in my case, because the data I get from the graphic card is soooooo much... I can't save it on the HD that fast

(Math->Chaos theory->parameter space)
The thing at matlab/octave is, that the written code is interpreted. If you rewrite your code in a c-program, it already will be faster (so maybe your code is 16times faster because it's just c-code running on the gpu, using ONE processing element).
How did you code the parallelizable part?
I first allocate a opencl-memory and give it to the kernel.
In my kernelfile I calculate the index of each processing element (if you work in 2D, then just skip the last line):
Code
index =
get_global_id(0) +
get_global_id(1) * get_global_size(0) +
get_global_id(2) * get_global_size(1) * get_global_size(0);
And I use the index to store all results in the memory:
Code
memory[index] = calculation(index);
Where the calculation() can be anything... in my case that are a lot of lines

as I started, I used this to check if it works:
Code
memory[index] = index;
what do you want to parallelize?