Ważne
Nasz wybór

Komputery kwantowe oraz limity współczesnej technologii z Google i Microsoftem w tle

„Liczba tranzystorów w układzie scalonym (procesorze) zwiększa się w kolejnych latach zgodnie z trendem wykładniczym – podwaja się w dwunastomiesięcznych okresach.” Tak mówi Prawo Moore’a. Czytelnicy jednak wielokrotnie pisali, że „co to za prawo, które przestało się sprawdzać”. 

Ograniczenia współczesnej technologii

Chcąc zrozumieć problem rozwoju procesorów i nagłego zatrzymania wzrostu mocy obliczeniowej, trzeba uświadomić sobie, że „Prawo Moore’a” wynika z obserwacji, jest prawem empirycznym, a nie uniwersalnym. Gordon Moore, jeden z założycieli Intela, w 1965 roku zauważył tą prawidłowość, która utrzymywała się przez kolejne dziesiątki lat. Z czasem jednak okresy, w których moc podwajała się wydłużyły się do 24 miesięcy. Dzięki czemu taki szybki rozwój był w ogóle możliwy? Jednym z głównych powodów jest stosowanie coraz mniejszych elementów w procesie produkcyjnym procesorów. W latach 90-tych używano technologii o litografii 500 nanometrów, podczas gdy współcześnie przeważają technologie 45 nm, 32 nm (Sandy Bridge), 22 nm (Haswell) i już wkrótce 14 nm (Broadwell).

Trzeba jednak zdawać sobie sprawę, że rozmiary te nie mogą zmniejszać się bez końca z uwagi na twarde ograniczenia fizyki klasycznej. Wartością graniczną będzie oczywiście rozmiar atomów (dla przykładu – atom krzemu ma średnicę 0,24 nm), a przejście z krzemu na grafen czy german również nie pozwoli na minimalizowanie litografii w nieskończoność – nawet w przypadku, gdyby pojedyncza ścieżka procesora miała grubość jednego atomu. Kolejnym ograniczeniem jest też prędkość światła, która wraz z fizycznymi rozmiarami płytki warunkuje maksymalną możliwą szybkość przesyłania informacji.

intel-lithography-roadmap

Od wielu lat zapowiada się, że Prawo Moore’a przestanie (przestało?) obowiązywać. Sam Gordon Moore, w roku 2006 powiedział, że za kilka lat jego „prawo” nie będzie miało zastosowania właśnie z uwagi na ograniczenia fizyki klasycznej. Producenci pokonują jednak kolejne granice i już teraz wiemy, że w 2016-2017 najprawdopodobniej uda się zejść poniżej 10 nm. Nie rozwiązuje to jednak problemu, a jedynie go odracza. Wkrótce i tak napotkamy ścianę limitów fizycznych i co wtedy? Możliwości producentów nie kończą się tak szybko. Pozostaje jeszcze optymalizacja programowa i zmiana architektury. Nie zmienia to „czystej” mocy obliczeniowej, ale pomaga oszukać ograniczenia i zwiększyć realną wydajność w praktycznych zastosowaniach. Dodawanie kolejnych rdzeni pomaga, ale też nie jest optymalnym rozwiązaniem – nie wszystkie procesy i zadania da się zrównoleglać (na poziomie bitów, rozkazów, danych i zadań), a całą wojnę na rdzenie czasami można ironicznie sprowadzić do pytania: „Wolałbyś osiem Fiatów czy jednego Bentleya?”.

Problematyczne jest też zjawisko wycieku (prąd upływu, „leakage”), które wzmaga się wraz z wzrostem częstotliwości procesora. Jest to niepożądany efekt kwantowy, polegający na tunelowaniu elektronów przez warstwę izolatora. Duże prądy upływu zwiększają pobór energii i mogą doprowadzić nawet do całkowitego uszkodzenia układu. Zjawisko wycieku jest obecnie jednym z głównych czynników limitujących maksymalne częstotliwości pracy procesorów. Na chwilę obecna wygląda na to, że nawet jeśli zmienimy architekturę i będziemy używać innych materiałów, problemu tego nie przeskoczymy.

Zacznijmy od optymalizacji programowej czyli software’u. Dopracowanie wykonywania rozkazów, zrównoleglania i sterowników może przełożyć się na wzrost odczuwalnej mocy obliczeniowej. Doskonałym przykładem zastosowania tych rozwiązań jest architektura Haswell, która opiera się na tym samym procesie litograficznym (22 nm) co poprzednia generacja Ivy Bridge. Mimo tej samej wielkości ścieżek, udało się podwyższyć moc obliczeniową o 10-20% redukując przy tym pobór prądu o 30-40%. Jednym z trików było zbalansowanie obciążenia CPU i układanie rozkazów w grupy odpalane synchronicznie w równych odstępach czasu, w opozycji do asynchronicznego wykonywania rozkazów niezależnie, po otrzymaniu sygnałów z wybranych peryferiów. Do tego jednak nie wystarczy technologia procesora – potrzebny będzie kompatybilny system operacyjny. Intel pracował blisko z Microsoftem i Apple, żeby ich OS-y w pełni wykorzystywały możliwości CPU i GPU w sposób optymalny. W przyszłości pojawią się kolejne rozwiązania związane między innymi z Panel Self Refresh, czyli odświeżaniem obrazu monitora. Firmy pracują nad tym, żeby w sytuacjach „statycznych” (czytanie tekstu, oglądanie zdjęcia) nie odświeżać go 60 razy na sekundę. Wszystkie te drobne kroczki składają się na jedną całość, ale dalej nie rozwiązują problemu ściany, z którą wkrótce musimy się zderzyć.

activityalignmentsm

A może zmienić architekturę współczesnych komputerów zachowując paradygmat obliczeniowy maszyny Turinga (bo każdy współczesny komputer to maszyna Turinga)? Jest to bardzo ciekawa koncepcja i to nie tylko teoretyczna. W HP Labs, laboratorium badawczym Hewlett Packarda, od jakiegoś czasu pracuje się nad komputerem „The Machine”, który zmienia podejście do projektowania maszyn liczących. Współcześnie przetwarzanie danych w komputerach i innych urządzeniach polega na wykonywaniu prostych operacji binarnych oraz przenoszenia bloków danych między poszczególnymi rodzajami pamięci – od L1 i L2 w procesorze, poprzez pamięć RAM, aż do pamięci wewnętrznej urządzeń czy zewnętrznych nośników danych. Dlaczego aż tyle rodzajów pamięci? W telegraficznym skrócie – duża pamięć jest wolna, szybka pamięć jest mała. A do tego: szybka-duża pamięć jest potwornie droga i trudna do produkowania na masową skalę. W związku z tym pamięć w komputerach jest hierarchizowana – tam gdzie potrzeba dużej szybkości (blisko procesora) używa się superszybkiej pamięci rzędu pojedynczych megabajtów, potem mamy dość szybki RAM (rzędu kilku GB), dyski SSD zwykle (do ok. 1 TB) i dyski HDD i nośniki zewnętrzne o pojemności wielu terabajtów.

Segmentacja ta ma oczywisty sens z przyczyn ekonomicznych i technologicznych, ale w ogromnym stopniu spowalnia działanie komputerów. Szacuje się, że 90% czasu procesora wykorzystuje się nie na znaczące zadania obliczeniowe, a na przenoszenie bloków danych z jednej pamięci do drugiej. Czy jest na to jakiś sposób? The Machine od HP ma wykorzystywać pamięć bazującą na memrystorach, czyli rezystorach z pamięcią, które mogą przechowywać jeden bit informacji i pozwalają na budowę procesorów znacznie mniejszych niż obecnie. Użyte zostaną też bardzo szybkie fotoniczne łącza systemowe, zarówno dla podzespołów wewnętrznych, jak i urządzeń zewnętrznych. Całość ma korzystać z szybkiej pamięci uniwersalnej, bez podziału na RAM czy przestrzeń dyskową. Takie rozwiązanie mogłoby znacznie zoptymalizować i przyspieszyć działanie urządzeń opartych na takiej architekturze i odroczyć zderzenie ze ścianą na kolejne kilka lat, jednak problem ograniczeń fizyki klasycznej dalej pozostaje. Czy istnieje jakieś wyjście z tej sytuacji?

Nasz wybór

Jeżeli znalazłeś literówkę w tekście, to daj nam o tym znać zaznaczając kursorem problematyczny wyraz, bądź zdanie i przyciśnij Shift + Enter lub kliknij tutaj. Możesz też zgłosić błąd pisząc na powiadomienia@tabletowo.pl.

Komentarze

  • guest

    No czapy z głów. Dlatego warto wchodzić na tabletowo.

  • Mihau

    Bardzo fajny artykuł, który co prawda mnie nie powiedział wiele nowego (choć akurat o Station Q wcześniej nie słyszałem), ale przystępnie prezentuje omawianą problematykę i dobrze się go czyta. W sam raz dla osób, które chciałyby się czegoś dowiedzieć o temacie bez przebijania się przez podstawy informatyki teoretycznej czy fizyki. Gratuluję i pozdrawiam.

    Mam tylko jedną drobną uwagę: użyłeś słowa „zrównolegać”. Nie sądzisz, że lepsze byłoby „paralelizować”? Ani jedno, ani drugie nie jest specjalnie zgrabne (i chyba żadnego nie znajdziemy w słowniku), ale to drugie zdarzyło mi się już spotkać w tekstach związanych z procesorami, programowaniem etc., za to tego pierwszego nigdy.

    • Rozmawiając z kolegami-informatykami użyłbym „paralelizować” (chyba), ale tutaj byłbym za to zjedzony przez purystów językowych i patriotów strzegących mowy polskiej :)

      „Zrównoleglanie” pojawia się jednak w polskiej wikipedii nawet :)
      http://pl.wikipedia.org/wiki/Obliczenia_r%C3%B3wnoleg%C5%82e#Taksonomia_Flynna_i_typy_zr.C3.B3wnoleglania

      • Mihau

        Hmm, no proszę… I tak moim zdaniem brzmi to strasznie (jak większość polskojęzycznych odpowiedników w informatyce), ale skoro pojawia się to w użyciu, to nie będę się kłócić :).

        • Tomasz Lenartowski

          A u nas zaś się mówi zrównoleglić. Nigdy nie słyszałem, by ktoś użył paralelizowania. Widać nie ma tutaj zgodności.

          • Sony

            Mówi się Interface czy MiędzyMordzie ? :) :)

            Tak na serio to ładnych parę lat temu był taki jeden co Tupał i Mlaskał myszą :) :) I nazywał sie jak były Premier :)

            Jedno jest pewne : Zrównoleglać – zdecydowanie łatwiej wymówić niż – Paralelizować. Zwłaszcza jak troszkę wypijemy :) :)

          • Sony

            Mówi się Interface czy MiędzyMordzie ? :) :)

            Tak na serio to ładnych parę lat temu był taki jeden co Tupał i Mlaskał myszą :) :) I nazywał sie jak były Premier :)

            Jedno jest pewne : Zrównoleglać – zdecydowanie łatwiej wymówić niż – Paralelizować. Zwłaszcza jak troszkę wypijemy :) :)

        • Tomasz Lenartowski

          A u nas zaś się mówi zrównoleglić. Nigdy nie słyszałem, by ktoś użył paralelizowania. Widać nie ma tutaj zgodności.

  • guest

    To ten Wave kupiony przez google w koncu jest kwantowy czy nie? A jesli tak, to dlaczego w testach sobie radzi tak samo jak zwykly?

    • Trudne pytanie :) Wygląda na to, że faktycznie D-Wave jest komputerem „kwantowym”, a nie klasyczną maszyną Turinga. Jednocześnie jednak nie jest to taki kwantowy komputer, o którym mówią matematycy i fizycy.

      Efekt kwantowego wyżarzania, wykorzystywany przez D-Wave ma dość wąskie zastosowania i nie jest jasne, czy może on być bardziej efektywny w rozwiązywaniu problemów NP niż komputery klasyczne. Kubity w takim kwantowym wyżarzaczu dążą do stanów o najniższej energii, które odzwierciedlają rozwiązanie problemu z zakresu optymalizacji dyskretnej, czyli minimalizacji lub maksymalizacji pewnej funkcji celu.

      Bardziej niż ze zjawiskami kwantowymi ma to związek z dualnymi sieciami neuronowymi stosowanymi w optymalizacji liniowo-kwadratowej.

      W testach radzi sobie jak „zwykły” z dwóch możliwych powodów – po pierwsze wyżarzanie to nie to samo co komputer kwantowy z wykorzystaniem splątanych stanów kubitów, więc problemy NP dalej mogą okazać się kłopotliwe. Po drugie, ludzie z D-Wave wskazują, że dopiero przy większej skali (wymiarowości) zadania, przewaga komputera kwantowego opartego o wyżarzanie może być widoczna.

      http://en.wikipedia.org/wiki/Quantum_annealing

      • krytykk

        Albo dobrze ściemniasz albo marnujesz się tutaj :P

  • Adam

    Ja jestem bardzo ciekawy rozwoju kwantówek, ale jeszcze dużo wody upłynie w wiśle zanim postęp w wydajności zatrzyma się na dobre. Szczególnie w urządzeniach mobilnych, bo w desktopach to już jest trochę zastoju. 3-4 GHz, 4-8 rdzenie i to tyle. Do tego 16-32 GB RAM i mamy komputer którego nie musimy zmieniać przez 8 lat.

  • Adler

    Tekst własny czy tłumaczenie i kopiowanie z zagramanicy?

  • Delorei

    Pająk artykułem o CERN podniósł poprzeczkę wysoko, ale wy dzisaj ją przenieśliście jeszcze wyżej. Oby więcej takich tekstów – byle nie za często, bo głowa mi pęka ;)

  • Delorei

    Pająk artykułem o CERN podniósł poprzeczkę wysoko, ale wy dzisaj ją przenieśliście jeszcze wyżej. Oby więcej takich tekstów – byle nie za często, bo głowa mi pęka ;)

  • Sony

    Obecnie jest ogromny zapas mocy w istnejącej technologii.

    Wystarczy OPTYMALIZOWAĆ soft – i nie mówię tu o pisaniu w assemblerze :) ale wystarczy popatrzyć na Windows – dało się w Windows 8.1 zmniejszyć wymagania? Dalo się – działa lepiej niż Win 7, a o Viscie nie wspominając. Co ciekawe okazuje się, że radzi sobie na maszynach na ktorych XP dostaje zadyszki.

    Komputery kwantowe jeszcze długo nie trafią „pod strzechy” :) a miniaturyzować w nieskończoność się nie da.

    Przykład Karty Grafiki – obecnie te topowe pobierają WIĘCEJ mocy niż caly biurowy komputer.

    Zejdziemy do 5 nm i co dalej ?

    Po prostu trzeba zacząć rozsądnie używać to co mamy – optymalizacja i jeszcze raz optymalizacja.

    • Delorei

      A Ty nie możesz sobie darowąc wtykania Windowsa zawsze i wszędzie w każdym komentarzu? To już jest nudne.

      • Sony

        Nastepnym razem będę wtykal Androida – piał z zachwytu nad nim jaki to wspaniały, szybki, płynny jest. I że co generacja to mniejsze wymagania sprzętowe ma.

        Napisz jeszcze – że napisałem NIEPRAWDĘ – bedzie do kompletu.

        • Tomasz Lenartowski

          Świetny produkt obroni się sam. Mi by się nie chciało w kółko klepać tego samego za frajer. A skoro ten system jest taki genialny to odniesie system bez twojego pitolenia. Szczególnie, że na rynku PC jest niekwestionowanym liderem. Przynajmniej, jeśli chodzi o procent rynku.

      • Sony

        Nastepnym razem będę wtykal Androida – piał z zachwytu nad nim jaki to wspaniały, szybki, płynny jest. I że co generacja to mniejsze wymagania sprzętowe ma.

        Napisz jeszcze – że napisałem NIEPRAWDĘ – bedzie do kompletu.

    • Darek

      Masz i jednocześnie nie masz racji :-)
      Kod tworzony obecnie rzeczywiście jest nieefektywny (kwestia narzędzi, wkładu pracy, budżetu itp.) i jego optymalizacja może zdziałać cuda. Z drugiej strony jest klasa zagadnień (o których pisze Piotr) dla których optymalizacja kodu niewiele da, bo złożoność obliczeniowa jest tak duża, że obliczenia i tak będą trwały wieki.

  • Sony

    Obecnie jest ogromny zapas mocy w istnejącej technologii.

    Wystarczy OPTYMALIZOWAĆ soft – i nie mówię tu o pisaniu w assemblerze :) ale wystarczy popatrzyć na Windows – dało się w Windows 8.1 zmniejszyć wymagania? Dalo się – działa lepiej niż Win 7, a o Viscie nie wspominając. Co ciekawe okazuje się, że radzi sobie na maszynach na ktorych XP dostaje zadyszki.

    Komputery kwantowe jeszcze długo nie trafią „pod strzechy” :) a miniaturyzować w nieskończoność się nie da.

    Przykład Karty Grafiki – obecnie te topowe pobierają WIĘCEJ mocy niż caly biurowy komputer.

    Zejdziemy do 5 nm i co dalej ?

    Po prostu trzeba zacząć rozsądnie używać to co mamy – optymalizacja i jeszcze raz optymalizacja.

  • pytam

    Ciekawa sprawa z tymi problemami NP. Nie słyszałem o tym i teraz poczytałem na wikipedii. Ale dalej nie do końca rozumiem. Nie ma zatem algorytmów, które rozwiązują te problemy?

    • Właściwie, to wręcz odwrotnie. Problemy NP od strony samego algorytmu są bardzo „proste”. Wystarczy, że przeanalizujemy wszystkie możliwe opcje (np wszystkie możliwe ścieżki w problemie komiwojażera) i wybierzemy rozwiązanie najlepsze.

      Problem polega natomiast na tym, że wraz ze wzrostem złożoności zadania (np. wzrostem liczby miast w problemie komiwojażera) liczba możliwych wariantów rośnie wykładniczo (czyli bardzo szybko).

      Zobacz przykład dla 7 wierzchołków. Mamy „tylko” 7 miast, a wszystkich możliwych tras… (7-1)!/2 = 360. Dla 8 miast byłoby 2520 permutacji (możliwych tras). Dla 9 miast… 20160.

      http://upload.wikimedia.org/wikipedia/commons/2/2b/Bruteforce.gif

      Jak widać – liczba możliwych tras rośnie bardzo szybko. Tutaj możesz podejrzeć jak szybko rośnie liczba permutacji (zmieniając zakres wykresu):
      http://www.wolframalpha.com/input/?i=plot+%28n-1%29%21%2F2+from+n%3D4+to+11

      I bardziej czytelny wykres w skali logarytmicznej:
      http://www.wolframalpha.com/input/?i=log+plot+%28n-1%29%21%2F2+from+n%3D4+to+11

      Trudne jest tak naprawdę stworzenie algorytmów zachłannych, które NIE przeglądają całego zbioru rozwiązań, a „muszą” być skuteczne. Co Ciekawe, jeśli poprosiłbym Cię o wyznaczenie najkrótszej trasy dla tych 7 wierzchołków, Twój mózg posłużyłby się właśnie algorytmem zachłannym :)

      • lukaszt

        Czy tylko ja czuje się głupkiem? ;-)

        • Bartosz Mazur

          Nie :D Jest nas już dwóch.

      • lukaszt

        Czy tylko ja czuje się głupkiem? ;-)

      • Adam

        Ddoaj to do głównego wpisu, bo te wyjaśnienie jest lepsze niż w tekście.

      • Adam

        Ddoaj to do głównego wpisu, bo te wyjaśnienie jest lepsze niż w tekście.

  • uru28

    Tekst doskonały;) I pełen szacun za ilość pracy przy tekście…Nie chcę naturalnie obrazić,czy w jakikolwiek sposób umniejszać ale to bardziej mi na pracę na studia wygląda niż na felieton;)Tak czy inaczej Panie Piotrze to jeden z najlepszych tekstów na tabletowo jakie dane mi było czytać od początku istnienia.
    PS.Kasia , chyba o jakiejś premii musisz pomyśleć;)

    • adler

      Popieram. Nie spodziewałem się takiego tekstu tutaj. A fajnie, że się pojawił. Słyszałem o tych rzeczach dość często, ale nie potrafiłbym o nich opowiedzieć, gdyby ktoś o nie zapytał. Teraz mam nadzieję będe potrafił :)

  • Bartosz Mazur

    Nic nie zrozumiałem :D

    • Bartosz Mazur

      A tak po drugie to skoro tyle o tym wiesz to co Ty robisz na tabletowo ?

      • Piszę :)

        • Bartosz Mazur

          Czemu jesteś taki niemiły :D Każdy wie o co mi chodzi.

          • To gwoli wyjaśnienia – pisanie nie jest moim głównym zajęciem, piszę bo lubię :)

  • worek

    Na ile realnie jest zrobienie takiej maszyny? I na ile realne jest zmieszczenie jej w tablecie?

    • Takiej prawdziwej maszyny kwantowej wykorzystującej splątanie cząstek elementarnych? To już istnieje, ale są to wielkie urządzenia z niewielką liczbą kubitów.

      A kiedy to zminiaturyzują? Zabij mnie, nie wiem :) Może za 10 lat, może nigdy.

  • deadhanter

    ciekawe kiedy w koncu zrobią procesor z grafenu czy innego innowacyjnego matriału ktory ma nieodkryty potencjał ;D

  • John Doe

    Dlaczego w nawigacji nie można zaimplementować jednego z algorytmów rozwiązujących problem najkrótszej ścieżki w grafie ważonym, zamiast algorytmów zachłannych?

    • Popularnym algorytmem rozwiązującym problem najkrótszej ścieżki w grafie ważonym jest algorytm Dijkstry i należy on właśnie do rodziny algorytmów zachłannych.

      Problem najkrótszej ścieżki w grafie ważonym nie jest problemem NP i można znaleźć dla niego rozwiązanie optymalne globalnie algorytmem złożoności wielomianowej O(V^2).

      • JD

        Czy to stwierdzenie jest poprawne:
        Problem najkrótszej ścieżki w grafie ważonym nie jest problemem NP i istnieją algorytmy o złożoności wielomianowej O(V^2), które zawsze znajdują dla niego rozwiązanie optymalne globalnie.
        Czy algorytm Dijkstry znajduje globalne optymalna rozwiązanie, mimo że jest zachłanny?

  • BIMBAMBEMBUMBOM

    Pamiętam jak naście lat temu na wykładach profesorek opowiadał nam o swoich „wycieczkach”
    po europie i o tym co widział (np. pod Paryżem). Szczęki nam spadały jak mówił o projektach procesorów optycznych i kwantowych. Fajnie, że są ludzie którym komórki zapie….ją na takim poziomie, a potem Zwykli Zjadacze Ziemniaków mogą korzystać z ich potencjału (za stosunkowo nie wielką opłatą ;) ). Tak trochę poboczem: czytając „…Istotne staje się więc wykonanie całej serii obliczeń i dopiero ich uśredniona wartość określi wynik (tym dokładniejszy, im więcej komputer dokona obliczeń)….” przypomniał mi się „Instytut Maszyn Dziejowych” z „Wizji Lokalnej” S. Lema, no i stamtąd moja nazwa ;))

  • Raul

    Marnujesz się pisząc o Windows 10.

Tabletowo.pl
Logowani/Rejestracja jest chwilowo wyłączona