Как реализованы параллельные вычисления в многоядерных процессорах?
=====================================================================

 Ребята, подскажите непрограммисту, правильно ли я все понимаю? Классическая архитектура фон Неймана - это строго последовательные вычисления: одна операция в один конкретный момент времени. Но многоядерный процессор позволяет отойти от последовательности и реализовать параллелизм, одновременно выполняя количество операций, равное количеству ядер. То есть одно ядро - одна операция в конкретный момент времени. 

[Многоядерность](https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80) сама по себе никак не связана с вычислительным конвейером. На каждом ядре свой конвейер и его работа не зависит от других ядер.  
  

Суть [многоядерности](https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D1%8F%D0%B4%D0%B5%D1%80%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D1%86%D0%B5%D1%81%D1%81%D0%BE%D1%80) в том, что каждое ядро выполняет свой [вычислительный поток](https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D1%82%D0%BE%D0%BA_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F). На N-ядерном процессоре в каждый момент времени параллельно выполняются N потоков.  
  

Поэтому количество ядер процессора может влиять на производительность только [многопоточных](https://ru.wikipedia.org/wiki/%D0%9C%D0%BD%D0%BE%D0%B3%D0%BE%D0%BF%D0%BE%D1%82%D0%BE%D1%87%D0%BD%D0%BE%D1%81%D1%82%D1%8C) программ. Любая программа, в которой не предусмотрена многопоточность и распараллеливание нагрузки между потоками**, не получит никакого преимущества в скорсти** при апгрейде одноядерного процессора до 16-ядерного (при той же тактовой частоте). 

 На самом деле похоже на правду, с поправкой на наличие [вычислительного конвейера](https://ru.wikipedia.org/wiki/%D0%92%D1%8B%D1%87%D0%B8%D1%81%D0%BB%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D0%B9%D0%B5%D1%80), из-за которого за такт выполняется больше одной операции. Вот обзорная статья на эту тему: [Путешествие через вычислительный конвейер процессора](http://habrahabr.ru/post/182002/)