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ń.