ლოგ-ლოგ გრაფიკები და გაჯერება
გამოთვლების სიჩქარე 50 წლის განმავლობაში ექსპონენციალური ზრდის მრუდს მიჰყვებოდა. ლოგ-ხაზოვან გრაფიკზე (ლოგ სიჩქარე ხაზოვანი დროის მიმართ), ეს ჩანს როგორც სწორი ხაზი დახრილობით b = ზრდის ტემპი წელიწადში სიდიდის რიგებში.
ფიზიკური ლიმიტები აწესებენ ჰორიზონტალურ ჭერს: მაქსიმალური სიჩქარე S_max, განსაზღვრული მოლეკულური ზომით, სინათლის სიჩქარით და სითბოს შეზღუდვებით. ექსპონენციალური S_max-ს მიუახლოვდება, ზრდა უნდა შენელდეს.
ლოგისტიკური გაჯერება
ჭერით ზრდის გავრცელებული მოდელი:
S(t) = S_max / (1 + e^(−r(t − t₀)))
ეს ლოგისტიკური განტოლება გამოიყენება ტექნოლოგიაზე. ადრეულ დროებში (t << t₀): S(t) ≈ S_max × e^(r(t−t₀)) — სუფთა ექსპონენციალური. ჭერთან ახლოს (t >> t₀): S(t) → S_max ასიმპტოტურად.
გეომეტრია: სწორი ხაზი ლოგ-ხაზოვან კოორდინატებში ხრება ჭერთან ახლოს, აწარმოებს S-ის ფორმის მრუდს, როცა მას ხაზოვან-ხაზოვან კოორდინატებში ვუყურებთ.
როდის ხდება ზრდის გაჯერება?
დავუშვათ, ერთ-პროცესორის სიჩქარე იზრდება 10^(0.09t)-ით, 1940 წლიდან 10⁰ ოპერაციით/წამში. ფიზიკური ჭერი: S_max = 10^(12) ოპერაცია/წამი (უხეში შეფასება ერთ-ბირთვიანი პროცესორისთვის, შეზღუდული თერმული და სინათლის სიჩქარის შეზღუდვებით).
მაქსიმალური კომუნიკაციის რადიუსი
პროცესორის საათის სიჩქარე განსაზღვრავს მაქსიმალურ რადიუსს, რომლის ფარგლებშიც მას შეუძლია ერთ ციკლში კომუნიკაცია. სიგნალები სპილენძში დაახლოებით 2×10⁸ მ/წმ-ით მოძრაობენ.
საათის პერიოდისთვის T (წამებში), მაქსიმალური ცალმხრივი კომუნიკაციის რადიუსი:
r_max = v × T / 2
(გავყოფთ 2-ზე გზა-უკანასთვის: სიგნალმა უნდა გავიდეს და დაბრუნდეს T-ს ფარგლებში)
საათის სიჩქარის ზრდით, T მცირდება, ამიტომ r_max მცირდება. ეს გეომეტრიული შეზღუდვა კომპონენტებს ახლოს შეჯგუფებას აიძულებს — ჩიპის ფართობის შემცირებით — ან ჩიპის გარე კომუნიკაციისთვის მრავალციკლიანი შეყოვნების მიღებას.
გავლენის სფერო
ყველა კომპონენტი, ერთ საათის ციკლში მიღწევადი, ქმნის r_max რადიუსის სფეროს პროცესორის ცენტრით. მოცულობა: V = (4/3)π r_max³.
თუ კომპონენტების სიმჭიდროვე ρ (კომპონენტები/m³), ერთ ციკლში მიღწევადი კომპონენტების რაოდენობა: N = ρ × V = ρ × (4/3)π r_max³.
საათის სიჩქარის ზრდასთან r_max-ის კლებასთან ერთად, N კუბიკურად მცირდება — საათის სიჩქარის 2×-ით გაზრდა მიღწევადი კომპონენტების რაოდენობას (1/2)³ = 1/8-ჯერ ამცირებს.
მიღწევადი კომპონენტები ერთ საათის ციკლში
1993 წლის სამუშაო სადგური მუშაობს 100 MHz-ზე (T = 10 ns). სიგნალის სიჩქარე = 2×10⁸ m/s. კომპონენტების სიმჭიდროვე სქემებზე ≈ 10⁸ კომპონენტი/m³ (უხეში შეფასება, ჩიპები, რეზისტორები, კონდენსატორები ჩათვლით).
თანამედროვე GPU მუშაობს 2 GHz-ზე (T = 0.5 ns).
პარალელური დაჩქარების ლიმიტი
ერთ-პროცესორის სიჩქარე ფიზიკურ ჭერებს უახლოვდება. ინდუსტრიის პასუხი: პარალელური არქიტექტურები. ამდალის კანონი რაოდენობრივად განსაზღვრავს პარალელიზმიდან მიღწევად დაჩქარებას.
ამდალის კანონი
დავუშვათ, პროგრამის f ნაწილი პარალელიზებადია, ხოლო (1−f) ნაწილი სერიულად უნდა გაეშვას. p პროცესორით:
Speedup(p) = 1 / ((1−f) + f/p)
p → ∞-ს შემთხვევაში: Speedup_max = 1 / (1−f)
სერიული ნაწილი (1−f) ადგენს მყარ ჭერს მიღწევად დაჩქარებაზე, მიუხედავად პროცესორების რაოდენობისა.
გეომეტრიული ინტუიცია: p-ის ფუნქცია Speedup ჰიპერბოლურ მრუდს მიჰყვება. ასიმპტოტა 1/(1−f)-ს ტოლია. f = 0.9-ისთვის, მაქსიმალური დაჩქარება = 10, უსასრულო პროცესორებითაც. f = 0.99-ისთვის, მაქსიმალური დაჩქარება = 100.
ჰემინგის ნაგულისხმევი გაკვეთილი: ინტერესი პარალელური არქიტექტურების მიმართ რეალური იყო, მაგრამ ანაზღაურება მთლიანად დამოკიდებული იყო სამუშაო დატვირთვის პარალელიზაციის შესაძლებლობაზე — ფაქტი, რომელიც ბევრმა პარალელური გამოთვლის ოპტიმისტმა უგულებელყო.
პარალელური დაჩქარების გამოთვლა
სამეცნიერო სიმულაცია ერთ პროცესორზე 1000 წამში სრულდება. პროფილირება გვიჩვენებს: 200 წამი სერიულ ინიციალიზაციის ფაზაში (პარალელიზება შეუძლებელია); 800 წამი პარალელური გამოთვლის ფაზაში.