Есть 4 вида параллельности:
1) нити (threads). Хотя это многозадачность, т.к. куски нитей прогоняются последовательно через процессор.
2) несколько ядер (допустим, 4). Бывает, что компилятор вам помогает и сам пропускает нити через разные ядра процессора.
3) сетевые машины: прогоняйте куски программы (куски данных) на нескольких компьютерах одновременно.
4) графический процессор (несколько сотен ядер). Тут узкое место - обмен данными между CPU и GPU.
Вот и читайте про эти возможности.
Плюс у каждого языка программирования есть свои методы параллельных расчётов.