HPC

Opublikowane:

28.06.2024

Klastry Raspberry Pi i obliczenia o wysokiej wydajności.

Klastry Raspberry Pi i obliczenia o wysokiej wydajności.

Jak pewnie wiele osób wie, zacząłem programować w 1969 roku, dziurkując karty i korzystając z języka Fortran na komputerze IBM 1130, który uruchamiał tylko jeden program naraz i nie miał nawet systemu operacyjnego. W tamtym czasie komputery kosztowały mnóstwo pieniędzy i jeśli było się szczęśliwcem, który miał do któregoś z nich dostęp, było to prawdopodobnie w pracy lub na studiach. Jednak nie wszystkie uniwersytety i szkoły posiadały komputery. Często był to tylko terminal przyjmujący karty i drukarka mająca dostęp do komputera w innej lokalizacji.

Dzisiaj nie tylko większość ludzi może pozwolić sobie na zakup komputera (czasami otrzymując odświeżony sprzęt za darmo), ale komputery (i systemy operacyjne) są tak potężne, że mogą rozwiązywać dowolny problem dla nich zaprojektowany, pod warunkiem że mają czas i pamięć.

Oczywiście większość ludzi związanych z komputerami zna Raspberry Pi (RPi) i różne komputery jednopłytkowe (SBC), które pojawiły się w 2012 roku, oraz wiele projektów utworzonych z ich pomocą: małe serwery, stacje robocze i urządzenia zagnieżdżone.

Niemal od samego początku byli ludzie, którzy próbowali uzyskać klastry do obliczeń o wysokiej wydajności (HPC) w stylu Beowulf z RPi połączonych przez gniazda Ethernet. Przyglądałem się niektórym z wczesnych prób i uważałem je jedynie za próby udowodnienia, że „da się” lub elementy służące do nauki, ponieważ ilość pamięci RAM na każdej płytce, szybkość procesora, liczba rdzeni i kwestia adresowania 32-bitowego (przyznaję się do bycia 64-bitowym snobem) sprawiały, że większość mocy obliczeniowej każdej z płytek zużywana była na kwestie sieciowe, pozostawiając niewiele dla głównej aplikacji.

Jednak, jak typowy geek, kupiłem serię urządzeń Banan Pi (wspierających SATA do operacji I/O, w przeciwieństwie do USB 2.0 w RPi) i zbudowałem „wieżę” płytek, podłączoną do gigabitowego przełącznika, dwóch dysków SATA i zasilacza. Całość mieściła się w starej walizce. Na górze „wieży” umieściłem nawet płytkę Parallella od Adaptevy (dodawała ona 16-rdzeniowy procesor Epiphany i FPGA). Mogłem zabierać ten komputer na konferencje i składać Beowulfa w ciągu kilku minut.

Trochę się pobawiłem programując ten sprzęt, ale Banana Pi nie posiadają jakiejś szczególnej mocy obliczeniowej, dokładnie z tych powodów, o których pisałem wyżej. Zobaczyłem jednak, że „się da”.

Z czasem zmieniło się kilka rzeczy. Ilość pamięci RAM zwiększyła się, tak jak i liczba rdzeni oraz częstotliwość taktowania, a Fundacja Raspberry Pi wprowadziła moduły obliczeniowe (CM), podczas gdy płyty główne mogą lepiej wspierać cztery i więcej CM na płytce. Najnowsze zmiany w RPi obejmowały dodanie większej liczby portów USB 3.x oraz PCIe.

Teraz łączenie kilku RPi w konfiguracji Beowulf stało się „interesujące”, rozsądne finansowo i bardziej kompaktowe niż „wieża”, którą zbudowałem.

Przykładowo, do płyty głównej Turing Pi 2 można podłączyć cztery płytki CM4 lub ewentualnie mniej płytek CM4 i procesor/pamięć, aby uzyskać dodatkowe „interesujące” funkcje. Jeśli zamiast RPi CM4 użyjemy modułów Turing RK1, posiadających osiem rdzeni i do 32 GB pamięci RAM, możemy utworzyć naprawdę niezły serwer o niskim zużyciu mocy, mający w sumie 128 GB pamięci RAM.

Inny model, DeskPi Super6C pozwala na instalowanie do sześciu płytek CM4.

Jeśli chcielibyśmy zbudować „poważny serwer”, dostępnych jest wiele różnych konfiguracji sprzętowych, za pomocą których możemy to zrobić, i każda ma swoje wady i zalety, ale urządzenia SBC nie wymagają zbyt wiele mocy, mieszczą się w obudowie Mini-ITX i umożliwiają zapoznanie się i eksperymentowanie z technologiami takimi jak: Kubernetes, Docker, Nextcloud, TenserFlow i rozproszone programowanie równoległe.

Jak już napisałem na początku, współczesne urządzenia SBC są na tyle potężne, że uczenie się programowania z wykorzystaniem OpenMP, OpenMPI i innych równoległych, rozproszonych mechanizmów staje się czymś, co może realizować uczeń w liceum czy hobbysta. Dodatkowo możemy nabierać praktyki z technologiami takimi jak klastry Ceph (co jest bardzo interesujące) i Ansible. Są to umiejętności poszukiwane na dzisiejszym rynku pracy.

Idąc dalej z ideą „przetwarzania HPC na małym komputerze”, dochodzimy do rozwiązań firmy Ambedded z serwerami opartymi na ARM, mającymi zapasowe źródła zasilania i moduły przełączające. Tworzą one kompaktowe, niezawodne serwery, zużywające relatywnie niewiele mocy jak na swoją wysoką wydajność.

Oczywiście większość z tych pomysłów można też zrealizować za pomocą starych systemów, które pewnie znajdziecie w swoim domu, ale klastry RPi są naprawdę fajne... I w ten sposób przyznałem się do bycia geekiem.

maddog-2

Jon „maddog” Hall jest autorem, wykładowcą, informatykiem i jednym z pionierów Wolnego Oprogramowania. Od 1994 roku, kiedy po raz pierwszy spotkał Linusa Torvaldsa i ułatwił przeniesienie jądra na systemy 64-bitowe, pozostaje orędownikiem Linuksa. Obecnie jest prezesem Linux International®.

Autor: Jon „maddog” Hall

Aktualnie przeglądasz

Lipiec 2024 - Nr 245
LM245_Jul-2024

Top 5 czytanych

Znajdź nas na Facebook'u

Opinie naszych czytelników

Nagrody i wyróżnienia