3 базовых вещи относительно параллельныз вычислений - "3 базовых вещи относительно параллельных вычислений, и они же - 3 основные ошибки, которые часто допускают программисты при реализации параллельных алгоритмов. Ошибки в том плане, что они могут серьёзно снижать производительность и приводить не к ожидаемой линейной масштабируемости, а к супер-линейной деградации производительности при увеличении количества процессоров/ядер."
- гранулярность элементов работы
- чрезмерное разделение данных
- локальность
Хамелеоны быстрые и очень быстрые - "Несколько дней назад я предложил свою реализацию задачи chameneos-redux для GCC C", "На момент сабмита моей реализации самая быстрая реализация была за Haskell'ем с результатом 4.59 секунд, следующая за ней — С++ с результатом 4.74 секунды. Так же можно отметить: самая быстрая реализация на Java – 7 сек.; Scala – 15 сек.; Erlang – 111 сек.; Ruby — 131 сек.; Python — 221 сек. ... Результат моей реализации — 0.72 секунды."
1. Оптимальное распределение потоков по ядрам.
2. Минимально необходимое количество максимально лёгких взаимодействий.
3. Эффективная реализация ожидания.
4. Устранение ложного разделения данных.
Словарь: thread affinity, false sharing, spin waiting
четверг, 1 октября 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий