Параллельная обработка относится только к программе, выполняющей более 1 части одновременно, обычно с различными частями, связанными каким-либо образом. Это может быть несколько ядер, несколько потоков в одном ядре (что на самом деле имитирует параллельную обработку), несколько процессоров или даже несколько компьютеров.
Многоядерная обработка обычно является подмножеством параллельной обработки.
Многоядерная обработка означает код, работающий над несколькими «ядрами» одного чипа ЦП . Ядро как маленький процессор внутри процессора. Таким образом, заставить код работать для многоядерной обработки почти всегда будет говорить об аспекте распараллеливания (хотя он также будет включать в себя удаление любых специфических для ядра допущений, которых у вас обычно не должно быть в любом случае).
Что касается разработки алгоритма, то, если он верен с точки зрения параллельной обработки, он будет правильным многоядерным.
Однако, если вам нужно оптимизировать код, чтобы он работал как можно быстрее «параллельно», то различия между многоядерными процессорами, процессорами с несколькими процессорами, с несколькими компьютерами или векторизацией приведут большая разница.