You have probably been taught to use linked lists when you do not know the size of your data set, but for algorithms where you actually go through all of the data, this is almost always a bat design choice. Even so more for parallel and concurrent algorithms. Have a look at this: http://www.codeproject.com/Articles/340797/Number-crunching-Why-you-should-never-ever-EVER-us
In particular, follow the link to the talk by Bjarne Stroustrup and enjoy!