Kiedy budowanie klastra w chmurze jest tańsze niż budowanie go w moim laboratorium do symulacji MD?

23

Amazon EC2 Compute Cluster kosztuje około $ 800- $ 1000 (w zależności od cyklu pracy) na rdzeń procesora fizycznego ciągu 3 lat. Podczas naszej ostatniej rundy akwizycji sprzętu moje laboratorium wybrało sprzęt o wartości 48 rdzeni bardzo podobny do klastrów Amazon za około ~ 300 USD za rdzeń.

Czy coś mi umyka? Czy są jakieś sytuacje, w których ekonomicznie sensowne jest budowanie klastra w chmurze do zadań o wysokiej mocy procesora, takich jak symulacje dynamiki molekularnej? A może zawsze lepiej jest mi samemu zbudować i opiekować się maszyną?

(Powinienem wspomnieć, że moje laboratorium nie płaci za prąd w naszej serwerowni (przynajmniej nie bezpośrednio), ale nawet z tą korzyścią Amazon nadal wydaje się niezwykle drogi).

tel
źródło
2
Mogę ci powiedzieć, że brakuje Ci kosztów pracy związanych z administracją i utrzymaniem klastra. W środowisku akademickim ktoś musi być administratorem klastra i wykonywać całą pracę, taką jak aktualizacje i uaktualnienia systemu operacyjnego, instalacja nowego oprogramowania, wsparcie techniczne w przypadku awarii klastra i tak dalej. Te zadania są niewdzięczne i w zależności od umiejętności administratora mogą wymagać dużo czasu. Klaster EC2 zmniejszyłby liczbę roboczogodzin potrzebnych do utrzymania klastra.
Geoff Oxberry
1
Cóż, oczywiście masz tanio sprzęt. Obliczyłem koszty w ciągu 3 lat dla 192-rdzeniowego klastra w moim poprzednim miejscu pracy i okazało się, że wynosi ono ponad 850 USD na rdzeń rocznie. Nie wspominając już o wszystkich problemach, jakie mieliśmy z systemem zasilania i chłodzeniem ...
Hristo Iliev
@GeoffOxberry Dobrze rozumiesz koszty pracy. W moim laboratorium jestem administratorem, więc nie myślę o takich rzeczach. Choć czasami jest to frustrujące, jest to praca miłości. Gdybym miał gotówkę i gdzieś ją położyć, postąpiłbym zgodnie z (rzadkimi) instrukcjami na tym blogu i spróbowałem zbudować własnego Watsona.
tel
@HristoIliev Nawet nie sądzę, że to było tak tanie. Jeśli chcesz przejąć „lekko używane” klastry od Dell, możesz obniżyć koszty do około 200 USD za rdzeń. Czy możesz mi powiedzieć więcej o sprzęcie w swoim poprzednim miejscu pracy?
tel
1
Jest to specjalnie zbudowany system z 12 podwójnymi podwoziami Xeon Supermicro (24 węzły, 48 E5420s) z 16 GiB ECC RAM na każdym węźle, jedno jedno gniazdo Nehalem z 2 Tesla M2090s, 24-portowy przełącznik InfiniBand, jeden serwer plików z 4 dyskami, dwoma zasilaczami UPS 10 kVA, dwoma klimatyzatorami. Uzyskaliśmy go w kilku fazach w ciągu trzyletniego okresu projektu. Nie jest to najwyższy z największych, ale nadal ~ 100 000 EUR ogółem (najlepsze ceny akademickie w Bułgarii).
Hristo Iliev

Odpowiedzi:

15

Moim zdaniem główną zaletą korzystania z zasobów opartych na chmurze jest elastyczność, tzn. Jeśli masz zmienne obciążenie, płacisz tylko za to, czego potrzebujesz.

Jeśli tak nie jest w twojej aplikacji, tzn. Wiesz, że będziesz mieć wymierne i stałe obciążenie pracą, prawdopodobnie lepiej jest zbudować własny klaster. W chmurze płacisz za elastyczność, a jeśli nie potrzebujesz elastyczności, płacisz za coś, czego nie potrzebujesz.

Jeśli twoje obciążenie jest elastyczne, ale nieco intensywne i opiera się na pewnych funkcjach sprzętowych (patrz odpowiedź aeismail), możesz spróbować udostępnić klaster innym osobom na uniwersytecie, aby amortyzować bezczynne cykle. Moja stara uczelnia prowadzi taki wspólny klaster z „modelem akcjonariuszy”, w którym każdej grupie gwarantuje się udział mocy obliczeniowej proporcjonalny do ich inwestycji w sprzęt, a każdy z nich może korzystać z bezczynności. Jedyną trudnością jest centralizacja administracji klastra.

Pedro
źródło
3
Natychmiast, przy czym klucz jest „kwantyfikowalny i stały”. Zwykle obciążenie pracą znacznie się różni i jest całkiem możliwe, że podszewka sprawi, że koszt ten będzie znacznie wyższy niż 300 USD / rdzeń. Ponadto konfigurując chmurę obliczeniową można w razie potrzeby tymczasowo skalować do większej liczby instancji (tydzień przed konferencją?).
Phil H
1
+1 za to. Moje użycie klastrów zmienia się z 0 na przypadek „Zrobiłeś co !?”. Nie mogę sobie pozwolić na zapłacenie za obecność drugiego, ilekroć jest to potrzebne.
Fomite
7

Podczas przetwarzania w chmurze za pomocą symulacji MD należy się martwić. Na przykład musisz się martwić fizycznym układem procesorów w farmie serwerów, w której będą wykonywane te zadania. Powodem jest to, że w zależności od wielkości twoich symulacji i rodzaju wykonywanych obliczeń (na przykład systemów z elektrostatyką), możesz być bardzo zależny od FFT - i popychając elektrony do różnych procesorów w gigantycznej gromadzie może stać się bardzo czasochłonną częścią całkowitego czasu obliczeniowego.

Ponadto, w przypadku czegoś tak intensywnego jak MD, musisz upewnić się, że masz szybkie połączenia do przesyłania i pobierania z serwerami, a także rozsądne limity przechowywania danych. W przeciwnym razie znaczna część oszczędności może zostać pochłonięta przez utraconą wydajność i opłaty za przechowywanie.

Za to, co jest warte, nasz instytut właśnie kupił około ~ 240 rdzeni dla naszego lokalnego klastra, kosztem poniżej 500 € za rdzeń. Koszt ten obejmuje hosting i administrację oraz usługi na naszym kampusie przez cztery lata. W ujęciu rocznym wydaje się to absurdalnie tanie. Myślę, że to chyba najlepszy z obu światów - dostęp lokalny, ale profesjonalnie utrzymany bez potrzeby posiadania własnego zespołu IT.

eeismail
źródło
5

Nie mam doświadczenia z pierwszej ręki z usługami w chmurze, takimi jak EC2 Amazon, ale rzeczywisty koszt na rdzeń jest prawdopodobnie znacznie większy niż cytujesz: jest to koszt początkowego zakupu, energii elektrycznej, chłodzenia, miejsca w budynku, wymiany sprzętu. Plus koszty administracji: konfiguracja systemu operacyjnego i usług klastrowych, aktualizowanie systemu operacyjnego, rozwiązywanie problemów z kolejką itp. W ogóle nie byłbym zaskoczony, gdyby suma tego wszystkiego była dwukrotnie wyższa od początkowego kosztu zakupu. Oczywiście zyskujesz elastyczność.

Dla mnie model sprowadza się do skalowania: jeśli masz naprawdę duży klaster (1000 rdzeni lub więcej), możesz amortyzować czas pracy, naprawy, administrację systemu, ponieważ jest wystarczająco dużo pracy, aby utrzymać profesjonalistę. Jeśli masz mały klaster, w którym nie warto zlecać tego dedykowanej osobie, prawdopodobnie sprawisz, że zrobi to ktoś, kogo pierwsza praca powinna polegać na nauce, w takim przypadku czas tej osoby jest słabo poświęcony na takie zadania administracyjne. Właśnie tam świecą usługi na żądanie, takie jak serwery chmurowe.

Wolfgang Bangerth
źródło
W moim laboratorium energia elektryczna, chłodzenie i przestrzeń dla naszego klastra są opłacane z cięcia, które nasz uniwersytet pobiera z naszych dotacji na opłaty za wyposażenie. To cięcie jest takie samo, niezależnie od tego, czy prowadzimy klaster, czy nie. Czy wiesz, czy na większości uniwersytetów jest podobna sytuacja, czy też większość laboratoriów utknęła płacąc za chłodzenie itp. Bezpośrednio z kieszeni?
tel
1
Wierzę, że większość laboratoriów ma taki sam układ jak twoje, ale i tak byłoby ignorowanie tych kosztów. Ktoś będzie musiał je wziąć na barki, nawet jeśli to nie ty osobiście. Może warto poprosić wydział / uniwersytet o uzyskanie większej części kosztów pośrednich zwróconych, jeśli zgodzisz się zbudować klaster wirtualnie w chmurze, a nie fizycznie w kampusie.
Wolfgang Bangerth
4

Jako uzupełnienie niektórych już doskonałych odpowiedzi, należy wziąć pod uwagę jeszcze jeden czynnik:

  • Bez względu na koszty, jak zamierzasz za to zapłacić?

Spotkałem nietrywialną liczbę dotacji, które w żadnym wypadku nie pokryją kosztów sprzętu, ale zapłacą za czas obliczeniowy na czymś takim jak EC2. Tak więc w pewnych okolicznościach finansowania, chociaż możesz być w stanie sfinansować mały klaster „testbed” za pomocą funduszy niestrukturalnych lub pakietu startowego laboratorium, w przypadku projektów na większą skalę może to być jedyny sposób na sfinansowanie kosztów przetwarzania.

Rozważmy NIH:

ADP / Usługi komputerowe: Usługi, które tu zamieszczasz, powinny dotyczyć określonych usług komputerowych - takich jak rezerwowanie czasu obliczeniowego na superkomputerach lub pozyskiwanie specjalistycznego oprogramowania do obsługi statystyk. Ta sekcja nie powinna obejmować standardowego komputera biurowego, laptopa ani standardowego wsparcia technicznego zapewnianego przez twoją instytucję. Tego rodzaju opłaty powinny wynikać z kosztów przychodów i wydatków.

Chociaż możliwe jest umieszczenie maszyn klastrowych w kategorii sprzętu o wartości ponad 5000 USD, i można to uzasadnić, znalazłem zarówno recenzentów, którzy są w nim zaniepokojeni, jak i uniwersytety, które są niepewne co do bieżących kosztów utrzymania takiego system.

Niektóre dotacje są jeszcze surowsze. Jeden grant, który obecnie mam, brzmi następująco:

Funduszy nie można również wykorzystać na sprzęt komputerowy

Często po prostu łatwiej jest uzyskać klaster opłacony kosztami bezpośrednimi, jeśli jest oparty na EC2 lub jednym z jego wielu analogów, niż faktycznie kupuje sprzęt, szczególnie jeśli Twoja instytucja jest skąpa na koszty pośrednie. To może nie dotyczyć ciebie, ale tak jest w przypadku niektórych.

Fomite
źródło
Myślę, że to nie jest dobry argument. Znam system finansowania tylko w Stanach Zjednoczonych, ale jeśli wpiszesz pewną sumę pieniędzy w kategorię „Sprzęt”, możesz użyć go do zakupu klastra. Oczywiście, jeśli ta kategoria jest pusta, to poprosiłeś o niewłaściwy zestaw dolarów. Sprzęt ma tę zaletę, że jeśli jest to pojedynczy sprzęt, którego cena zakupu przekracza 5 000 $, nie płacisz za niego w ogóle (przynajmniej na naszej uczelni).
Wolfgang Bangerth
@WolfgangBangerth Zobacz szczegóły mojej edycji - umieszczenie jej w kategorii „Sprzęt” może być niedozwolone.
Fomite
Tak, jeśli są to warunki, nic nie możesz zrobić. Ale odkryłem, że jeśli masz dobry powód, dla którego prosisz o pieniądze na sprzęt w ramach grantu, to recenzenci zwykle idą z tym - zwykle nie jest to duża część ogólnej sumy. Oczywiście, jeśli pieniądze nie zostały początkowo zapisane w budżecie, po tym fakcie nic nie można zrobić.
Wolfgang Bangerth,
0

Istnieje już wiele boskich odpowiedzi. Chcę tylko dodać dwa małe punkty.

1.) Wiem, że IBM oferuje coś podobnego. Dlatego w zależności od aplikacji warto porównać różne oferty. Nie tylko pod względem kosztów, ale także wyposażenia.

2.) Oczywiście większość laboratoriów jest zbyt mała, aby móc zainwestować we własny klaster. Zatem pytanie brzmi, czy nie jest możliwe zebranie kilku laboratoriów razem i zainwestowanie w klaster, który jest wspólny dla różnych laboratoriów. Ma to, oprócz oczywistego efektu podziału kosztów, również zaletę bardziej równomiernego rozkładu obciążenia.

Azrael3000
źródło