Есть хорошая книга "Numerical recipes in C++". Там объяснены многие методы и есть код. Следующий шаг это изучить параллельное программирование. Например по книге "C++ concurrency in action" Вилльямса.
Если не хочется абстрактно читать, то можно начать сразу с проекта. Например, небольшой проект на параллельное программирование: написать как можно более быстрое умножение двух матриц. Сначала просто по определению. Потом заметить что проход по столбцам медленнее чем по строкам (в C++). Потом учесть такие вещи как false cache sharing, cache miss и.т.д.
Или как численно взять производную. По определению можно, но как выбрать h в знаменателе чтобы не было численных проблем?
Спасибо за ответ. Я уж думал, что никто не поможет)