Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Procesory wielordzeniowe a wydajność aplikacji

Procesory dwu i więcej rdzeniowe zagościły już dawno w naszych domowych komputerach. Niestety nie zawsze przekłada się to na proporcjonalny wzrost, odczuwalnej wydajności naszego blaszaka. Tak właściwie nigdy nie otrzymujemy dwukrotnie wyższej wydajności przy dodaniu jednego jajka.

Dlaczego tak się dzieje? Słyszy się często, iż programy oraz gry nie są pisane pod wielordzeniowe procesory. Co to właściwie znaczy i czy oznacza to że programiści są leniwi? W niektórych przypadkach faktycznie tak jest, jednakże w większości problem dotyczy całkowicie czegoś innego, czego ideę postaram się wyjaśnić.

Wyobraźmy sobie taką sytuację, mamy do napełniania wodą jedno wiadro. Nic prostszego, podkładamy wiadro do kranu i nalewamy z maksymalnym przepływem, co zajmuje nam określony czas. Idziemy krok dalej, zwiększamy wydajność napełniania wiadra wodą, instalujemy drugi kran w odległości 2 metrów od pierwszego. Czy teraz wiadro napełni się szybciej? Oczywiście nie, gdyż nie jesteśmy w stanie nalewać do tego samego wiadra z dwóch źródeł wody, oddalonych od siebie.

Weźmy inny trywialny przykład, skoro jedna kobieta nosi ciąże 9 miesięcy, to czy to znaczy że dwie urodzą dziecko w 4,5 miesiąca? Innymi słowy, pewnych czynności nie sposób podzielić w taki sposób aby uzyskać wzrost wydajności mając do dyspozycji dwie jednostki wykonawcze. Rozwiązując równanie matematyczne, nie możemy podzielić naszej pracy na dwie części i dać jedną z nich komuś innemu, gdyż każdy kolejny krok przekształceń zależy od kroku wcześniejszego.

Tak samo w oprogramowaniu, istnieje szereg zadań których nie sposób podzielić na więcej równoległe wykonywanych strumieni, lub podział ten jest bardzo trudny. Jak na ironię, większość operacji można wykonać równolegle, dlaczego więc programiści tego nie robią?

Wielowątkowość

Aby zrozumieć ten problem, musimy przybliżyć pojęcie jakim jest wielowątkowość w systemach operacyjnych. Każda aplikacja czy gra może posiadać kilka, równolegle wykonujących się instrukcji zlokalizowanych w różnych wątkach. Wygląda to tak jakbyśmy uruchomili dwa odtwarzacze wideo i w obu jednocześnie wyświetlali filmy. Oczywiście fizycznie procesor wykonuje tylko jedną instrukcję na raz, jednakże z punktu widzenia samego programu dzieje się to niejako równocześnie.

Każdy program posiada co najmniej jeden wątek, tzw. wątek główny. Jeśli mamy do czynienia z aplikacją okienkową, z reguł wątek ten odpowiada za interakcję z użytkownikiem. Dzięki temu, po kliknięciu przycisku nasz program reaguje, coś robi, innymi słowy działa. Na pewno znana jest Wam sytuacja w której obciążona aplikacja przestaje odpowiadać na nasze działania, okna nie daje się przeciągnąć, jego zawartość się nie odświeża. Dzieję się tak gdy program zaczyna wykonywać obliczenia w wątku głównym. W tym stanie program nie może przetwarzać komunikatów i dlatego nie odpowiada na nasze działania.

Idealną sytuacją jest, gdy skomplikowane obliczenia aplikacja wykonuje w wątku pobocznym. Wtedy to, interfejs pozostaje „przy życiu” a my mamy kontrolę nad programem. Zastosowanie wątków pobocznych wiąże się z problemami synchronizacji danych programu, dlatego też nie jest to powszechna praktyka.

2 rdzenie, 1 wątek

Skoro zatem mamy już dobrze napisany program, z wątkiem pobocznym, to dlaczego nie działa on 2x szybciej na maszynie dwurdzeniowej? Z tego prostego powodu, iż wątek główny zajmuje minimalny czas procesora (gdyż nie ma nic do roboty poza reagowaniem na akcje użytkownika), a poboczny w którym aplikacja wykonuje obliczenia maksymalny dostępny. Procesor nie może sobie tego jednego wątku rozbić na dwa rdzenie gdyż wynik działania danego rozkazu, zależny jest od wyniku rozkazu poprzedniego. W praktyce wygląda to tak że rozkazy są wykonywane naprzemiennie na każdym z rdzeni obciążając je po ok 50%. Nie mniej, jest to wykorzystywanie jedynie jednego rdzenia w całości.

Rozwiązaniem problemu jest zastosowanie dwóch lub większej ilości wątków wykonujących obliczenia, ale co ważne, tak aby rozkład pracy był rozłożony równomiernie pomiędzy nie. W takiej sytuacji, gdy 2 wątki są obciążone, 2 rdzenie procesora pracują na pełnych obrotach.

A co jeśli mamy procesor jedno rdzeniowy? Aplikacja w dalszym ciągu będzie działać poprawnie. Nie istnieje coś takiego jak program jedno lub wielordzeniowy, co najwyżej może zostać tak napisany że wykorzystuje to co oferują jednostki z kilkoma rdzeniami. Tutaj pojawia się problem przedstawiony na samym początku, problem podziału zadań na niezależnie wykonujące się strumienie/wątki. Pewnych czynności nie da się przyspieszyć zwiększając skalowalność poziomą a jedynie pionową (czyli stosując jeden szybszy procesor jedno rdzeniowy).

4, 8, 16 i więcej rdzeni

Procesory 4 rdzeniowe nie są już dziś czymś nadzwyczajnym, patrząc dalej w przyszłość doczekamy się pewnie i 16 jajkowych jednostek. Tutaj problem niejako się powtarza. W zależności od tego na ile wątków problem został rozbity, na tyle program będzie szybciej działał na coraz to większej ilości rdzeni. Oczywiście nie można popadać w skrajności, nie ma sensu dzielić operacji która trwa 1 sekundę na 16 wątków tylko po to by na odpowiednio wydajnym komputerze trwało to 16x krócej. Sama inicjacja tylu wątków w systemie pochłonęła by w takiej sytuacji więcej czasu.

Zadania które trwają dostatecznie krótko, wykonuje się w wątku głównym, gdyż użytkownik i tak nie zdążył by w tym czasie zrobić niczego innego z oknem programu. Gorzej jeśli niespodziewanie operacja się wydłuży czy wpadnie w nieskończoną pętle, mamy wtedy najzwyczajniejszą w świecie powieszoną aplikację ;).

CTRL+ALT+DEL

Jak głosi pewne przysłowie, „prawdziwy programista wiesza się razem ze swoim programem”. Dobrze że niewielu z nich stosuje tą życiową mądrość, gdyż bardzo szybko mogło by dojść do wymarcia gatunku. 

oprogramowanie programowanie

Komentarze

0 nowych
borzole   4 #1 11.01.2010 15:59

Myślę, że zabrakło obrazka w rodzaju:
http://www.acm.org/crossroads/xrds8-3/gfx/programming1.gif
Przykład z wiadrem trochę mylny i raczej kojarzy się z czasem dostępu niż wieloma wątkami. Do mnie bardziej trafiają analogie traktujące rdzenie jak pracowników. N osób tę samą pracę może wykonać maksymalnie N razy szybciej (składanie 1000 długopisów), ale pewne czynność nie zależą od tego ile osób zostanie przydzielonych do zadania (dostawa paczki na miejsce).
W samym artykule zabrakło stwierdzenia iż mimo że aplikacje nie są pisane na maszyny wielordzeniowe to systemy od dawna ładnie sobie z tym radzą i gdy np. jeden rdzeń obsługuje przeglądarkę to drugi zajęty jest odtwarzaniem filmu. Także jak najbardziej opłaca się mieć kilka rdzeni w codziennej pracy.

Banan   10 #2 11.01.2010 16:19

Dzięki za wytłumaczenie mi w tym artykule o co z tym biega, bo mam 1 rdzeń, a zastanawiam się nad 4.

MaRa   8 #3 11.01.2010 16:43

Komputery wielordzeniowe to przyszłość, gdyż krzemowych mikroprocesorów nie da się rozpędzić szybciej niż do ok. 3,6-4GHz. Tą granicę osiągnęły 5-7 lat temu, później wraz z coreduo zegary spadły o połowę, a teraz z powrotem dochodzą do tej granicy.
W profesjonalnych zastosowaniach wieloprocesorowe komputery to standard od 30 lat, mają nawet setki, tysiące procesorów.
Co się nie da rozbić na wątki, to jeden rdzeń liczy, ale co się da, to wszystkie.

  #4 11.01.2010 18:21

[[W samym artykule zabrakło stwierdzenia iż mimo że aplikacje nie są pisane na maszyny wielordzeniowe to systemy od dawna ładnie sobie z tym radzą i gdy np. jeden rdzeń obsługuje przeglądarkę to drugi zajęty jest odtwarzaniem filmu.]]

No właśnie ale chodzi o to żeby jedna aplikacja wykorzystywała 2 rdzenie, co mi z tego o czym mówisz jak ta cała reszta programów pomijalne mało obciąża procesor w przypadku gdy np: jednak która coś intensywnie liczy. Ok. System chodzi płynniej bo wciąż mamy jeden rdzeń na obsługę reszty systemu, ale nie przyspiesza mi to tej aplikacji na której mi zależy :)

borzole   4 #5 11.01.2010 19:41

@ M@ster
Zazwyczaj te wymagające aplikacje są już pisane na wiele rdzeni. W przypadku większość programów nawet nie ma powodów, bo ile zyskamy na playerku mp3 albo komunikatorach? Często więcej z tym zachodu niż zysku, ale jeśli sam piszesz takie aplikacje to masz do dyspozycji całkiem przyjazne OpenMP.
Ja bym był jednak za tym, by w dużej mierze sam system starał się równolegle prowadzić wątki. Niestety nic w tej materii nie wiem, więc nie podam przyczyny dla której współczesne systemy tego nie potrafią :D
Poza tym zauważyłem duży plus w tym zastoju. Jeśli któraś aplikacja z powodu błędu pochłonie 100% zasobów jednego rdzenia to inne rdzenie są cały czas wolne i wówczas jak sam wspomniałeś system chodzi płynnie.

Squizz   4 #6 11.01.2010 20:11

Moim zdaniem nie CPU a GPU jest przyszłością. Po co 8, 16 rdzeniowe procesory, jeśli teoretycznie 1,5 roczny Radeon HD 4870 generuje moc obliczeniową 240 GFlopów operacji zmiennoprzecinkowych. Teoretycznie przy 100% wykorzystaniu karty zyskalibyśmy moc ~24 rdzeni core2 @ 3.0 GHz, przy Radeonie HD 5870 przeszło dwa razy więcej. Niestety programiści mają o wiele więcej roboty przy takich GPU aby poprawnie były zaprzęgnięte do pracy. W tej chwili bardzo mało jest programów wykorzystujących karty graficzne (konwersja filmów + kilka nakładek do programów graficznych), jednak mam nadzieję, że to się rozwinie.

M@ster   17 #7 11.01.2010 20:41

[[Zazwyczaj te wymagające aplikacje są już pisane na wiele rdzeni.]]
Teraz już tak, ale jeszcze parę lat temu nie było to takie oczywiste.

[[więc nie podam przyczyny dla której współczesne systemy tego nie potrafią]]
Z tego samego powodu co dwie kobiety nie urodzą jednego dziecka w 4,5 miesiąca ;) Nie możesz kopać dołu we dwie osoby, jedna od powierzchni ziemi a druga od środka :P

borzole   4 #8 11.01.2010 22:00

CPU, GPU jeden pies. Niepotrzebne rozgraniczanie, póki wszystko jedzie na tych samych tranzystorach. Mogą coś przyśpieszyć nawet o rząd wielkości zmieniając architektury, ale technologia się kończy i tu jest problem. Myślę, że ugrzęźliśmy w tej technologii na kilka dekad, a przynajmniej brak wiadomości o działającej konkurencji dla tranzystora :/

MaRa   8 #9 11.01.2010 22:01

@Squizz - lecz procesory z kilkudziesięcioma rdzeniami to kwestia zaledwie kilku lat. Po prostu nie ma innej możliwości dalszego zwiększenia wydajności, to co osiągnęły ostatnie Pentium 4 było maksimum dla jednordzeniowego procesora. Chyba żeby zmienić architekturę, ale na to się nie zanosi, bo trzeba wymienić system i całe oprogramowanie.
Za szybko takie procesory też się nie pojawią, bo producenci muszą rozciągać dawkowanie nowości na lata, by nakręcać sprzedaż.

dragonn   11 #10 11.01.2010 22:05

@Squizz niestety aż tak różowo nie jest, ponieważ karta graficzna nie jest uniwersalna, da się na niej wykonywać tylko specyficzne obliczenia, (np. z tego co pamiętam to przepuszczanie dużej ilości zmiennych przez jedne wzór) do tego się GPU nadaje, ale są obliczenia gdzie GPU albo nie da się zastosować albo jest to kompletnie nie opłacalne z względu na wydajność. Dlatego CPU zawsze będzie w kompach, bo jest uniwersalne.

MaRa   8 #11 12.01.2010 10:03

@borzole - jeszcze trochę się porozwija. Są czterordzeniowe procesory, za 2 lata wejdą ośmiordzeniowe, za kolejne kika lat 16-rdzeniowe itd., za 20 lat będą 128-rdzeniowe, za 30 lat 256-rdzeniowe. Mogliby takie i dzisiaj wprowadzić, ale skończyłaby się pogoń klientów za "nowościami".
Tranzystory w CPU i GPU są podobne, ale ich ułożenie zupełnie różne. Architektury procesora nie da się ruszyć, bo musi być kompatybilny wstecz do czasów ośmiobitowego Intela 8086 z lat siedemdziesiątych. Procesor PowerPC wypadł z gry cztery lata temu, ostał się tylko na niektórych serwerach (IBM). Intel próbował wprowadzić architekturę 64-bitową IA-64, ale nie przyjęła się z powodu braku kompatybilności z 32-bitową, do świata PC 64-bity wprowadził AMD.
Pod koniec lat dziewięćdziesiątych Intel rozważał wprowadzenie komputerów bez karty graficznej, wszystkimi obliczeniami miał się zajmować tylko CPU. Ale NVidia i AMD wystrzeliły do przodu, dzisiaj zastąpienie GPU przez CPU jest kompletnie nierealne ze względu na różnice wydajności.

borzole   4 #12 12.01.2010 11:11

@MaRa
Nawet jeśli podwajanie ilości rdzeni będzie przebiegało gładko to wzrost wydajności wcale nie będzie proporcjonalny (liniowy) i uzyskamy efekt nasycenia. Z drugiej strony powiększanie ilości rdzeni, aż się prosi o rozwój w kierunku sieci neuronowych. Wprawdzie nie daje to nam szybkości, ale zupełnie inne możliwości i wymarzone struktury do rozwiązywania obliczeń przez algorytmy genetyczne, prowadzone jednocześnie w wielu kierunkach. Biolodzy zabili by za takie maszyny do badania białek. Wątpię byśmy na krzemowych tranzystorach zbudowali AI z prawdziwego zdarzenia, które potrafi coś więcej niż imitować płynne ludzkie ruchy. Nawet jeśli, to zajmowały by zbyt dużo miejsca i czerpały zbyt dużo energii (a to dzisiaj nie bez znaczenia). Mam tylko nadzieję, że dożyję tych wszystkich cudów :)

Hashi   4 #13 12.01.2010 11:14

@MaRa
Aby zmieścić taką ilość rdzeni potrzeba odpowiednio małego procesu technologicznego. Co do PowerPC to jest po części obecny w dzisiejszych konsolach oraz superkomputerach.
@Master
Nawiązując do dość ciekawego porównania z wiadrami (widzę że CPU nie są Ci obce) chciałbym abyś ustosunkował się do tego obrazka:
http://www.ibm.com/developerworks/power/library/pa-expert9/figure14.gif

MaRa   8 #14 12.01.2010 11:25

@borzole - a jednak buduje się superkomputery z tysiącami procesorów.
Sieci neuronowe to prawdopodobnie ślepa uliczka. Od 50 lat naukowcy obiecują, że za 20 lat będą inteligentne komputery, i jakoś tego nie widać. Coś jak z syntezą jądrową w tokamakach.

borzole   4 #15 12.01.2010 12:01

@MaRa
Naturalnie, że się buduje, ale zobacz czym one się zajmują. To są buldożery do obliczeń równoległych, ale wcale nie są wybitnie szybkie.
Nie wiem na jakiej podstawi mówisz, że sieci neuronowe to ślepa uliczka i że od 50 lat coś Ci naukowcy obiecują (chyba filmowcy). Przecież sieci to na dobrą sprawę bardzo młoda dziedzina. Niemniej są bardziej osiągalne niż legendarne komputery kwantowe, które wątpię zobaczyć za swojego życia :)

  #16 12.01.2010 14:42

MaRa - jeśli chodzi o graniczne możliwości częstotliwości procesorów to nie zostały one jeszcze osiągnięte, poza tym zalezą one również od mocy zasilania. Ta graniczna wartość wynosi powiedzmy 100 Ghz*W. Dlatego należy dążyć do obniżania mocy zasilania procesorów, gdyż umożliwi to zwiększenie ich prędkości, a wynika to z możliwości fizycznych układów scalonych. Co do sieci neuronowych to narazie nikt poważnie ich nie wprowadził w produkcji komputerów, dlatego nie widać ich progresu, ale jeśli jakaś firma wprowadzi je na pewno osiągną sukces, to jest przyszłość, posiadają niesamowite możliwości. ;)

Hashi   4 #17 12.01.2010 17:43

Jeśli rozmawiacie o architekturze i wydajności to musicie być przede wszystkim świadomi czym jest:
http://pl.wikipedia.org/wiki/Nanosekunda
Przy 3,2GHz w ciągu jednego cyklu zegara światło może pokonać 10cm (odstęp między zegarami); [procesor taktowany częstotliwością 1 GHz wykonuje 1 miliard podstawowych operacji w ciągu sekundy]. Teraz należałoby się zastanowić jaką drogę pokonuje impuls w sieci milionów tranzystorów. Wydajność to głównie architektura w tych czasach.

borzole   4 #18 12.01.2010 18:23

Swoją drogą ta definicja nanosekundy na wiki jest jakąś kpiną. Pierwsze zdanie ok, ale reszta nie ma nic wspólnego z nanosekundą. :/
* Impulsy elektryczne w ludzkim mózgu są czysto chemiczne (bardzo powolne jony). A mimo to zobacz jak nam się dobrze myśli :) Pkt. dla Hashi, architektura ma nieocenione znaczenie.
* Zakłada się, że żadne siły w przyrodzie nie mogą przekroczyć prędkości poruszania się czystej energii, ale i na to znalazło się obejście. Współczesna fizyka b. poważnie podeszła do teleportacji i o ile do filmu "Mucha" im daleko to stany spinowe (kluczowe w komputerach kwantowych) już teleportują. Ale będzie jazda ! :D
* Ma ktoś może jakiś ładny wykresik realnych przewidywań np. z intel'a?

Hashi   4 #19 12.01.2010 18:49

Chodzi mi tylko o to że w tym czasie światło pokonuje 30cm i tego nie da się obejść (teoria względności to wyjaśnia). Dlatego dąży się do zmniejszania procesu tech ponieważ odległości między tranzystorami są wtedy mniejsze (dystans do pokonania).
1GHz to 1mld impulsów (czyli światło może pokonać max 30cm po czym leci następny impuls).

MaRa   8 #20 12.01.2010 20:42

To nie jest tylko kwestia długości drogi, jaką informacja przechodzi w ciągu sekundy. Otóż tranzystory krzemowe mają swoje ograniczenia, pracują do częstotliwości kilku GHz. Dla wyższych trzeba by stosować specjalne materiały, jak arsenek galu, a te są kosztowne, trudno z nich otrzymywać wafle, trudno stworzyć małe tranzystory.

@borzole - jony mogą poruszać się powoli, informacja porusza się z prędkością światła. Nawet elektrony w kablu poruszają się może kilka metrów na sekundę.
A sieci neuronowe to buduje się chyba od lat pięćdziesiątych.

@Hashi - mniejsze odległości między tranzystorami to raczej wada niż zaleta, bo oznacza większą zawodność. Niższe procesy technologiczne powodują zmniejszenie zużycia energii, a przede wszystkim pozwalają albo upchnąć więcej podzespołów, albo zmniejszyć wielkość kawałka krzemu, na którym się mieszczą, a to oznacza spadek kosztów wytwarzania (kilka razy więcej procesorów z jednego wafla krzemowego).

hiropter   10 #21 13.01.2010 08:36

Wszyscy ładnie wypowiadają się o ilości rdzeni w procesorze i ich procesie technologicznym, ale ktoś zapomniał wspomnieć o reszcie komponentów w komputerach, a w szczególności o szynach danych... Po co wam setki rdzeni skoro szyna danych nie będzie potrafiła porządnie obsłużyć wymiany informacji z każdym z nich. Mówiąc o wielowątkowości można wspomnieć stary jak świat (no może nie aż tak stary) przykład z barmanami, którzy przy większej ilości zaczynają wpadać na siebie... Zresztą z tego co pamiętam na necie można było znaleźć swego czasu testy pokazujące wydajność 1, 2, 4, 8 i 16 rdzeniowego procesora. Wniosek był w sumie prosty im więcej rdzeni, tym wolniej zaczynają wykonywać się operacje i spada wydajność całego procesora.

Co do tematu sieci neuronowych, to faktycznie obiecuje się cuda już od długich lat i jak na razie, to nie widać by znacznych postępów i efektów. A procesory kwantowe... to raczej już tych czasów nie dożyję...

Hashi   4 #22 13.01.2010 12:13

To logiczne, że każdy hardware na płycie powinien działać synchronicznie (CPU, RAM, szyna, GPU i HDD). Niestety ale długo tak nie będzie.

  #23 01.11.2010 13:02

"Mogą coś przyśpieszyć nawet o rząd wielkości zmieniając architektury, ale technologia się kończy i tu jest problem. Myślę, że ugrzęźliśmy w tej technologii na kilka dekad, a przynajmniej brak wiadomości o działającej konkurencji dla tranzystora :/"

Tranzystor jako taki może być w róznych wersjach. Może być z krzemu i tu faktycznie technologia się kończy, ale może być np z grafenu z którego już wykonano eksperymentalny tranzystor taktowany częstotliwością 100Ghz. Można? Można.

"Są czterordzeniowe procesory, za 2 lata wejdą ośmiordzeniowe, za kolejne kika lat 16-rdzeniowe itd., za 20 lat będą 128-rdzeniowe, za 30 lat 256-rdzeniowe."

Masakra. Te 256 rdzeniowe będą wolniejsze od starego durona 750 Mhz. A wiesz dlaczego? Dlatego że poszczególne rdzenie będą znacznie dlużej czekać na dostęp do pamięci niż wykonywać obliczenia. Będzie moment w którym zwiększanie liczby rdzeni zacznie przynosić straty wydajności. Nie tędy droga.

"Sieci neuronowe to prawdopodobnie ślepa uliczka. Od 50 lat naukowcy obiecują, że za 20 lat będą inteligentne komputery, i jakoś tego nie widać."

Mylisz naukowców ze znachorami, przepraszam z futurologami. Zaden poważny badacz nie będzie zapewniał że za 20 lat osiągnie jakiś tam efekt. Sieci neuronowe to w miarę nowa dziedzina a już znajduje profesjonalne zastosowania. Np nie wiem czy wiecie ale w bankach decyzję o przyznaniu kredytu w znacznej częsci podejmują sieci neuronowe.

  #24 17.05.2012 18:01

Fajny artykuł, dzięki niemu zrozumiałem, że nie warto kupować drogi 8 rdzeniowy procesor, wystarczy 8 rdzeniowy :). Pozdrawiam

  #25 17.05.2012 22:02

Jeden procesor x86 może wykonywać dziś do 3 instrukcji jednocześnie. Co więcej nie musi nawet wykonywać programu w zadanej przez programistę/kompilator kolejności.

  #26 30.10.2012 00:44

Czytając Wasze dywagacje można dojść do wniosku że kość o prędkości 1THz całkowicie zaspokoiła by Wasze obecne oczekiwania tylko że sam procesor nie załatwia sprawy zachodzi pytanie po co skoro obecne prędkości procesorów całkowicie dają sobie radę z ówczesna technologią . Jeżeli chodzi o prędkości rdzenia to jest związane z możliwościami przełączania poszczególnych tranzystorów i elementów półprzewodnikowych zawartych w rdzeniu gdzie obecne prędkości dla krzemu stanowi już raczej strefę graniczną i tylko wykorzystanie nowych technologi takich jak GRAFEN który już proponuje tranzystory o częstotliwości przełączania 1THz czy bardziej futurologicznych struktur takich jak nadprzewodnictwo w standardowym środowisku gdzie tranzystor nadprzewodnikowy został stworzony w 1994r. daje możliwości osiągnięcia zawrotnych prędkości tylko że postęp technologiczny musi być równy bo co nam da szybki procesor skoro cała reszta będzie wolna , a środki wizualizacji i dźwiękowe pozostaną na obecnym etapie . Wielordzeniowość w monolitycznych strukturach procesorowych ma też swoje ograniczenia i mam tu na myśli kilkudziesięcio i więcej rdzeniowe procesory ze względu na możliwości przetwarzanie danych , czy wydatek energetyczny , gdzie w pewnym momencie może się okazać iż energia wydatkowana na potrzeby zasilania i chłodzenia znacznie przewyższa korzyści otrzymywane i raczej nie zda to egzaminu w standardowych czyli domowych systemach . Moim zdaniem sztuczną inteligencje i procesory fotonowe możemy sobie wsadzić między bajki na najbliższe 50-100lat.

  #27 07.02.2013 01:33

To prawda że procesorów w obecnej technologii nie da się zrobić szybszych niż 3-4GHz. Koledzy już to ładnie wcześniej opisali szczególnie hiropter. Szybkość zależy od odpowiedniego zestawienia kompa czyli jego architektury.Trzeba dopasować możliwości szyny danych do wydajności i taktowania procesora, pamięci RAM. Ferrari nie pojedziesz 300km/h wiejską krętą drogą do tego potrzebujesz autostrady. Jak mawiał mój nauczyciel komputer jest tak szybki jak jego najwolniejsza cześć, najsłabsze ogniwo (procesor, pamięć operacyjna RAM lub szyna danych).