Каковы некоторые подсказки, что алгоритм должен параллелизированный?

Следующая строка:

this.setState = ({
  forecast:response,
  hasData:true
})

должно быть:

this.setState({
  forecast:response,
  hasData:true
})

Также следует рассмотреть возможность инициализации прогноза в состоянии пустым объектом.

5
задан Jason Baker 23 March 2009 в 03:53
поделиться

6 ответов

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

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

[Протест к этому, та архитектура, которая имеет очень большое нет. из 'ядер' (таких как машины соединения 64 000 ядер). Они хорошо подходят для вычислений, которые могут быть повреждены в относительно простые действия, присвоенные конкретной топологии (как прямоугольная сетка).]

5
ответ дан 18 December 2019 в 14:51
поделиться

Если можно разделить работу на независимые части затем, она может быть параллелизирована хорошо.

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

3
ответ дан 18 December 2019 в 14:51
поделиться

Во-первых, выезд данная статья покойного Jim Gray:

Экономика распределенных вычислений

На самом деле это разрешит некоторое недоразумение на основе того, что Вы записали в вопросе. Очевидно, если, чем менее поддающийся Ваш проблемный набор тому, чтобы быть дискретизированным, тем более трудно это будет.

2
ответ дан 18 December 2019 в 14:51
поделиться

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

Хорошая аналогия - то, что Вы могли работать, на котором Вы могли заставить набор друзей делать различные части сразу? Например, соединение мебели ИКЕА могло бы параллелизировать хорошо, если различные люди могут работать над различными разделами, но прокручивающиеся обои могли бы, не потому что необходимо сделать стены в последовательности.

2
ответ дан 18 December 2019 в 14:51
поделиться

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

1
ответ дан 18 December 2019 в 14:51
поделиться

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

0
ответ дан 18 December 2019 в 14:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: