równoległe uruchamianie zewnętrzych exe - optymalizacji kodu

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
konos513
Posty: 1
Rejestracja: 23 gru 2020 22:33
Wersja środowiska: LabVIEW 2018

równoległe uruchamianie zewnętrzych exe - optymalizacji kodu

Post autor: konos513 » 23 gru 2020 23:15

Dzień dobry,
chciałbym prosić o wskazówki dotyczące poprawnościowy w podejściu przy zrównolegleniu wykonywania kilku procesów zewnętrznych.

Buduje program, który docelowo będzie miał obsługiwać ok. 16 kanałów wejściowych/pomiarowych.
W danym kanale będzie on odczytywał dane, w kolejnym kroku robił FFT z nich, zapisywał te dane do pliku ASCII (txt/dat). Potem powinien uruchomić zewnętrzną aplikację (nn_main_ch0.exe - jest to program, w którym zaprogramowałem sieć neuronową), która ma dokonać analizy zapisanych danych FFT. Efektem działania zewnętrznej aplikacja nn_main_ch0.exe jest plik ASCII, w którym na dysku zapisany jest ciąg liczb. Dane z tego pliku ASCII w ostatnim kroku zamierzam wczytać do Labview i dalej je analizować.

Wymyśliłem wstępnie takie podejście do realizacji ww. procesu. Przykład pokazany poniżej dotyczy 2 kanałów. Kopiując go chcę uzyskać jego równoległą realizacje dla 16 kanałów.

Kolejne pytanie dotyczy opcji uruchomienia minimum 16 programów nn_main_ch(*).exe W opcji labview "System Exec VI" jest wariant czekania, aż dany exe się wykona i dopiero LabView realizuje kolejny krok (załacznik2). Wybór tej opcji powoduje duże spowolnienie działania programu.

Mój program nn_main_ch(*).exe uruchamia się w ok. 2 sek., analiza sieci neuronowej zajmuje 3-5 sekundy i 0.5 sekundy trwa zapis danych do pliku ASCII.
Docelowo cała aplikacja powinna pozwolić na uzyskanie wyniku analizy wszystkich 16 kanałów z częstością 15-30 sekund.

Czy można zaproponowany przeze mnie układ zoptymalizować, aby działał równolegle. Sprzęt na jakim to będę pracowało to komp. z procesorem i5 4-watkowy 3 GHz

Z góry dziękuję za informację,
Szymon
Załączniki
parallel2.png
sub kod
parallel.png
kod

ODPOWIEDZ