Орындаууақыты және жеделдету Әзірге біз Амдал заңын оңтайландырудан немесе параллелизациядан кейін бағдарламаның немесе алгоритмнің орындалу уақытын есептеу үшін ғана қолдандық. Жылдамдықты есептеу үшін Амдал заңын да пайдалана аламыз, яғни жаңа алгоритм немесе бағдарлама ескі нұсқаға қарағанда қаншалықты жылдамырақ.
Егер бағдарламаның немесе алгоритмнің ескі нұсқасының уақыты T тең болса , онда жеделдету
Үдеу = T / T ( O , N )
Біз ескі уақыттың бөлігі ретінде орындалу уақытын және жылдамдықты есептеу үшін T мәнін жиі 1-ге орнатамыз. Сонда теңдеу келесідей болады:
Үдеу = 1 / T ( O , N )
Егер T ( O , N ) орнына Амдал заңының есебін енгізсек, келесі формуланы аламыз:
Үдеу = 1 / ( B / O + (1 - B / O ) / N )
B = 0,4, O = 2 және N = 5 болғанда , есептеу келесідей болады:
Үдеу = 1 / (0,4 / 2 + (1 - 0,4 / 2) / 5)
= 1 / (0,2 + (1 - 0,4 / 2) / 5)
= 1 / (0,2 + (1 - 0,2) / 5)
= 1 / (0,2 + 0,8 / 5)
= 1 / (0,2 + 0,16)
= 1 / 0,36
= 2,77777 ...
Бұл параллельденбейтін (сериялық) бөлікті 2 есе оңтайландырса және параллельді бөлікті 5 есе параллельдейтін болсаңыз, бағдарламаның немесе алгоритмнің оңтайландырылған жаңа нұсқасы ескі нұсқаға қарағанда ең көбі 2,77777 есе жылдам жұмыс істейтінін білдіреді. .
Тек есептеу емес, өлшу
Амдал заңы алгоритмнің параллелизациясының теориялық жылдамдығын есептеуге мүмкіндік берсе де, мұндай есептеулерге тым көп сенбеңіз. Тәжірибеде алгоритмді оңтайландыру немесе параллельдеу кезінде көптеген басқа факторлар пайда болуы мүмкін.
Жад жылдамдығы, процессор кэші, дискілер, желілік карталар және т.б. (егер диск немесе желі пайдаланылса) шектеуші фактор болуы мүмкін. Алгоритмнің жаңа нұсқасы параллельді болса, бірақ көптеген кэшті жіберіп алса процессор , сіз тіпті қажетті x жылдамдығын ала алмайсыз x пайдалану кезінде N Н cpu . Жад шинасын, дискіні немесе желі картасын немесе желі қосылымын қанықтырсаңыз, дәл солай болады.
Мен қай жерде оңтайландыру керектігі туралы түсінік алу үшін Амдал заңын пайдалануды ұсынамын, бірақ оңтайландырудың нақты жылдамдығын анықтау үшін өлшеуді қолданыңыз. Есіңізде болсын, кейде жоғары серияланған (бір процессор ) дәйекті алгоритм параллельді алгоритмнен асып кетуі мүмкін, себебі сериялық нұсқада координацияға қосымша шығындар жоқ (жұмысты бұзып, жиынтықты қайта құру), сонымен қатар бір процессор алгоритмі жақсырақ жұмыс істей алады. негізгі аппараттық құрал қалай (процессор құбырлары, процессор кэші және т.б.).