Open positions

We are looking for talented and well motivated candidates do join our team. We had a number of Postdoc and PhD positions in computer science, and a number of student positions for students enrolled in the BSc or MSc program at our university. Below is an annoucement with the currently open position, which is dedicated for students and researchers from Ukraine only:

All positions are based at Poznan University of Technology in Poznań, Poland. Poznań is the capital of the Wielkopolska region and is easily accessible from most European cities. Poznań has a large student population (there are several universities located in the city). The campus is a walking distance from Lake Malta (a popular recreational spot), large shopping malls and the old, historical town, with good public transport connection to other parts of the city.

Diploma projects

We welcome BSc and MSc students for training in our group on topics related to Persistent Datastore project, by doing a BSc or MSc thesis that is related to the project. Below are current diploma projects:

Prace magisterskie (MSc theses)

  1. Implementacja i ocena wydajności protokołu Warunkowego Atomowego Rozgłaszania.

    Implementation and performance evaluation of the Conditional Atomic Broadcast protocol

    Atomic Broadcast (albo Total Order Broadcast) to klasyczny protokół rozgłaszania wiadomości w systemie rozproszonym, gwarantujący globalne uporządkowanie rozsyłanych wiadomości. Odporna na awarie procesów implementacja protokołu Atomic Broadcast wymaga protokołu osiągania konsensusu (np. Paxos lub Raft).

    Celem projektu jest rozszerzenie istniejącej implementacji protokołu Paxos do Atomic Broadcast (co wymaga jedynie zmiany interfejsu) oraz do Conditional Atomic Broadcast (co wymaga zmian w protokole Paxos). Conditional Atomic Broadcast, to protokół, który umożliwia wstrzymanie dostarczenia wiadomości przez proces do czasu, gdy spełniony jest określony warunek. Obie implementacje należy porównać w klastrze komputerów wykonując szereg testów. W drugiej części projektu należy zastosować CAB w konkretnej aplikacji (do uzgodnienia z promotorem). Materiały wejściowe: artykuł opisujące protokół CAB, klaster komputerów na PP.

  2. [Temat zajęty]

    Implementacja i ocena wydajności protokołu replikacji Creek

    Implementation and performance evaluation of the Creek replication protocol

    Creek to nowy protokół, który pozwala zaimplementować np. zreplikowany magazyn danych klucz wartość, udostępniając dwa rodzaje operacji read/write: silne operacje, które gwarantują spójne odczyty i zapisy na wszystkich replikach, oraz słabe, ale za to szybkie operacje, gdzie odczytana wartość może nie być najbardziej aktualna, a zapisana wartość trafi ostatecznie do każdej z replik bazy danych, ale w sposób asynchroniczny.

    Celem projektu jest implementacja protokołu Creek i prostej zreplikowanej mapy klucz-wartość oraz eksperymentalna ewaluacja zaimplementowanego systemu w klastrze komputerów, używając prostych benchmarków. W pierwszym etapie projektu, implementacja Creek nie byłaby odporna na awarie procesów (replik). W drugim (opcjonalnym) etapie, Creek mógłby korzystać z protokołu CAB, który jest tematem innej pracy magisterskiej, co pozwoliłoby tolerować awarie replik. Materiały wejściowe: artykuł opisujące protokół Creek, klaster komputerów na PP.

  3. Implementacja i ocena wydajności protokołu Paxos ze zdalnym bezpośrednim dostępem do pamięci trwałej

    Implementation and evaluation of the Paxos protocol with remote direct memory access to persistent memory

    Paxos to klasyczny protokół osiągania konsensusu w systemie rozproszonym, w którym występują awarie procesów. Paxos pozwala na budowę systemów zreplikowanych, np. zreplikowanego magazynu danych typu klucz-wartość, gdzie każda z replik to maszyna stanowa, która przetwarza dokładnie taką samą sekwencję operacji deterministycznych, które zmieniają stan każdej z replik w dokładnie taki sam sposób. Repliki które uległy awarii po jakimś czasie są restartowane, odtwarzają swój stan, i nadganiają przetwarzanie do aktualnego stanu.

    Celem projektu jest zmodyfikowanie istniejącej implementacji protokołu Paxos wraz z mechanizmem odtwarzania stanu systemu po awarii z pamięci trwałej (ang. persistent memory, pmem), aby komunikacja między replikami korzystała z remote direct memory access (RDMA) zamiast tradycyjnych protokołów sieciowych, oraz przetestowanie systemu w środowisku rozproszonym. Promotor zapewni dostęp do klastra komputerów wyposażonych w pmem (Intel Optane DC PMM) i karty sieciowe z RDMA. Język programowania to C++ lub C.

  4. Implementacja i ocena wydajności regionów krytycznych bazujących na zamkach drobnoziarnistych i pamięci trwałej

    Implementation and evaluation of critical regions based on fine-grained locks for persistent memory

    W programowaniu współbieżnym, współbieżne dostępy do współdzielonych zasobów mogą prowadzić do nieoczekiwanego lub błędnego zachowania. Programista może korzystać z mechanizmów wzajemnego wykluczania, takich jak zamki (mutexes) lub monitory, i zaimplementować fragment kodu programu jako region krytyczny, który jest wykonywany przez tylko jeden proces w danym czasie. Pamięć trwała (ang. persistent memory, pmem) to pamięć podobna do pamięci DRAM, ale jej zawartość nie ginie przy utracie zasilania.

    Celem projektu jest opracowanie mechanizmu synchronizacji w formie wolnego od zakleszczenia regionu krytycznego w oparciu o zamki drobnoziarniste, przeznaczonego dla systemów wyposażonych w pamięć trwałą. Implementacja będzie korzystać z Persistent Memory Development Kit (PMDK), kolekcji bibliotek i narzędzi, które pozwalają na dostęp do pamięci trwałej. Promotor zapewni dostęp do klastra maszyn wyposażonych w pmem (Intel Optane DC PMM). Jezyk programowania to C++ lub C.

  5. [Temat nieaktualny]

    Ocena wydajności zdalnego bezpośredniego dostępu do pamięci trwałej dla zreplikowanych magazynów danych

    Ewaluation of remote direct access to persistent memory for replicated data stores

    Remote direct memory access (RDMA) to mechanizm zdalnego bezpośredniego dostępu do pamięci z pamięci jednego komputera do pamięci drugiego bez angażowania systemu operacyjnego każdego z nich. Pozwala to na tworzenie sieci o dużej przepustowości i małych opóźnieniach, co jest szczególnie przydatne w masowo równoległych klastrach komputerów. Pamięć trwała (ang. persistent memory, pmem) to pamięć podobna do pamięci DRAM, ale jej zawartość nie ginie przy utracie zasilania. Persistent Memory Development Kit (PMDK) to kolekcja bibliotek i narzędzi, które pozwalają na dostęp do pamięci trwałej.

    Celem projektu jest rozpoznanie mechanizmu RDMA wspieranego przez PMDK. W pierwszym etapie projektu należy porównać szybkość RDMA z przykładowymi bibliotekami do komunikacji sieciowej dostarczonymi przez promotora. W drugiej części planuje się zastosowanie RDMA do implementacji prostego zreplikowanego magazynu danych, którego kod dostarczy promotor. W celu przeprowadzenia testów Promotor zapewni dostęp do klastra maszyn wyposażonych w pmem (Intel Optane DC PMM) i karty wspierające RDMA. Jezyk programowania to C++ lub C.

  6. [Temat nieaktualny]

    Ocena przydatności narzędzi pmemcheck i pmreorder do wspierania rozwoju oprogramowania dla pamięci trwałej

    Evaluation of pmemcheck and pmreorder tools for supporting development of persistent-memory-enabled software

    Pamięć trwała (ang. persistent memory - PMEM) to pamięć podobna do pamięci DRAM, ale jej zawartość nie ginie przy utracie zasilania. Persistent Memory Development Kit (PMDK) to kolekcja bibliotek i narzędzi, które pozwalają na dostęp do pamięci trwałej. pmemcheck (https://github.com/pmem/valgrind) i pmreorder (https://pmem.io/2019/02/04/pmreorder-basics.html) to dwa przykładowe narzędzia oferowane w ramach PMDK, które służą do weryfikacji poprawności użycia pamięci trwałej.

    Celem projektu jest ocena możliwości i przydatności obu narzędzi na przykładzie systemu korzystającego z pamięci trwałej, którego kod źródłowy dostarczy promotor. Praca dyplomowa ma zawierać opisy procedury przygotowania do testów, uruchomienia testów, oraz wyniki ewaluacji przykładowego systemu, a także konstruktywne opinie na temat narzędzi pmemcheck i pmreorder. Promotor zapewni dostęp do klastra maszyn wyposażonych w PMEM (Intel Optane DC PMM).

  1. [Temat zrealizowany]

    Implementacja i ocena replikacji maszyn stanowych w oparciu o protokół Paxos

    Implementation and evaluation of state machine replication based on the Paxos protocol

    Paxos to klasyczny protokół osiągania konsensusu w systemie rozproszonym, w którym występują awarie procesów. Paxos pozwala na budowę systemów zreplikowanych, np. zreplikowanych magazynów danych, gdzie każda z replik to maszyna stanowa, która przetwarza dokładnie taką samą sekwencję operacji deterministycznych, które zmieniają stan każdej z replik w dokładnie taki sam sposób. Repliki które uległy awarii po jakimś czasie są restartowane, odtwarzają swój stan, i nadganiają przetwarzanie do aktualnego stanu.

    Celem projektu jest implementacja protokołu Paxos wraz z mechanizmem odtwarzania stanu systemu po awarii, przykładowej aplikacji (zreplikowanego magazynu danych typu klucz-wartość), oraz przetestowanie systemu w środowisku rozproszonym. W celu przetestowania implementacji w środowisku rozproszonym, promotor zapewni dostęp do klastra maszyn wyposażonych w PMEM (Intel Optane DC PMM). Jezyk programowania to C++ lub C.

Prace inżynierskie (BSc thesis)

  1. [Temat realizowany]

    Implementacja i ocena wydajności replikacji maszyn stanowych w oparciu o protokół Paxos z odzyskiwaniem stanu po awarii z pamięci trwałej.

    Implementation and performance evaluation of state machine replication based on the Paxos protocol with state recovery after crash from persistent memory.

    Paxos to klasyczny protokół osiągania konsensusu w systemie rozproszonym, w którym występują awarie procesów. Paxos pozwala na budowę systemów zreplikowanych, np. zreplikowanych magazynów danych, gdzie każda z replik to maszyna stanowa, która przetwarza dokładnie taką samą sekwencję operacji deterministycznych, które zmieniają stan każdej z replik w dokładnie taki sam sposób. Repliki które uległy awarii po jakimś czasie są restartowane, odtwarzają swój stan, i nadganiają przetwarzanie do aktualnego stanu.

    Celem projektu jest rozbudowa istniejącej implementacji maszyny stanowej, zreplikowanej w oparciu o Paxos, aby odtwarzanie stanu odbywało się z pamięci trwałej. Pamięć trwała (ang. persistent memory - PMEM) to pamięć podobna do pamięci DRAM, ale jej zawartość nie ginie przy utracie zasilania. Implementacja będzie korzystać z Persistent Memory Development Kit (PMDK), kolekcji bibliotek i narzędzi, które pozwalają na dostęp do pamięci trwałej. Ponadto celem projektu jest przebadanie implementacji dla różnych istniejących protokołów komunikacyjnych. Promotor zapewni dostęp do klastra maszyn wyposażonych w PMEM (Intel Optane DC PMM). Język programowania to C++ lub C.

Pozostałe tematy

http://www.cs.put.poznan.pl/tkobus/students/diplomas_msc.html

If you are interested in joining us, please contact us. This document was updated on 2023-08-10 at 10:46.