Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nowatorska sieć serwerów do obliczeń rozproszonych z pamięciami Flash

jacu007 27 Lip 2015 11:40 2100 6
  • Nowatorska sieć serwerów do obliczeń rozproszonych z pamięciami Flash
    Random Acces Memory, w skrócie RAM, to pamięć, gdzie komputery w większości przechowują dane aktualnie wykonywanych programów. Procesor może odczytywać dane z RAM-u dziesiątki tysięcy razy szybciej niż w przypadku dysku twardego komputera.

    Dzisiaj w czasach, gdy przetwarzamy duże ilości danych, coraz trudnej przechowywać je w pojedynczych kościach RAM. Przykładowo dane opisujące ludzki genom, zajęłyby pamięć RAM od 40 do 100 typowych komputerów.
    Pamięć Flash, wykorzystywana przez większość przenośnych urządzeń mobilnych, może stać się alternatywą dla typowych pamięci RAM dla aplikacji wykorzystujących duże ilości danych. Jest dziesięć razy tańsza i zużywa jedną dziesiątą mocy.

    Problemem jest jednak to, że jest dziesięć razy wolniejsza. Wydaje się, że to już nie będzie stanowiło takiego problemu. Na międzynarodowym sympozjum na temat architektury komputerowej, naukowcy z MIT zaprezentowali system, który dla kilku popularnych zastosowań z dużą ilością danych, pozwala pracować pamięci Flash tak efektywnie jak w przypadku pamięci RAM. Pozwala przy tym na zachowanie wszystkich oszczędności związanych z kosztami i energią.

    Na konferencji naukowcy przedstawili wyniki swojego eksperymentu pokazującego, że jeżeli serwery obsługujące obliczenia rozproszone, choćby 5% czasu przeznaczają na pobieranie danych, ich wydajność spada do takiego poziomu, że jest porównywalna z pamięciami Flash.

    Innymi słowy, nawet bez stosowania nowatorskich technik opracowanych przez naukowców, 40 serwerów z pamięciami RAM o pojemności 10 terabajtów, nie obsłuży obliczeń 10,5 terabajta danych lepiej niż 20 serwerów z pamięciami Flash o pojemności 20 terabajtów, zużywając przy tym znacznie więcej energii.

    Naukowcy twierdzą, że opracowana przez nich technologia nie ma stanowić zamiennika dla układów z pamięciami DRAM, ale można znaleźć wiele zastosowań, w których przyniesie ona znaczne korzyści.

    Naukowcy byli w stanie skonstruować sieć serwerów opartych na pamięci Flash, konkurencją dla sieci serwerów z pamięciami RAM, przenosząc część mocy obliczeniowej z serwerów na układy scalone kontrolujące dyski Flash. Poprzez wstępne przygotowanie niektórych danych na dyskach Flash, przed przesłaniem ich do serwerów obliczeniowych, obliczenia rozproszone mogą być wykonywane znacznie bardziej wydajnie. A ponieważ algorytmy wstępnego przygotowania danych są zaszyte w poszczególne układy scalone, można zrezygnować z obciążenia związanego z działaniem systemu operacyjnego czy utrzymywaniem systemu plików.

    Ze względu na wsparcie przez sponsorów, firmy Quanta, Samsung i Xilinx naukowcy zbudowali prototyp sieci obliczeniowej składającej się z 20 serwerów. Każdy z serwerów był podłączony do FPGA, chipu, który może być reprogramowalny do pracy jako pewien układ cyfrowy. Każda FPGA z kolei, była połączona z dwoma kościami pamięci Flash o pojemności 500 GB i dwoma FPGA w sąsiednich serwerach.

    Ponieważ FPGA zostały ze sobą połączone, tworzyły bardzo szybką sieć, która pozwala każdemu z serwerów na pobieranie danych z każdego dysku Flash. Kontrolowali oni także poszczególne dyski Flash, co nie jest takim prostym zadaniem. Kontrolery, współczesnych dysków Flash posiadają do ośmiu procesorów i gigabajt pamięci roboczej.

    Ostatecznie, FPGA wykonują również algorytmy odpowiedzialne za przygotowanie danych do obliczeń z dysków Flash. Naukowcy przetestowali trzy takie algorytmy, dostosowane do trzech różnych rodzajów zastosowań wykorzystujących duże ilości danych. Pierwszą jest wyszukiwanie zdjęć lub znalezienie wyników pasującego danego obrazu w dużej bazie danych. Drugim było wykonanie algorytmu PageRank of Google, który ocenia znacznie różniące się strony internetowe stosując te same kryteria. Trzecim był system do buforowania pamięci podręcznej Memcached.

    FPGA są około dziesięć razy wolniejsze niż specjalnie zaprojektowane układy scalone, ale są znacznie szybsze niż centralne jednostki sterujące, wykorzystujące oprogramowanie do wykonywania tych samych obliczeń.

    Po zaprogramowaniu FPGA, mogą prowadzić do tworzenia systemów, które tracą trochę wszechstronności, zapewniając jednoczenie oszczędności w postaci kosztów i energii.

    Źródło:
    http://phys.org/news/2015-07-network-exploits-cheap-power-efficient-memory.html

    Fajne! Ranking DIY
    O autorze
    jacu007
    Poziom 22  
    Offline 
    Specjalizuje się w: systemy mikroprocesorowe, raspberry pi
    jacu007 napisał 688 postów o ocenie 70, pomógł 0 razy. Mieszka w mieście Dąbrowa Górnicza. Jest z nami od 2007 roku.
  • #2
    speedy9
    Pomocny dla użytkowników
    jacu007 napisał:
    Pamięć Flash, wykorzystywana przez większość przenośnych uradzeń mobilnych, może stać się alternatywą dla typowych pamięci RAM dla aplikacji wykorzystujących duże ilości danych. Jest dziesięć razy tańsza i zużywa jedną dziesiątą mocy


    A o ile mniejsza jest jej żywotność?

    Systemy pracujące w RAM są oferowane przez wiele dużych firm, jak np. Oracle (Oracle Database In-Memory), SAP (HANA) i wątpię by miały zostać zastąpione przez rozwiązania FLASH. Jak zostało wspomniane w artykule FLASH może się sprawdzić w specyficznych zastosowaniach, ale biorąc pod uwagę, że serwer z 1,5 TB RAMu kosztuje <100k USD, to nie jest to ogromna cena jeśli komuś zależy na wydajności. A to jest prosty dwuprocesorowy serwer.
  • #3
    And!
    Admin grupy Projektowanie
    Bardzo ciekawe wyniki badań pokazujące możliwości nowych kierunku rozwoju.
    Z tego co zrozumiałem duże znaczenie miała możliwość szybkiej komunikacji między serwerami i dyskami innych serwerów dzięki FPGA i szybkiej magistrali.

    Rozwiązanie przypomina istniejące standardowe rozwiązania typu karty 10GBE lub FC w serwerach połączone do przełącznika SAN.
    Zamiast rozpraszać pamięci flash w serwerach można wykorzystać macierz AllFlash z kontrolerami bogato wyposażonymi w cache.
    Dzięki temu każdy serwer może sięgać do szybkiego zasobu udostępnianego przez wspólną macierz. Takie rozwiązanie można wykonać stosując standardowe technologie.

    Ciekawa jest wzmianka o wstępnej optymalizacji danych przez specjalizowane układy.
    Podobne technologie można spotkać w obecnych rozwiązaniach pamięci masowej (sprzętowa kompresja, deduplikacja, tiering).

    Zainteresowały mnie operacje nieosiągalne w obecnych tradycyjnych pamięciach masowych (znalezienie wyników pasującego danego obrazu w dużej bazie danych, PageRank). Wygląda na to że przed pamięcią masową stawiane są nowe zadania, nie tylko przechowywanie danych, ale także "rozumienie" danych oraz ich analiza.
    Można tutaj znaleźć niewielkie podobieństwo do zasady działania pamięci obiektowych, które m.in przechowują dane i metadane.

    Chętnie zapoznam się z materiałem źródłowym, szczególnie dot. magistrali łączącej układy FPGA.
  • #4
    speedy9
    Pomocny dla użytkowników
    Jakby się zastanowić to jest to rodzaj wirtualizacji przestrzeni dyskowej. VMware oferuje coś takiego pod nazwą Distributed Storage, gdzie lokalne zasoby dyskowe każdego z serwerów są łączone w SAN. Tylko, że w opisanym powyżej przykładzie ta wirtualizacja odbywa się w warstwie sprzętowej i jest wspomagana przez układu FPGA (szybkość). Zastanawia mnie jeszcze jeden fakt. Jeśli każdy układ FPGA łączy się z 2 sąsiadami, to co się dzieje jak się zepsuje? Czy to ma topologię okręgu?
  • #5
    Kużdo
    Poziom 20  
    speedy9 napisał:
    jacu007 napisał:
    Pamięć Flash, wykorzystywana przez większość przenośnych uradzeń mobilnych, może stać się alternatywą dla typowych pamięci RAM dla aplikacji wykorzystujących duże ilości danych. Jest dziesięć razy tańsza i zużywa jedną dziesiątą mocy


    A o ile mniejsza jest jej żywotność?

    Tym bym się nie martwił. Obecne dyski SSD mają gwarancję na setki TB danych przy wielkościach nie przekraczających nawet 1TB. Przykładowo mój Crucial BX100 250GB ma gwarancję na zapisanie 72TB danych, to jest 40GB dziennie przez 5 lat. Inne modele, np. MX200 250GB - 80TB; 500GB - 160TB; 1TB - 320TB. Więc prędzej wymienią te kości, niż one się zużyją.
  • #6
    speedy9
    Pomocny dla użytkowników
    Nie zgodzę się. Nie mówimy tutaj o zastosowaniach domowych a o przetwarzaniu ogromnych ilości danych, bo o tego typu systemach tutaj dyskutujemy. Z drugiej strony kontrolery w dyskach SSD, jak i wspomniane tutaj FPGA zapewniają równomierne zużycie komórek pamięci. W końcu dyski SSD są też stosowane w macierzach dyskowych w centrach danych. Niemniej jest to ciekawe zagadnienie i warto by chyba to było wziąć pod uwagę.
    Systemy oparte na pamięciach RAM zapewniają też korekcję błędów i wymianę uszkodzonych modułów bez wyłączania systemu (hot swap).
    Pomysł jest ciekawy i z zaciekawieniem będę śledził czy pojawiają się rozwiązania komercyjne tego typu.
  • #7
    Kużdo
    Poziom 20  
    Ja jestem świadom tego, że dyski SSD są do innego zastosowania (chociaż tak jak wspomniałeś, w serwerowniach też się je stosuje), ale chodziło mi o ogół, że pamięci Flash są jednak bardzo wytrzymałe pod względem żywotności i o to bym się nie martwił. A sam pomysł oczywiście jest ciekawy :)