Poszukiwanie odpowiedniego algorytmu

0

Witam,
jestem w trakcie pisania pracy magisterskiej o temacie "Zwiększenie wydajności obliczeń z wykorzystaniem GPGPU", jednakże stanąłem w pewnym miejscu i ciężko poruszyć się dalej.

Otóż, poszukuję algorytm / problem, które się da w miarę dobrze zrównoleglić i pozwoli pokazać wyższość GPU nad standardowym rozwiązaniem CPU. Program będzie napisany z wykorzystaniem CUDA API w C/C++.

Algorytm / problem powinien mieć następujące cechy:

  • algorytm (fragmenty) można podzielić na około 1000 - 10000 wątków
  • liczbę wątków można określić przed wykonaniem podstawowej części programu
  • liczba rozgałęzień wątków jest minimalna
  • wykonywane są obliczenia zarówno na typach całkowitych jak i zmiennoprzecinkowych
  • dobrze, gdyby były wykonywane operacje na macierzach

Wiem, że dużo takich algorytmów jest związanych z przetwarzaniem obrazów, jednakże chciałbym ja pominąć, ze względu na konieczność nauki OpenGL czy też DirectX.

Z góry będę wdzięczny za wszelkie propozycje!!!

0

Nie wiem czy nie można by zrobić np. potęgowania macierzy, sortowanie przez podział, sieci neuronowe (każdy neuron w osobnym wątku), albo najprostsza w świecie funkcja Ackermanna, tyle że nie wiem czy to się nada na pracę magisterską.

0

Dziękuję za odpowiedź.

Odnośnie zaproponowanych algorytmów:

  • potęgowanie macierzy jest zbyt banalne i dodatkowo bardzo popularne (podstawowy przykład)
  • sortowania przez podział i ogólnie algorytmy "dziel i rządź" nie są najlepszym wyborem ze względu na wymaganą komunikacje pomiędzy kolejnymi podziałami
  • funkcja Ackermana - rekurencje odpadają, zależność kolejnych kroków algorytmu jest eliminuje
  • sieci neuronowe, teoretycznie mogą być jednakże bez sprzężenia zwrotnego, czyli np. sieć Kohonena

Zastanawiam się, czy nie skupić się na metodach numerycznymi algebry liniowej, w której wykorzystywane są macierze i wektory rzadkie. Co o tym sądzicie?

0

Ja kiedyś chciałem zastosować wątki do rysowania kostki Mangera. Patrząc nie patrząc to CUDA tak po trochu pod to podchodzą.

1 użytkowników online, w tym zalogowanych: 0, gości: 1