Seminarium: Systemy Rozproszone
27 października 2022 12:15, sala 4070, transmisja online
Hubert Badocha, Jagoda Kamińska



Compact NUMA-aware locks



Blokada jest jednym z najbardziej podstawowych elementów służących do budowania systemów wielowątkowych. Wymaganiem jądra Linuxa od blokady jest aby zajmowała ona tylko 4 bajty jako, że znajduję się ona w każdym inodzie.

W systemach wieloprocesorowych występuje problem z niejednolitym czasem dostępu do pamięci. Jeżeli odwołania nie są w większości do lokalnej pamięci strata wydajności jest na takich systemach bardzo duża. Implementacja blokady na taką architekturę jest trudna i większość znanych rozwiązań przed tą pracą miała rozmiar liniowy w zależności od liczby procesorów lub słabą wydajność.

Przedstawię blokadę która zajmuję tylko 4 bajty pamięci i jest wydajna dla systemów zarówno z jednolitym jak i niejednolitym dostępem do pamięci.

Zapraszam,
Hubert Badocha



Bibliografia:





Memory-mapped I/O on steroids



W ostatnich czasach jesteśmy świadkami stablinego rozwoju możliwości dysków. W szczególności stają się one coraz szybsze, w takim stopniu, że systemy operacyjne nie nadążają i operacje wejścia/wyjścia potrafią stać się wąskim gardłem. Aktualnie używane metody synchronicznego dostępu do danych na dysku to korzystanie ze standardowych syscalli (open, read, write itd.) z cache'em zlokalizowanym w jądrze lub w przestrzeni użytkownika oraz bezpośrednie mapowanie pamięci do przestrzeni dyskowej. Nie ma jednak rozwiązania idealnego, każda z tych opcji ma swoje wady i zalety.

Opowiem o bibliotece Aquila, która umożliwia aplikacjom intensywnie korzystającym z zasobów dyskowych na mapowanie pamięci w nowy sposób, który łączy to co najlepsze z wspomnianych metod wejścia/wyjścia potencjalnie pogarszając wydajność w innych obszarach.

Zapraszam,
Jagoda Kamińska



Bibliografia: