- Projekt nr 1
-
Chodzi o napisanie systemu zarządzającego obliczeniami.
W jednym wypadku byłby to system dla klastra wyposażonego w karty graficzne.
Z założenia w systemie istnieją kernele obliczeniowe o znanej wydajności i wymaganiach pamięciowych,
oraz K kart graficznych i N procesorów, każdy wyposażony w znaną ilość pamięci i znaną moc obliczeniową.
System jest obciążany zmiennymi zadaniami obliczeniowymi.
Przedmiotem zadania byłoby zaprojektowanie (a potem wykonanie) systemu, który przydzielałby zasoby obliczeniowe,
a w szczególności GPU i CPU, dla optymalnego wykonania zadań.
Zakładamy, że kernele są stosunkowo niewielkie (w ciągu sekundy w systemie wykonywane są tysiące kerneli).
- Projekt nr 2
-
Drugi system to system zarządzający obliczeniami klastrowymi dla języka/środowiska R.
Na klastrze uruchomione byłyby instancje programu R, oraz moduł zarządzający.
Do klastra jednocześnie ma dostęp N użytkowników.
Moduł zarządzający powinien rozdzielać zadania między węzły (procesory), monitorować postęp i rozsyłać wyniki właściwym użytkownikom.
W miarę możliwości dobrze by było, gdyby system był interaktywny (a nie tylko wsadowy).
Preferowane języki - Python/C++, ew. Java.