Как правильно применить аргумент Амдала:
Д-р.Джин AMDAHL сформулировал закон довольно давно, когда улучшения организации потоков обработки были в центре внимания для вычислительных центров мэйнфреймов, для промышленного производства, для общей оптимизации рабочих процессов.Этот закон все еще действует и имеет свое слово:
S ">
Ориентированная на процесс точка зрения в простоте осталась немного невидимойтрадиционной формулы, но никогда не должно быть.То же самое относится к «инвентарю» (в некоторой степени специализированных, «продуктовых») ресурсов.Если вас интересует более подробная информация, можно перечитать параллелизм-амдал подробности из истории № 3 в https://stackoverflow.com/revisions/18374629/3
Оба параграфа, с переформулированнойЗакон Амдала в главе Критика содержит все подробности об обосновании, почему мы не можем просто поместить числа в формулу и ожидать действительный (то есть разумный и достижимый) результат.
Итак,Давайте начнем с абстракции ПРОЦЕССА:
Один из них, идентифицированный и названный выше, - это процесс отправки SMS-сообщения.Это может занять ~ 10 [с].Этот процесс независим (ура, без координации, без барьеров, без семафоров, без блокировок, без межпроцессного взаимодействия), но неделим по длине, поэтому для краткости мы можем назвать его atomic-process поскольку оно не может быть выполнено, но полностью "атомарно" -различимо, но имеет некоторую задержку (длительность), прежде чем может быть достигнуто состояние завершения процесса.
Каждый из процессов будет работать только тогда и только тогда, когда , когда он был одновременно сопоставлен (выделен) и запланирован (активирован / выполнен) с некоторым ресурсом обработки.
Итак, следующие РЕСУРСЫ:
Как тамуже определено в оригинальном посте, есть 4-СМС-модемы.Это специфичные для процесса ресурсы, которые несут ответственность за перенос «атомарного» -процесса (задачи) независимо друг от друга (что является простым случаем, а не автоматически расширяемым до бесконечности, так как сеть оператора начнет блокировать, как толькосеть радиодоступа (последняя миля GSM), POP-обработка (узел BTS) и / или сеть оператора (восходящие линии от BTS к MSC) начнут достигать потолков доступных мощностей своих соответствующих ресурсов - все сложные системы простоимеют сложные иерархии распределения ресурсов / мощностей / рабочих нагрузок / потолков, связанных с производительностью, где каждый может начать блокировать некоторые из наших «атомарных» задержек (длительностей) интересующего процесса и «планируемости» (отображение процесса на «наш»«идентифицированная единица специфичного для процесса ресурса обработки ... то есть GSM-модем имеет некоторое количество фоновой логики, связанной с координацией GSM-сети, поэтому его поведение не изолировано от сложности локального трафика GSM-соты, процессsed как на локальном BTS-узле, так и на сложных условиях BTS / MSC-сети в условиях обработки / координации трафика, которые мы наблюдаем не косвенно, а по увеличенной задержке или даже по реакции отказа в обслуживании, если BTS-узелне в состоянии обработать наш запрос «атомарного» процесса и отбрасывает его после некоторых управляемых по стандарту GSM тайм-аутов, так как он не может принимать и переносить SMS - поэтому известно, что SMS является негарантированным сервисом обмена сообщениями, посколькуever).
Итак, оставим простое предположение, что SMS-модем всегда будет обрабатывать запрос на отправку SMS, поэтому в этом упрощенном случае управления ресурсами единственным ограничивающим фактором является количество SMS-модемов.- здесь, будучи 4
Переформулировка строго по ресурсам и с учетом ресурсов:
1 Where: s := a SERIAL only part of the End-to-End process-flow
S = ____________________________________________ 1 - s := a PARALLEL organizable part
/ ( 1 - s ) \ pSO := a PARALLEL task setup overhead
s + pSO + max| _________ , atomicP | + pTO pTO := a PARALLEL test termination overhead
\ N / N := a number of resources that process atomic-process-block
atomicP:= a duration of a further indivisible atomic-process-block
Результат:
Для макетаситуация, в которой фактическое время составляет:
Ts = X [s] a duration to launch the End-to-End process-flow ( start the program ),
TatomicP = 10 [s] a latency of sending one SMS-message will never be shorter,
Nres = 5 [1] a number of SMS-messages processing resources ( i.e. GSM-modems ),
nSMS = 1 [1] a number of SMS-messages to send,
TpSO = Y [s] a duration to start a PARALLEL sub-process for GSM-modem pool handling,
TpTO = Z [s] a duration to disengage the pool of PARALLEL sub-processes and to release all of their owned resources,
, таким образом, длительность сквозного потока процесса T_E2E
будет:
T_E2E = Ts+TpSO+max(TatomicP*nSMS/Nres, TatomicP)+TpTO) = X + Y + max(10/Nres, 10) + Z
доля s
чистого технологического потока SERIAL
, который всегда должен оставаться чистым - SERIAL
, составит:
( Ts ) / ( T_E2E ) = X / ( X + Y + 10 + Z ) [1]
основной потолок (максимально достижимый) Ускорение S
будет:
( Ts + TatomicP*Nsms ) / ( Ts + TpSO + max(TatomicP*nSMS/Nres,TatomicP) + TpTO )
, который для всего одного SMS-сообщения и любого большого количества GSM-модемов, обрабатывающих SMS, будет здесь << 1, верно, потому что чистый процессный поток <code>SERIAL не тратит времени на настройку. пул подпроцессов и, наконец, их завершение и освобождение выделенных ресурсов пула и не тратит времени на организацию передачи данных туда и обратно, среди основной задачи и пула задач, организованных в истинном стиле PARALLEL
.
Таким образом, здесь вы платите намного больше, чем получаете обратно (с точки зрения организации процесса, пул готовых к обработке GSM-модемов (ресурсов) довольно дорогой в организации и управлении, чтобы отправлять только одно SMS сообщение).
В случае, если сквозной рабочий процесс начинает обрабатывать большую группу SMS-сообщений, производительность возрастет, и ускорение S
сделает то же самое. Чем больше когорта для обработки, тем лучше. Чем больше когорта для обработки и чем больше GSM-модемов для обработки когорты, тем лучше.
Тем не менее, аргумент Амдала устанавливает основной предел таких достижимых ускорений:
S
в принципе никогда не будет больше 4 для 4 модемов, не более 5 для 5 модемов и т. Д.