Szukam programisty ze znajomością MPI - Zadanie w opisie

Zleceniodawca
Andrzej
Andrzej
Opis

Zadanie polega na stworzeniu równoległej wersji algorytmu optymalizacyjnego wykorzystującego rój robotów, który dzieli się na grupy, aby odnaleźć lokalne maksima funkcji. Obecnie dostępny jest działający kod sekwencyjny w klasie SequentialSwarm, na podstawie którego należy zaimplementować klasę ParallelSwarm z wykorzystaniem MPI, aby przyspieszyć obliczenia.

Kluczowe wymagania:

Efektywność równoległa: Każdy dodatkowy proces powinien przyspieszać obliczenia. Wyniki wersji sekwencyjnej i równoległej muszą być identyczne.

Zasada podziału pracy: Każdy proces obsługuje część robotów i wymienia niezbędne informacje między procesami po każdej iteracji.

Minimalizacja komunikacji: Optymalizacja wymiany danych między procesami poprzez:

Grupowanie informacji w większe komunikaty.

Ograniczenie wymiany danych do niezbędnego minimum.

Zachowanie abstrakcji: Klasa ParallelSwarm ma dziedziczyć po klasie Swarm i spełniać jej kontrakt. Kod innych klas nie może być modyfikowany.

Implementacja:

Klasa ParallelSwarm musi zawierać:

Konstruktor: ParallelSwarm(int robots, Antenna* antenna, Function* function).

Metody odpowiedzialne za równoległe obliczenia, takie jak ocenianie wartości funkcji, wyszukiwanie sąsiadów i aktualizacja pozycji robotów.

Algorytm:

Podział robotów na procesy.

Wykonanie kroków obliczeniowych:

Ocena funkcji przez każdy proces dla swoich robotów.

Wyszukiwanie najlepszych sąsiadów w ramach lokalnej grupy.

Wymiana danych między procesami, aby zsynchronizować informacje o robotach w zasięgu.

Aktualizacja pozycji robotów.

Iteracja aż do spełnienia kryterium zakończenia.

Kompilacja i uruchamianie:

Kod MPI jest aktywowany przez definicję #define MPI_ON.

Kompilacja: mpiCC -O *cpp.

Testy mają być przeprowadzone na klastrze wydziałowym z MPI (np. OpenMPI).

Opublikowano
2024-12-30

Wysłane oferty (2)

prauat
prauat
3 umowy
2024-12-30
API
aplikacje webowe
backend
+ 37 więcej
Budżet
Do negocjacji
Prawa autorskie
-
Ważne przez
30 dni

Najnowsze zlecenia z kategorii