LINUX.ORG.RU

  1. гонка нитей
  2. цена распараллеливания превышает эффективность вычислений.
Silerus ★★★★
()
Ответ на: комментарий от anonymous

эффективность = ускорение/число потоков

brecon
() автор топика

Вангую cache invalidation из-за записи разными потоками в одну линию кеша, лол

anonymous
()

Например, больше времени тратится на пересылку данных между потоками, чем на вычисления. Хотя в твоем случае надо бы понять, как определяется «эффективность».

hotpil ★★★★
()
Ответ на: комментарий от hotpil

эффективность = ускорение/число потоков

brecon
() автор топика

необходимостью синхронизировать действия между параллельными процессами/тредами + реализация «атомарных» операций.

т.е. все что использует блокировки обычно снижает производительность.

«lock free» алгоритмы востребованы на многопоточных вычислениях т.к. повышают производительность.

vel ★★★★★
()

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

L29Ah
()

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

dave ★★★★★
()

На практике эффективность убывает при увеличении числа процессоров. Чем это объяснить?

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

peregrine ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.