Seminarium: Systemy Rozproszone
17 lutego 2011, godzina 12:15, sala
Zarządzanie obliczeniami na tysiącach maszyn to trudne zadanie. By uwolnić od niego programistę aplikacji wprowadza się kolejne poziomy abstrakcji. Takie abstrakcje pozwalają ukryć różnice między rdzeniami obliczeniowymi czy ich liczbę, zapewnić bezpieczeństwo sekcji krytycznych i spójność komunikacji. Są one nieodzowne dla szybkiego tworzenia poprawnych aplikacji wysokiej wydajności na potrzeby współczesnego rynku. Niestety, ukrycie części problemów przed programistą musi wiązać się z pewnymi kosztami.
Popularny obecnie trend to ekstremalne uproszczenie programowania za koszt zauważalnego zmniejszenia siły ekspresji. Sztandarowym przykładem jest tu MapReduce - ten elegancki model pozwala uniknąć zupełnie zakleszczeń czy problemów żywotności, usuwa też zupełnie komunikację ze strefy ingerencji programisty. Ceną tego jest jednak ograniczenie się wyłącznie do schematu scatter-gather. Praktyka pokazała, że schemat ten jest niewystarczający dla wielu napotykanych problemów, czy to pod względem kosztu opracowania mieszczącego się w tym schemacie rozwiązania, czy też z powodu niskiej wydajności, wynikającej z ograniczonej komunikacji w tym modelu.
Na seminarium opowiem o dwóch stosunkowo nowych pomysłach, które zwiększają ekspresywność, jednocześnie zachowując łatwość programowania. Będą to:
Serdecznie zapraszam!
Tomasz Dubrownik