Tematy prac magisterskich

Poniższe tematy zostały zaproponowane dla studiów stacjonarnych.

Zainteresowanych proszę o kontakt: Contact Information.


All of the master thesis proposals listed below concern persistent memory, a novel technology that works similarly to DRAM (is fast and byte-addressable) but its contents are not lost upon shutdown or power failure (so in this respect it behaves similarly to HDDs/SSDs).

Recently we’ve got hold of a few servers equipped with Intel Optane DC Persistent Memory Modules and we experiment with them a lot!

In case you’re interested in any of the proposals, please drop me an email: Contact Information.


Temat: Algorytmy sortowania zewnętrznego dla danych przechowywanych w pamięci trwałej

Temat (en): External sort algorithms for data maintained in persistent memory

Cel pracy: Pamięć trwała (persistent memory, PM, zwana też non-volatile memory, NVM) to nowa technologia, która łączy w sobie najlepsze cechy pamięci operacyjnej (niski czas dostępu, dostęp losowy) i dysków twardych (duży wolumen, trwałość). Dostęp do pamięci trwałej odbywa się poprzez biblioteki programistyczne, takie jak PMDK (dla języka C++). Celem pracy jest zaproponowanie i zbadanie nowych algorytmów sortowania zewnętrznego dla danych przechowywanych w pamięci trwałej. Dla porównania, zaproponowane algorytmy mają być również zaadaptowane do sortowania danych przechowywanych na dyskach SSD, do których można realizować dostęp bez użycia funkcji systemowych (przy pomocy biblioteki SPDK). Do testów udostępnione będą nowoczesne serwery wyposażone w moduły pamięci trwałej.

Dane wejściowe: Dokumentacja bibliotek dla PM (np. biblioteki PMDK), dokumentacja biblioteki SPDK, materiały od promotora.

Zadania: Przegląd istniejących algorytmów sortowania zewnętrznego, projekt i implementacja algorytmów sortowania zewnętrznego dla danych przechowywanych w pamięci trwałej, analiza wydajności zaproponowanych algorytmów w oparciu o przygotowane benchmarki, zaadoptowanie zaproponowanych algorytmów do sortowania danych przechowywanych na dyskach SSD.

Promotor: dr inż. Tadeusz Kobus, mgr inż. Maciej Kokociński


Temat: Dokładna analiza wykorzystania i wydajności mechanizmu RDMA w komputerach wyposażonych w pamięć trwałą

Temat (en): Usage patterns and performance analysis of the RDMA subsystem in machines equipped with persistent memory

Cel pracy: Pamięć trwała (persistent memory, PM, zwana też non-volatile memory, NVM) to nowa technologia, która łączy w sobie najlepsze cechy pamięci operacyjnej (niski czas dostępu, dostęp losowy) i dysków twardych (duży wolumen, trwałość). Dostęp do pamięci trwałej odbywa się poprzez biblioteki programistyczne, takie jak PMDK (dla języka C++). W szczególności, PMDK umożliwia wykorzystanie protokołu RDMA do realizacji szybkiego dostępu do pamięci trwałej innego komputera. Celem pracy jest dokładne zbadanie tego mechanizmu, w tym określenie właściwych wzorców użycia RDMA w systemach rozproszonych działających na wieloprocesorowych komputerach wyposażonych w pamięć trwałą, a także zbadanie wydajności tego mechanizmu. Do testów udostępnione będą nowoczesne serwery wyposażone w moduły pamięci trwałej.

Dane wejściowe: Dokumentacja bibliotek dla PM (np. biblioteki PMDK), materiały od promotora.

Zadania: Analiza wsparcia mechanizmu RDMA w bibliotece PMDK, określenie właściwych wzorców użycia RDMA w systemach rozproszonych działających na wieloprocesorowych komputerach wyposażonych w pamięć trwałą, zbadanie wydajności mechanizmu RDMA w oparciu o przygotowane benchmarki.

Promotor: dr inż. Tadeusz Kobus, mgr inż. Maciej Kokociński


Temat: Biblioteka bezpośredniego dostępu do pamięci trwałej (PM) w języku Java

Temat (en): Direct-access persistent memory Java library

Cel pracy: Pamięć trwała (persistent memory, PM, zwana też non-volatile memory, NVM) to nowa technologia, która łączy w sobie najlepsze cechy pamięci operacyjnej (niski czas dostępu, dostęp losowy) i dysków twardych (duży wolumen, trwałość). Dostęp do pamięci trwałej odbywa się poprzez biblioteki programistyczne, takie jak PMDK (dla języka C++). Celem pracy jest stworzenie biblioteki dla języka Java, która pozwalałaby na efektywny dostęp i zarządzanie pamięcią nieulotną. Do testów udostępnione będą nowoczesne serwery wyposażone w moduły pamięci trwałej.

Dane wejściowe: Dokumentacja bibliotek dla PM (np. biblioteki PMDK), dokumentacja języka Java, materiały od promotora.

Zadania: Przegląd istniejących bibliotek programistycznych dla pamięci trwałej, projekt i implementacja biblioteki w języku Java umożliwiającej efektywne zarządzanie pamięcią nieulotną bezpośrednio z poziomu języka Java, przetestowanie implementowanej biblioteki w oparciu o przygotowane benchmarki.

Promotor: dr inż. Tadeusz Kobus, mgr inż. Maciej Kokociński


Temat: Wykorzystanie pamięci trwałej do poprawienia wydajności klastra Ceph

Temat (en): Improving the performance of Ceph using persistent memory

Cel pracy: Pamięć trwała (persistent memory, PM, zwana też non-volatile memory, NVM) to nowa technologia, która łączy w sobie najlepsze cechy pamięci operacyjnej (niski czas dostępu, dostęp losowy) i dysków twardych (duży wolumen, trwałość). Ceph to otwartoźródłowy system programowej pamięci masowej (software-defined storage, SDS). Klastry Ceph składają się z niezależnych maszyn, które są odpowiedzialne za przechowywanie i udostępnianie danych zgodnie z zadanym poziomem replikacji. Celem pracy jest skonfigurowanie klastra Ceph na serwerach wyposażonych w pamięć trwałą, tak by w najwyższym stopniu wykorzystać jej zalety, oraz zbadanie wpływu pamięci trwałej na wydajność.

Dane wejściowe: Dokumentacja systemu Ceph, materiały od promotora.

Zadania: Przegląd silników magazynowania Ceph, instalacja i konfiguracja klastra Ceph, kompleksowa analiza wydajności klastra w różnych konfiguracjach.

Promotor: dr inż. Tadeusz Kobus, mgr inż. Maciej Kokociński