«большие» и «обработка данных» охватывают здесь много вопросов, и трудно дать разумный ответ без дополнительной информации.
Если обработка данных "смущающе параллельна" - если она включает в себя выполнение множества и множества вычислений, которые абсолютно независимы друг от друга - тогда будет миллион вещей, которые будут работать, и это просто вопрос поиска чего-то, что соответствует ваш код и фон.
Если это не смущающе параллельно, но почти так - вычисления требуют большой кусок данных, а просто перебирают их в кучу чисел - их меньше, но вариантов все еще много.
Если вычисление более тесно связано, чем это - где вам нужно, чтобы процессоры работали в тандеме с большими порциями данных, то вы, вероятно, застряли в резервных системах - функциях OpenMP вашего компилятора, если он будет работать на одном машина (также есть TBB, но обычно для обработки чисел OpenMP быстрее и проще) или MPI, если ему нужно несколько машин одновременно. Вы упомянули C ++; У Boost очень хороший MPI-слой.
Но размышление о том, какую библиотеку использовать для распараллеливания, вероятно, сначала думает о неправильном конце проблемы. Во многих случаях вам не обязательно иметь дело с этими слоями напрямую. Если для вычисления числа используется много линейной алгебры (например), то PLASMA (для многоядерных машин - http://icl.cs.utk.edu/plasma/) или PetSC, который поддерживает машины с распределенной памятью, например, несколько компьютеров (http://www.mcs.anl.gov/petsc/petsc-as/) ) - это хороший выбор, который может полностью скрыть от вас реальные детали параллельной реализации. У других видов техники есть и другие библиотеки. Вероятно, лучше подумать о том, какой анализ вам нужно сделать, и посмотреть, есть ли в существующих наборах инструментов необходимая парализация. Только после того, как вы определились с ответом «нет», вы начнете беспокоиться о том, как сделать свой собственный бросок.