Как разрабатывать программы / программы для использования мультипроцессоров - PullRequest
1 голос
/ 05 октября 2010

Чтобы воспользоваться преимуществами мультипроцессоров 1. Вам нужно выбрать какой-либо конкретный язык программирования 2. Существуют ли какие-либо шаблоны проектирования 3. Можете ли вы запланировать каждый поток на любом доступном другом процессоре

Я пытаюсь понять, хорошопрактикуется в написании превосходных программ, которые в полной мере используют преимущества доступных процессоров.

Ответы [ 3 ]

1 голос
/ 05 октября 2010

Правильный параллельный код написан сложно .

Я не знаю ни одного учебника, но я нашел серию Херба Саттера о Эффективном параллелизме довольно хорошей.

0 голосов
/ 05 октября 2010

Если только проблема, которую вам нужно решить, не требует специальных вычислений, я бы выбрал язык программирования, наиболее подходящий для решения моей реальной проблемы.

Распределение потоков между процессорами обычно лучше оставить операционной системе. Вы можете влиять на это распределение, используя различные приоритеты потоков.

Если вы используете язык со средой выполнения (java, .net), то у вас есть дополнительный слой потоков в среде выполнения по сравнению с собственными потоками.

Чтобы в полной мере использовать потенциал многопроцессорных систем, проблема, с которой вы сталкиваетесь, должна представлять собой проблему, связанную с многопроцессорностью. В форме многопоточного ввода данных нет реального применения.

НТН

Mario

0 голосов
/ 05 октября 2010
  1. Каждый язык имеет различную поддержку многопоточности.
  2. Да, вы можете прочитать о них в учебниках по операционным системам.
  3. Это зависит от вашего языка программирования и ваших инструментов.Зачастую проще оставить это решение на усмотрение операционной системы.

Если вы только начинаете с многопоточности, возможно, вы захотите взглянуть на некоторые книги: https://stackoverflow.com/search?q=multithreading+book.

...