В чем разница между параллельным и многоядерным программированием? - PullRequest
2 голосов
/ 23 ноября 2010

Я думаю, что тема говорит обо всем.В чем разница, если есть, между параллельным и многоядерным программированием?Спасибо.

Ответы [ 3 ]

5 голосов
/ 23 ноября 2010

Mutli-core - это разновидность параллельного программирования. В частности, это своего рода установка MIMD , где блоки обработки не распределяются, а разделяют общую область памяти и даже могут при необходимости делиться данными, такими как установка MISD. Я полагаю, что это даже не связано с многопроцессорностью, поскольку многоядерные установки могут совместно использовать некоторый уровень кэшей и, следовательно, взаимодействовать более эффективно, чем процессоры на разных ядрах.

Общее параллельное программирование также включает в себя системы SIMD (например, ваш графический процессор) и распределенные системы.

1 голос
/ 23 ноября 2010

Разница не в подходе, просто в оборудовании, на котором работает программное обеспечение.Параллельное программирование создает проблему и разделяет рабочую нагрузку на более мелкие части, которые могут обрабатываться параллельно (задачи типа «Разделяй и властвуй» и т. Д.) Или функции, которые могут выполняться независимо друг от друга.Разместите это программное обеспечение на многоядерном оборудовании, и ОС будет оптимизирована для работы на разных ядрах.Это повышает производительность, поскольку каждый поток, который вы создаете для одновременной работы, теперь может выполняться без использования циклов ЦП на одном процессоре / ядре.

0 голосов
/ 23 ноября 2010

Многоядерные системы являются подмножеством параллельных систем.Разные системы будут иметь разные архитектуры памяти, каждая из которых будет иметь свои собственные задачи.Как одна система справляется с когерентностью кэша?Участвует ли NUMA и т. Д. И т. Д.

...