Параллельное программирование на Quad-Core и VM? - PullRequest
2 голосов
/ 19 февраля 2010

Я думаю о том, чтобы постепенно начать параллельное программирование.Я видел, как люди используют кластеры с установленным OpenMPI для изучения этого материала.У меня нет доступа к кластеру, но у меня есть четырехъядерный компьютер.Смогу ли я получить какую-либо выгоду здесь?Кроме того, если я запускаю Linux внутри виртуальной машины, имеет ли смысл использовать OpenMPI внутри виртуальной машины?

1 Ответ

5 голосов
/ 19 февраля 2010

Если ваша цель - учиться, вам вообще не нужен кластер. Ваш четырехъядерный (или любой двухъядерный или даже одноядерный) компьютер будет более чем достаточно. Суть в том, чтобы научиться думать «параллельно» и проектировать свое приложение.

Некоторые важные моменты:

  • Использование различных парадигм параллелизма, таких как «разделяй и властвуй», «мастер-работник», SPMD,… в зависимости от данных и задач, от того, что вы хотите сделать.
  • Выбор различных гранулярностей деления данных для проверки соотношения вычислений / связи (в случае передачи сообщений) или для проверки объема последовательного выполнения из-за взаимного исключения из областей памяти.

Имея четырехъядерный процессор, вы можете измерить ускорение вашего подхода (выигрыш в производительности, достигнутый благодаря распараллеливанию), который обычно определяется делением между временем непараллельного выполнения и временем параллельного выполнения. Чем ближе вы к 4 (четыре ядра означают 1/4 времени выполнения), тем лучше будет ваша стратегия распараллеливания (когда вы сможете равномерно распределить работу и данные).

...