Oprogramowanie spowalnia rozwój sprzętu

zorza
2007/12/19 14:55

Najnowsze generacje wielordzeniowych procesorów nie sprzedają się najlepiej, gdyż twórcy oprogramowania nie opracowali jeszcze porządnych algorytmów na ich wykorzystanie. Sytuacja powoli staje się dramatyczna, a rozwiązania nie widać.

Jak twierdzi New York Times, wszystkie większe firmy software'owe próbują - z mizernym jak dotąd skutkiem - znaleźć sposób na zrobienie użytku z dwu- czy nawet czterordzeniowych procesorów oferowanych przez Intela i AMD. Oprogramowanie spowalnia rozwój sprzętu

Złożoność problemu polega na tym, że oprogramowanie, by wykorzystać wiele równoległych jednostek obliczeniowych, musi podzielić kod na bitowe kawałeczki, a następnie rozdzielić je po równo między rdzenie. Staje się to tym trudniejsze, że na horyzoncie pojawiają się już procesory ośmiordzeniowe.

"Cała branża stawia na rozwiązania równolegle, ale ludzie od oprogramowania nie znaleźli jeszcze sposobu jak chwycić piłkę i z nią biec. Nie znaleźli również sposobu na przekroczenie linii, przyłożenie, ani podanie piłki. W zasadzie, jeśli chodzi o analogie do footballu amerykańskiego, oni grają w badmintona" - stwierdził profesor David Patterson z Uniwersytetu Berkeley cytowany przez New York Timesa.

GramTV przedstawia:

Wygląda na to, że Microsoft zbliża się do celu napędzany strachem, że jakiś open source'owy programista może ich wyprzedzić i usmażyć na masełku bez cebulki.

Jak można się było spodziewać, gigant z Redmond, zgodnie ze standardową praktyką w takich przypadkach, zatrudnił najtęższe głowy w całej branży. Wspólnym wysiłkiem starają się oni teraz przepisać kod programów ze stajni Billa G. tak, by lepiej działały na wielu rdzeniach. Jeśli im się to uda, analitycy przewidują, że nowy kod może być dostępny na rynku w ciągu trzech lat. Można więc nie wstrzymywać oddechu.

Komentarze
49
Usunięty
Usunięty
24/12/2007 20:12
Dnia 23.12.2007 o 22:49, Bagieta napisał:

Anie troche cie nie rozumie :D

chodzi mi o to, że całkiem sporo instrukcji musi być wykonywana w określonej kolejności (bo późniejsze zależą od wcześniejszych albo korzystają z ich obliczeń), a co za tym idzie nie można ich dać do różnych rdzeni. Dlatego też wątkami musi zająć się programista albo w ostateczności kompilator.

Usunięty
Usunięty
23/12/2007 22:49
Dnia 19.12.2007 o 17:58, sig. napisał:

> Bez sensu, to procesor sam powinien sobie dawac z tym rade a nie jeszcze specjalnego softwara > mu trzeba. a jak ma podzielić obliczenia między rdzenie w sytuacji gdy wartości zmiennych się między nimi zmieniają? weźmy taki przykładowy zestaw instrukcji: 1) A =5 2) B = 3 3) B = A -B tutaj jeszcze jakieś nieistotne w tej chwili instrukcje) 4) C = 5 5) A= B +C i teraz gdyby instrukcje 3 i 5 trafiły do różnych rdzeni, to wynik 5 mógłby być nieprawidłowy (co więcej 5 mogło by się wykonać przed 3). Dlatego też należy dopilnować żeby robiły się na tym samym (czyli podzielić program na niezależne od siebie wątki), a to już zadanie dla oprogramowania/programisty.

Anie troche cie nie rozumie :D

Usunięty
Usunięty
23/12/2007 22:49
Dnia 19.12.2007 o 17:58, sig. napisał:

> Bez sensu, to procesor sam powinien sobie dawac z tym rade a nie jeszcze specjalnego softwara > mu trzeba. a jak ma podzielić obliczenia między rdzenie w sytuacji gdy wartości zmiennych się między nimi zmieniają? weźmy taki przykładowy zestaw instrukcji: 1) A =5 2) B = 3 3) B = A -B tutaj jeszcze jakieś nieistotne w tej chwili instrukcje) 4) C = 5 5) A= B +C i teraz gdyby instrukcje 3 i 5 trafiły do różnych rdzeni, to wynik 5 mógłby być nieprawidłowy (co więcej 5 mogło by się wykonać przed 3). Dlatego też należy dopilnować żeby robiły się na tym samym (czyli podzielić program na niezależne od siebie wątki), a to już zadanie dla oprogramowania/programisty.

Anie troche cie nie rozumie :D




Trwa Wczytywanie