Projekt zaliczeniowy - propozycje

Transkrypt

Projekt zaliczeniowy - propozycje
Propozycje Projektów z Programowania
Współbieżnego
1. Aplikacja do współbieżnego pobierania plików z Internetu / sieci lokalnej - każde zadanie
pobierania realizowane jest osobno - w odrębnym wątku roboczym (może być wykonywane przez
ograniczoną pulę wątków zarządzaną przez gotowy mechanizm, np. ExecutorService w Javie). Prosty
okienkowy interfejs użytkownika pozwala na dodawanie nowych zadań pobrania oraz śledzenie na
bieżąco postępu już wykonywanych zadań (paski postępu).
2. Komunikator sieciowy (można wykorzystać gotową bibliotekę implementującą warstwę
transportową) internetowy, bądź intranetowy. Każda konwersacja (połączenie) obsługiwane jest w
odrębnym wątku. Aplikacja może mieć interfejs graficzny lub tekstowy.
3. Prosta gra zręcznościowa (np. platformowa), w której poszczególne zadania realizowane są w
odrębnych wątkach, tj. wątek do obsługi renderowania grafiki, wątek do wykonywania symulacji
fizycznych, wątek do obsługi AI komputera itd.
4. Aplikacja do indeksowania dokumentów tekstowych na dysku lokalnym. Za pomocą interfejsu
użytkownika ustalane są katalogi, wewnątrz których będą wyszukiwane i przetwarzane pliki
tekstowe. Przetwarzanie pliku lub całego podkatalogu realizowane jest w odrębnym wątku
roboczym i polega na utworzeniu indeksu występujących w pliku słów / ciągów, tak, aby po
zakończeniu indeksowania program można było wykorzystać do wyszukiwania plików zawierających
podaną frazę. Indeks może być przechowywany w dowolnym formacie (tekstowym, binarnym, w
bazie danych), jednak tak, aby możliwe było korzystanie z aplikacji po ponownym uruchomieniu bez
konieczności powtórnego indeksowania. Postęp procesu indeksowania powinien być na bieżąco
wyświetlany za pomocą paska postępu.
5. Aplikacja do przetwarzania plików graficznych. Przetwarzanie polega na nałożeniu wybranego
filtru, np. rozmywającego. Operacje wykonywane są w sposób współbieżny - każdy z wątków
roboczych wykonuje obliczenia na odrębnym fragmencie obrazu źródłowego. Postęp obliczeń w
miarę możliwości wyświetlany jest na pasku postępu. Do nakładania filtrów można wykorzystać
gotową bibliotekę. W przypadku obrazów o dużej rozdzielczości przetwarzanie równoległe powinno
pozwalać na uzyskanie przyspieszenia.
6. Współbieżna implementacja wybranego algorytmu optymalizacyjnego. Przykładowo, może to być
algorytm genetyczny, PSO lub mrówkowy, w którym obliczenia dla poszczególnych składowych
populacji przetwarzane są w osobnych wątkach. Dodatkowo wątek główny dba o aktualizację
interfejsu użytkownika w taki sposób, aby informować o postępie obliczeń.