Параллельная обработка данных в многоядерных процессорах происходит следующим образом:
- Планировщик операционной системы распределяет активные задачи (обычно это потоки) по доступному ядру. 2 Когда активных задач больше, чем доступных ядер, операционная система использует упреждение и выполняет задачи одновременно на каждом ядре. 2
- Физические ядра часто разделены на несколько аппаратных потоков (технология SMT, или гиперпоточность). 2 Каждый из них может выполнять разные задачи. 2
- Данные разбиваются на блоки, которые единообразным образом обрабатываются на разных узлах. 3 Например, как в архиваторе, использующем для упаковки несколько ядер процессора. 3
- Параллельные процессы, выполняемые на разных ядрах, должны синхронизироваться в определённые моменты времени. 4 Например, если приложение на одном из ядер должно использовать промежуточные данные, которые получаются приложением на другом ядре. 4
Для обмена информацией между ядрами используется усовершенствованный программируемый контроллер прерываний (APIC). 1 Он выполняет обмен, используя механизм межпроцессорного прерывания, который, в свою очередь, используется операционной системой для планирования и выполнения потоков. 1