I know using the add function should work fine if I want to simply add 2 arrays. What I want to know is if it does take advantage of multicore machines and executes the sums in parallel.
I would say it probably doesn't, but why does it matter? Why do you need to know?
No, but it might take advantage of e.g. SSE.
You could implement your own parallel code using a parallel FOR loop, but it will be slower. The cost of splitting the input and reassembling the results will most likely be much more expensive.