panotnap писал(а):
Допустим, я разбиваю код долгой функции на число частей, равное кол-ву ядер и собираюсь каждому из них назначить её выполнение.
Это зависит от используемой вами ОС. Именно ОС разносит логические единицы исполнения (процессы, потоки, нити -- в зависимости от архитектуры ОС) по ядрам процессора при помощи своих ядерных механизмов. Если вы разрабатываете свое ядро, механизм разнесения по ядрам придется реализовывать самостоятельно. Точнее не подскажу, не спец по ядрам.
panotnap писал(а):
2) Распараллелит ли один процессор подобный код (по скорости выполнения) скажем, команды в две вместо 6?:
В современных процессорах x86 есть несколько уровней параллелизма, не нужно путать их. По ядрам разносятся большие блоки кода, объединенные в логические единицы исполнения ОС, как писал выше.
В пределах одного процессорного ядра работает параллелизм на уровне микроархитектуры. Микроархитектура различается от процессора к процессору, по конкретной модели нужно читать ее официальную документацию -- от Intel или AMD. Если такие подробности не нужны, то у микроархитектур одного поколения наверняка есть какие-то общие принципы, и они могут быть где-то описаны. Я пока не дошел до кодогенератора, поэтому глубоко не влезал.
Товарищ
pavia так сбивчиво отвечает, что приходится влезать со своими дилетантскими ответами, чтобы совсем не запутать вопрошающего.