Seminarium: Systemy Rozproszone
13 października 2022 12:15, sala 4070, transmisja online
Różne architektury sprzętowe posiadają różny model spójności pamięci. Swoje własne modele mają języki takie jak C, co również niekoniecznie idzie w parze z potrzebami programistów, w szczególności takich projektów jak jądro Linuksa.
Porządek na zależnościach jest to porządek, który ogranicza sposób w jakim da się zaobserwować stan pamięci z punktu widzenia różnych rdzeni procesora w trakcie wykonania programu.
Od dawna wśród programistów jądra istniała obawa przed kompilatorem, który inaczej rozumiejąc pojęcie spójności pamięci, w efekcie wyprodukuje błędny kod. Różne optymalizacje kompilatora mogą doprowadzić do sytuacji, w której mimo że w świetle modelu pamięci jądra Linuksa (z angielskiego LKMM) istnieje pewien porządek na zależnościach, po optymalizacjach kompilatora porządek ten zanika.
W trakcie prezentacji przybliżę na czym polegają różne założenia wchodzące w skład LKMM oraz jak się one porównują do standardu C11, a także opiszę metodę automatycznego wykrywania zepsutych porządków na zależnościach.
Zapraszam,
Michał Radwański
Bibliografia:
Aby wspierać silnie współbieżne aplikacje, standardowy scheduler Linuksa (CFS) rozprowadza zadania (przy ich tworzeniu i budzeniu) po rdzeniach systemu. Jednakże zostało zauważone, że w środowisku serwerowym taka strategia prowadzi do kierowania procesów do długo nie wykorzystywanych rdzeni, które działają z mniejszą częstotliwością. Prowadzi to do strat wydajności i energii.
W trakcie prezentacji przedstawię propozycję modyfikacji standardowego schedulera, tak aby starał się brać pod uwagę zmienne taktowanie rdzeni procesora, a także wydajność i pobór energii jakie modyfikacja ta osiąga w porównaniu do oryginalnego schedulera, a także innej modyfikacji tego schedulera (SMove).Zapraszam,
Maksymilian Grochowski
Bibliografia: