Jump to content
Forum Kopalni Wiedzy
Sign in to follow this  
KopalniaWiedzy.pl

Intel ułatwi pracę programistom

Recommended Posts

Pojawienie się wielordzeniowych procesorów nie oznacza, że nasze komputery stają się znacznie bardziej wydajne. Procesory te trzeba oprogramować, a to potrafi niewielu programistów na świecie. Z jeszcze większymi problemami spotkamy się w przyszłości, gdy na rynek trafią układy o liczbie rdzeni wahającej się od 16 po kilkaset. Z wykorzystaniem potencjału takiej kości nie poradzi sobie żaden specjalista.

Problem ten próbują rozwiązać najwięksi gracze na rynku IT. Jeszcze w bieżącym roku Intel zaprezentuje swój projekt badawczy znano jako Ct (C for Throughput). To automatyczne narzędzie, które ma sprawić, że liczne kompilatory C i C++ będą współpracowały z procesorami wielordzeniowymi i umożliwią równoległe przetwarzanie.

Programista, by przygotować program do przetwarzania równoległego, musi najpierw zidentyfikować te fragmenty kodu, które najwięcej na tego typu obliczeniach zyskają, a następnie wyizolować je z całości. Dla każdej rodziny procesorów i dla różnej liczby rdzeni trzeba robić to oddzielnie.

Ct, jak zapewnia Intel, zrobi to wszystko automatycznie i zoptymalizuje kod do współpracy z wielordzeniowymi układami nawet bez konieczności jego ponownej kompilacji. Ct korzysta z techniki SIMD (Single Instruction, Multiple Data), która umożliwia osiągnięcie równoległego przetwarzania danych. Warto tutaj przypomnieć, że koncern próbuje zastosować SIMD również w sprzęcie.

Co więcej Ct jest kompatybilne wstecz z każdym programem napisanym dla procesorów x86. Z zalet układów wielordzeniowych będą mogli skorzystać też np. posiadacze oprogramowania z lat 80. ubiegłego wieku. Jak podkreśla Intel, Ct będzie działało z każdym procesorem x86, niezależnie od jego producenta.

Projekt Ct może przynieść Intelowi olbrzymie zyski. Powstał bowiem w dużej mierze z myślą o wykorzystaniu go w kości Larrabee, będącej połączeniem procesora (CPU) z procesorem graficznym (GPU). Larrabee będzie pierwszym samodzielnym układem graficznym Intela od czasu i740. Jego debiut będzie oznaczał, iż Intel stanie się bezpośrednim konkurentem Nvidii i AMD na rynku układów graficznych. Stąd też zapotrzebowanie na Ct. Przenosimy cały ekosystem x86 na rynek układów graficznych - stwierdził jeden z inżynierów Intela.

Na razie nie wiadomo, w ile rdzeni zostanie wyposażony Larrabee. Z nieoficjalnych informacji wynika, że kość, która zadebiutuje w przyszłym roku, będzie miała ich 16. Z kolei każdy z nich może obsługiwać 4 wątki. Oznacza to jednoczesną obsługę 64 wątków. Jeśli Prawo Moore'a ma nie stracić na ważności, to około roku 2013 na rynek powinny trafić układy obsługujące 256 wątków. Upowszechnienie się projektów takich jak Ct, czy konkurencyjne CUDA lub OpenCL pozwoli programistom nie przejmować się rosnącą liczbą rdzeni.

Share this post


Link to post
Share on other sites

Ach ten intel, i po co to ? I tak korzystam z visual studio i tam już na pewno m$ zadba o kompilator który automatycznie po wybraniu odpowiednich bloków kodu skompiluje je tak aby działały na maksymalnej ilości rdzeni. Teraz są 2, 4 rdzenie dostępne to jeszcze nie jest źle( dla programisty), ale gdy będzie ich 16 , 32 lub 128 to jest oczywiste że to musi robić kompilator bo nikt przy zdrowych zmysłach nie bedzie się pakował w ręczne oprogramowanie takiego czegoś.

Share this post


Link to post
Share on other sites

Ja się tak zastanawiam, w jakich typach oprogramowania wykorzystanie mocy wielu rdzeni przyda się konkretnie. Tak mi jakoś wychodzi, że są to (głównie, bo pewnie nie jedynie) zastosowania multimedialno-obliczeniowe, czyli te, które korzystają na przetwarzaniu przez karty graficzne (streamy i inne cuda ;)), które wielordzeniowe są z natury rzeczy. Czy zatem wielordzeniowość CPU przyniesie jakieś namacalne korzyści przeciętnemu użytkownikowi? Czy nie lepiej od razu ujednolicić standardy i zrzucić takie zadania na GPU?

 

(Oczywiście duża liczba rdzeni może być doskonała w konkretnych zastosowaniach, np. serwerowych, ale pisałem rozmyślnie ograniczając się do przeciętnego, domowego desktopa/laptopa/netbooka).

 

Może się mylę, może skomentuje to jakiś zaawansowany programista?

Share this post


Link to post
Share on other sites

Ekstra, można będzie bez problemu odpalać aplikacje stworzone na np 2 rdzenie na maszynach 20 rdzeniowych uzyskując prawie 10 krotne zwiększenie wydajności (oczywiście nie we wszystkich zastosowaniach).

 

Ja się tak zastanawiam, w jakich typach oprogramowania wykorzystanie mocy wielu rdzeni przyda się konkretnie.

W uproszczeniu można powiedzieć - oprogramowaniu które wymaga dużo mocy obliczeniowej. Wszelkiego rodzaju przetwarzanie danych. W domowych zastosowaniach takie operacje to głownie multimedia ale nie tylko, zaawansowane programy obliczeniowe, gry, aplikacje bazodanowe, symulacyjne, graficzne, antywirusy itd Czyli wszystko to co zamula na słabszym sprzęcie  ;)

Share this post


Link to post
Share on other sites

Standardy POSIX Threads czy OpenMP nie są nowością. Winę ponoszą programiści niechętni do wyodrębniania nadających się fragmentów. Tak samo z SIMD korzysta wiekowe MMX czy SSE.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Similar Content

    • By KopalniaWiedzy.pl
      Podczas Fifth International Symposium on Networks-on-Chip 2011 specjaliści z MIT-u zdobyli nagrodę za najlepsze opracowanie naukowe symulatora układu scalonego. Ich program Hornet modeluje działanie wielordzeniowego procesora znacznie lepiej niż inne tego typu oprogramowanie. Potrafił znaleźć w oprogramowaniu błędy, których inne symulatory nie zauważyły.
      Teraz Hornet został znakomicie udoskonalony i wyposażony w nowe funkcje. Jego nowa wersja potrafi symulować zużycie energii, komunikację między rdzeniami, interakcję pomiędzy CPU a pamięcią oraz obliczyć czas potrzebny na wykonanie poszczególnych zadań.
      Symulatory są niezwykle ważne dla firm produkujących układy scalone. Zanim przystąpi się do produkcji kości przeprowadzane są liczne testy ich działania na symulatorach.
      Dotychczasowe symulatory przedkładały szybkość pracy nad dokładność. Nowy Hornet pracuje znacznie wolniej niż jego starsze wersje, jednak dzięki temu pozwala na symulowanie 1000-rdzeniowego procesora z dokładnością do pojedynczego cyklu. Hornet jest nam w stanie wyliczyć, że ukończenie konkretnego zadania będzie np. wymagało 1.223.392 cykli - mówi Myong Cho, doktorant z MIT-u.
      Przewaga Horneta nad konkurencją polega też na tym, że inne symulatory dobrze oceniają ogólną wydajność układu, mogą jednak pominąć rzadko występujące błędy. Hornet daje większą szansę, że zostaną one wyłapane.
      Podczas prezentacji Cho, jego promotor profesor Srini Devadas i inni studenci symulowali na Hornecie sytuację, w której wielordzeniowy procesor korzysta z nowej obiecującej techniki przetwarzania danych pacjentów. Hornet zauważył, że niesie ona ze sobą ryzyko wystąpienia zakleszczenia, czyli sytuacji, w której różne rdzenie, aby zakończyć prowadzone obliczenia, czekają nawzajem na dane od siebie. Powoduje to, że zadania nie mogą być zakończone, gdyż rdzenie nawzajem siebie blokują. Żaden inny symulator nie zasygnalizował tego problemu. Hornet pozwolił też na przetestowanie zaproponowanego przez naukowców sposobu na uniknięcie zakleszczenia.
      Zdaniem jego twórców Hornet, ze względu na swoje powolne działanie, posłuży raczej do symulowania pewnych zadań, a nie działania całych aplikacji. Przyda się zatem tam, gdzie zajdzie potrzeba upewnienia się, czy nie występują żadne nieprawidłowości czy też do statystycznego zbadania możliwości wystąpienia błędów.
    • By KopalniaWiedzy.pl
      Asustek zaprezentował biurkowy superkomputer ESC1000. Urządzenie powstało we współpracy z Nvidią i tajwańskim Narodowym Uniwersytetem Chiao Tung. Zostało ono stworzone z myślą o zastosowaniu przez organizacje rządowe, naukowe i badawcze.
      ESC1000 korzysta z procesora graficznego Tesla oraz technologii CUDA i zapewnia wydajność do 1,1 teraflopsa. To olbrzymia moc, zważywszy, że na ostatnim miejscu listy 500 najpotężniejszych superkomputerów znajduje się maszyna o wydajności 17,09 TFlops.
      Za ESC1000 trzeba będzie zapłacić co najmniej 14 778 dolarów. Najbardziej wydajna wersja komputera będzie kosztowała niemal 21 000 USD.
    • By KopalniaWiedzy.pl
      Nvidia zaprezentowała nową architekturę procesorów graficznych. Fermi ma być nie tylko następcą obecnie wykorzystywanej architektury G80. To także pierwszy procesor graficzny ogólnego przeznaczenia.
      Jen-Hsun Huang podczas wstępnej prezentacji nowej architektury przedstawił ją jako architekturę GPU, jednak Fermi to coś więcej niż procesor graficzny. Dlatego też Nvidia pozycjonuje go bardzo ostrożnie, wskazując na jego przydatność we współpracy z CUDA.
      Procesory wykonane w architekturze Fermi będą zawierały 512 rdzeni CUDA, czyli dwukrotnie więcej niż obecne GPU Nvidii, oraz 3 miliardy tranzystorów. Firma zapewnia, że udało się jej ośmiokrotnie zwiększyć szybkość wykonywania operacji zmiennoprzecinkowych podwójnej precyzji.
      Kość składa się z 16 multiprocesorów strumieniowych (SM), na które przypadają po 32 rdzenie. Każdy z nich ma do dyspozycji 64 kilobajty przestrzeni pamięci L1, którą można skonfigurować albo jako 48 kB pamięci współdzielonej + 16 kB cache L1 lub też 16 kB współdzielone + 48 kB L1. Na każdy SM przypada również 768 kilobajtów współdzielonej pamięci L2.
      Nvidia zastosowała też zunifikowaną przestrzeń adresową, dzięki czemu Fermi w pełni wspiera oprogramowanie napisane nie tylko w C, ale również w C++. Usprawnieniu operacji i lepszemu wykorzystaniu C i C++ służy też zaimplementowanie technologii Nvidia Parallel DataCache, dzięki której oba rodzaje pamięci cache obsługują wszystkie przeprowadzane operacje, które są dokonywane w ściśle określonym porządku. Dzięki wykorzystaniu pamięci L1 do przechowywania danych rejestru (wcześniej były one przechowywane bezpośrednio w pamięci RAM) uzyskano znaczne skrócenie czasu dostępu do danych. Natomiast współdzielona pamięć L2 umożliwia błyskawiczną wymianę danych pomiędzy poszczególnymi SM.
      Fermi to pierwszy układ graficzny, w którym zaimplementowano obsługę ECC (Error Correcting Code), chroniącą dane przed błędami powodowanymi przez wpływ promieniowania kosmicznego.
      Jedną z ważnych technologii wykorzystanych w Fermim jest Nvidia GigaThread Engine. Pozwala on na jednoczesne wykonywanie różnych obliczeń w kontekście tej samej aplikacji. Dzięki temu programy wykorzystujące liczne mikrojądra mają do dyspozycji całą dostępną moc obliczeniową. W przypadku tradycyjnego, sekwencyjnego przetwarzania mikrojąder, wykorzystuje się tylko część dostępnej mocy.
      Fermi współpracuje z 384-bitowymi kośćmi GDDR5 i jest w stanie obsłużyć do terabajta pamięci. Obsługuje technologie DirectX 11, OpenGL 3.2 oraz OpenCL.
      Przy okazji prezentacji architektury Fermi poinformowano, że Nvidia i Microsoft stworzyły środowisko programistyczne Nexus. Zostało ono opracowane na potrzeby masowych obliczeń równoległych i jest zintegrowane z Microsoft Visual Studio. Nexus będzie, oczywiście, korzystał z możliwości Fermiego.
      Producent Fermiego podkreśla jego przydatność w obliczeniach naukowych i związek z CUDA, jednak z drugiej strony porównuje go do G80. Fermi może więc być układem wykorzystywanym zarówno superkomputerach jak i pecetach miłośników gier komputerowych.
    • By KopalniaWiedzy.pl
      Microsoft kupił wydziały technologiczne firmy Interactive Supercomputing (ISC), która specjalizuje się w technologiach przetwarzania równoległego dla desktopów, a jej rozwiązania umożliwiają łatwiejszy dostęp do wysoko wydajnego przetwarzania danych.
      "Microsoft planuje zintegrowanie technologii ISC w przyszłych wersjach swoich produktów. W najbliższych miesiącach dostarczymy więcej informacji na temat tego, w jakich produktach i w jaki sposób będzie przeprowadzania integracja" - czytamy w oświadczeniu koncernu. Firma podkreśla, że nowe technologie pozwolą jej na udoskonalenie produktów skierowanych na rynek HPC (High-Perfomance Computing).
      Bill Blake, były prezes ISC, wraz z zespołem inżynierów specjalizujących się w przetwarzaniu równoległym i HPC, dołączyli do microsoftowego New England Research & Development Center w Cambridge, w stanie Massachusetts.
    • By KopalniaWiedzy.pl
      AMD pracuje nad wielordzeniowym układem serwerowym Interlago, który pojawi się na rynku w 2011 roku. Kość będzie miała od 12 do 16 rdzeni. Wcześniej, bo w pierwszym kwartale 2010 zadebiutuje 12-rdzeniowy Magny-Cours.
      Interlago będzie przeznaczony dla serwerów korzystających z dwóch lub czterech procesorów, a więc dla maszyn z maksymalnie 64 rdzeniami obliczeniowymi. Wiadomo, że będzie on stanowił część serwerowej rodziny Opteron 6000.
      Głównym konkurentem Opterona są intelowskie Xeony. Na razie jednak, Intel nie zapowiedział żadnego Xeona, którego liczba rdzeni mogłaby dorównać Interlago. Wiadomo, że w 2010 zadebiutuje Xeon Nehalem-EX z 8 rdzeniami. Intel przygotowuje też wielordzeniowy układ Larrabee, jednak nie będzie to typowa kość serwerowa, a procesor przeznaczony dla superkomputerów specjalizujących się w renderowaniu grafiki trójwymiarowej.
      AMD, jak widać, ma ambitne plany, jednak specjaliści zwracają uwagę, że firma na razie nie wspomina nic o wielowątkowości swoich układów. Nie wiadomo zatem, ile każdy z rdzeni będzie obsługiwał wątków.
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...