Procesory wielordzeniowe powodują bóle głowy związane z oprogramowaniem

Przez dziesięciolecia poprawa wydajności procesora oznaczała zwiększenie szybkości zegara chipa. Korzyści dla użytkowników były natychmiast oczywiste: aplikacje działały szybciej. Ale szybszy chip zużywa więcej energii elektrycznej, wyczerpując baterie w urządzeniach mobilnych. W związku z tym producenci chipów przeszli na energooszczędne konstrukcje wielordzeniowe, w których wiele energooszczędnych procesorów na jednym chipie łączy się w celu odtworzenia wydajności pojedynczego, szybszego procesora (patrz Projektowanie pod kątem mobilności ) .





Niestety aplikacje w systemach wielordzeniowych nie działają automatycznie po dodaniu rdzeni. Oprogramowanie musi być napisane, aby wykorzystać moc przetwarzania równoległego. A pisanie programów, które działają wydajnie i stabilnie na wielu rdzeniach, jest trudne. Jeśli nie rozwiążemy tego problemu programistycznego, mówi Prith Banerjee, starszy wiceprezes ds. badań w Hewlett-Packard, użytkownicy nie zobaczą żadnej przewagi szybkości w nowych mikroprocesorach. Banerjee dodaje: To bardzo podstawowy problem.

STRZAŁ DANYCH

8,2 gigaherca Aktualny rekord szybkości dla mikroprocesora do komputerów stacjonarnych, osiągnięty przez entuzjastów, którzy przetaktowali chip zaprojektowany do pracy z prędkością trzech gigaherców. Aby zapobiec stopieniu się wióra, schłodzono go ciekłym azotem.

Obiecującym potencjalnym rozwiązaniem jest maksymalne wyciągnięcie ludzkich programistów z pętli: zamiast kazać poszczególnym programistom opracowywać, jak sprawić, by ich aplikacje działały na dwóch, czterech lub więcej rdzeniach, niechlujne szczegóły można pozostawić kompilatorom, oprogramowanie używane do konwersji języków programowania wysokiego poziomu na kod maszynowy zrozumiały dla komputera. Wszystkie największe firmy produkujące oprogramowanie i układy scalone, wraz z wieloma badaczami akademickimi, pracują nad opracowaniem kompilatorów, które poradzą sobie z takimi zadaniami. Największą przeszkodą jest to, że trudno jest zidentyfikować części programu, które nie zależą od innych części, tak aby rdzeń nie pozostał bezczynny, czekając na jakąś porcję danych. „Zwykłe przekonanie programistów do pisania czystszych programów, z dobrze zdefiniowanymi interfejsami między blokami kodu, znacznie ułatwiłoby pracę”, mówi Wen-mei Hwu, profesor inżynierii elektrycznej i komputerowej na Uniwersytecie Illinois. Szacuje jednak, że minie pięć lat, zanim przyjazne dla wielu rdzeni kompilatory i odpowiednie praktyki programistyczne rozprzestrzenią się w branży komputerowej.



ukryć