Amdahl qonuni
Qonunlar 0 06.08.2023 224

Amdahl qonuni Wikipedia

Amdahl qonuni - bu tizim resurslarini ko'paytirish orqali erishish mumkin bo'lgan hisoblash vazifasining potentsial tezligini ko'rsatadigan formula. Odatda parallel hisoblashda foydalaniladi, u protsessorlar sonini ko'paytirishning haqiqiy foydasini bashorat qilishi mumkin, bu dasturning parallellik qobiliyati bilan cheklangan.

Eng yaxshi misol bilan tasvirlangan. Agar dastur ikkita qismdan iborat bo'lsa, bitta protsessor tomonidan bajarilishi kerak bo'lgan A qismi va parallellashtirilishi mumkin bo'lgan B qismi bo'lsa, dasturni bajaruvchi tizimga bir nechta protsessorlarni qo'shish faqat cheklangan foyda keltirishi mumkinligini ko'ramiz. . Bu B qismining tezligini sezilarli darajada oshirishi mumkin, ammo A qismining tezligi o'zgarishsiz qoladi.

Quyidagi diagrammada tezlikni oshirishning ba'zi misollari ko'rsatilgan:

(Image Reference: By Daniels219 at English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)

Ko'rinib turibdiki, hatto 50% parallelizatsiya qilinadigan dastur ham 10 ta ishlov berish birligidan juda kam foyda keltiradi, 95% parallelizatsiya qilinadigan dastur esa mingdan ortiq ishlov berish birliklari bilan tezlikni sezilarli darajada oshirishi mumkin.

Mur qonuni  sekinlashgani va individual protsessor tezligining tezlashishi sekinlashgani sababli, parallellashtirish ishlashni yaxshilash uchun kalit hisoblanadi. Grafik dasturlash ajoyib misol - zamonaviy Shader asosidagi hisoblash bilan individual piksellar yoki fragmentlar parallel ravishda ko'rsatilishi mumkin - shuning uchun zamonaviy grafik kartalar ko'pincha minglab ishlov berish yadrolariga (GPU yoki Shader Birliklari) ega.

Shuningdek qarang:

Amdahl's Law
Qonunlar 0 06.08.2023 224

Amdahl's Law on Wikipedia

Amdahl's Law is a formula which shows the potential speedup of a computational task which can be achieved by increasing the resources of a system. Normally used in parallel computing, it can predict the actual benefit of increasing the number of processors, which is limited by the parallelisability of the program.

Best illustrated with an example. If a program is made up of two parts, part A, which must be executed by a single processor, and part B, which can be parallelised, then we see that adding multiple processors to the system executing the program can only have a limited benefit. It can potentially greatly improve the speed of part B - but the speed of part A will remain unchanged.

The diagram below shows some examples of potential improvements in speed:

(Image Reference: By Daniels219 at English Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)

As can be seen, even a program which is 50% parallelisable will benefit very little beyond 10 processing units, whereas a program which is 95% parallelisable can still achieve significant speed improvements with over a thousand processing units.

As Moore's Law slows, and the acceleration of individual processor speed slows, parallelisation is key to improving performance. Graphics programming is an excellent example - with modern Shader based computing, individual pixels or fragments can be rendered in parallel - this is why modern graphics cards often have many thousands of processing cores (GPUs or Shader Units).

See also: