Парадокс параллелизма
Jan. 10th, 2010 07:06 amЗакон Амдаля знают и понимают практически все (даже те, кто не знает, что это называется законом Амдаля :-). На нем основано простое логическое и понятное всем правило - N-процессорная система не будет в N раз быстрее однопроцессорной. (будет быстрее, но не в N раз, а поменьше. Конкретная величина уже сильно зависит характера частных задач, но принцип сохраняется).
А сегодня узнал про парадокс параллелизма - исключение из сферически-конского правила Амдаля, которое порой случается на практике. У компьютера есть несколько видов памяти с разными емкостями и скоростями: каждая следующая - бОльшего объема и более медленная:
- кэш процессора
- оперативная память
- дисковая память
Предположим, что у нас есть хорошо распараллеливаемая задача, достаточно большая, и много (N будет достаточно) узлов для выполнения вычислений. Время выполнения этой задачи на N узлах может быть в >N раз быстрее, за счет того, что задача объемная, и в "быстрой" памяти она не уместится, значит один процессор постоянно будет подгружать данные из медленной памяти, а в случае расспараллеливания - каждый процессор может свой участок работы обрабатывать в быстрой памяти.
А сегодня узнал про парадокс параллелизма - исключение из сферически-конского правила Амдаля, которое порой случается на практике. У компьютера есть несколько видов памяти с разными емкостями и скоростями: каждая следующая - бОльшего объема и более медленная:
- кэш процессора
- оперативная память
- дисковая память
Предположим, что у нас есть хорошо распараллеливаемая задача, достаточно большая, и много (N будет достаточно) узлов для выполнения вычислений. Время выполнения этой задачи на N узлах может быть в >N раз быстрее, за счет того, что задача объемная, и в "быстрой" памяти она не уместится, значит один процессор постоянно будет подгружать данные из медленной памяти, а в случае расспараллеливания - каждый процессор может свой участок работы обрабатывать в быстрой памяти.