Aktualności
2.12.2015 - Nasz najnowszy artykuł o symulacji obrazowania Time-of-Flight oraz Phase Contrast Angiography jest już dostępny on-line. Zachęcamy do lektury.

30.11.2015 - W zakładce Do pobrania dodaliśmy odnośnik do projektu dla środowiska Xcode z naszą implementacją algorytmu do symulacji rozrostu drzew naczyń krwionośnych. Zachęcamy do pobierania :-).

6.10.2015 - Udostępniamy dwa nowe syntetyczne modele rozgałęzienia tętnicy szyjnej (zobacz).

15.08.2015 - Rozpoczynamy realizację nowego projektu nt. symulacji rezonansu magnetycznego. Tym razem zajmiemy się modelowaniem perfuzji nerek. Wkrótce pojawi się więcej informacji.
 
Polecamy






 
Licznik wizyt
Liczba odsłon strony od 1.03.2015 r.

Flag Counter

Akceleracja obliczeń z użyciem sieci komputerów GRID

Symulacja zjawiska NMR jest zagadnieniem o dużej złożoności obliczeniowej. Czas obliczeń zwiększa się znacząco dla obrazów trójwymiarowych o dużej rozdzielczości. Stąd jednym z zadań projektu było wykonanie wydajnej implementacji algorytmu syntezy obrazów z użyciem sieci komputerów (implementacja wieloprocesorowa).

Ze względu na wymaganą wydajność i jednocześnie precyzję obliczeń projekt symulatora został wykonany w języku ANSI C i skompilowany dla platformy Mac OS X. Na potrzeby implementacji wieloprocesorowej utworzono sieć komputerów typu GRID, w skład której weszły dwa komputery z procesorami Intel Core i7 3.4 GHz (iMac 27) i Intel Core i7 2.3 GHz (MacBook Pro 15) oraz 10 jednostek z procesorem Intel Core i5 2.5 GHz (MacMini). W sumie utworzona sieć zawiera 28 rdzeni procesorowych. Do zrównoleglenia obliczeń zastosowano bibliotekę Open MPI. Każdy z węzłów roboczych sieci obliczeniowej – tzw. agentów – wykonuje symulację dla określonej liczby trajektorii. Po zakończeniu pracy agent przesyła obliczone przez siebie wartości danych k-space do węzła zarządzającego (mastera), który sumuje odebrane wyniki od wszystkich agentów w jednej wspólnej macierzy danych.

Czas symulacji obrazowania MRA zależy przede wszystkim od dwóch czynników - rozmiaru przestrzeni k-space ($n_x \times n_y \times n_z$) oraz całkowitej liczby cząstek. W tabeli poniżej zaprezentowano czasy symulacji zmierzone dla różnych wartości tych czynników oraz dla różnych konfiguracji sieci obliczeniowej. Wszystkie pomiary wykonano dla doświadczenia z użyciem tego samego modelu pojedynczego naczynia o średnicy 8 mm z przewężeniem 50%.

Zmierzone czasy wykonania wynoszą od pojedynczych minut do ok. jednej godziny. Wyniki te świadczą o bardzo dobrej wydajności zaimplementowanego systemu. Czas trwania syntezy pojedynczego obrazu pozwala na zebranie dużej bazy danych wzorcowowych w stosunkowo niedługim czasie. Jest to ważne, gdyż walidacja algorytmów przetwarzania obrazów wymaga statystycznie istotnej próby danych testowych.

Porównanie indywidualnych wyników pomiarów pokazuje, że złożoność obliczeniowa wynosi $O(n_xn_yn_zn_p)$. Przykładowo, wyniki zaprezentowana w rzędach 1-3 uzyskano dla tego samego rozmiaru obrazu, ale dla różnej liczby cząstek $n_p$. Jak można zauważycć, czas wykonania zależy od $n_p$ liniowo. Podobnie zmiana wymiaru $n_z$ (pomiary 6 i 7) w stosunku 1:1.76 (25:44) skutkuje równoważnym wzrostem czasu symulacji (794:1419 [s]). Ponadto można zauważyć, że użycie funkcji hyper-threading (rzędy 4 i 5) prowadzi do poprawy wydajności, lecz w mniejszym stopniu niż sugerowałby to wzrost liczby procesów uruchomionych równolege.

Należy podkreślić, że wysoka wydajność obliczeniowa wynika po części z samego modelu syntezy. Procedury formowania obrazu wymagające największych nakładów obliczeniowych zawierają pętle iterujące po cząstkach, czyli właściwych źródłach sygnału NMR. Tymczasem, w wielu innych symulatorach MRI obliczanie sygnału odbywa się w każdym punkcie - najczęściej sześciennej - siatki modelującej obrazowany organ, a więc także w węzłach potencjalnie zawierających powietrze.

Rozmiar
obrazu
Liczba
trajektorii
Liczba
cząstek
Liczba
procesów
Hyperthreading Czas
symulacji
128 × 128 × 25 128 71 967 48 Tak 6 m 15 s
149 386 11 m 24 s
298 651 23 m 56 s
192 × 192 × 44 256 202 141 53 m 59 s
24 Nie 1 h 5 m 53 s
128 × 128 × 44 48 Tak 23 m 39 s
128 × 128 × 25 13 m 14 s
24 Nie 15 m 52 s
16 22 m 29 s
10 36 m 25 s

Powrót


Copyright 2011-2015 (C) Artur Klepaczko | Institute of Electronics | Lodz University of Technology