Modele szacowania czasów wykonywania się pętli programowych z wykorzystaniem programowania równoległego na CPU oraz z wykorzystaniem obliczeń na GPU przy użyciu OpenCl

Models for estimating the time of program loop execution in parallel on a CPU and with the use of OpenCL computation on a GPU

  • Łukasz Nozdrzykowski Akademia Morska w Szczecinie, Wydział Nawigacyjny
  • Magdalena Nozdrzykowska Akademia Morska w Szczecinie, Wydział Nawigacyjny
Keywords: pętle programowe, szacowanie czasu wykonania pętli, programowanie CPU i GPGPU

Abstract

W artykule autorzy przedstawiają modele szacowania czasów wykonywania się pętli programowych zgodnych z modelem FAN nieposiadającym zależności lub posiadającym zależności, ale tylko w ciele pętli, które wykonywane mogą być przez centralne jednostki obliczeniowe CPU jak i multiprocesory strumieniowe zwane rdzeniami kart graficznych GPU. Zaprezentowane w niniejszym artykule modele szacowania czasów wykonywania tych pętli pozwolą na określanie tego, czy obliczenia w zastanym środowisku obliczeniowym warto wykonywać z użyciem posiadanego procesora CPU czy korzystniejsze będzie wykorzystanie do obliczeń posiadanej, często nowoczesnej, karty graficznej z wydajną jednostką GPU i bardzo szybką pamięcią stosowaną we współczesnych kartach graficznych. Wraz z zaprezentowanymi modelami przedstawiono także testy potwierdzające poprawność opracowanych modeli szacowania czasu. Celem powstania tych modeli jest dostarczenie metod przyspieszania działania aplikacji realizujących różne zadania, w tym zadania transportowe, takie jak przyspieszone przeszukiwanie rozwiązań, przeszukiwanie ścieżek w grafach, czy przyspieszanie algorytmów przetwarzania obrazów w systemach wizyjnych pojazdów autonomicznych i semiautonomicznych, przy czym modele te pozwalają na zbudowanie systemu automatycznego rozdzielania zadań pomiędzy CPU i GPU przy zmienności zasobów obliczeniowych.

References

1. Burmeister H.-C., Bruhn W., Rødseth Ø., Porathe T., Autonomous Unmanned Merchant Vessel and its Contribution towards the e-Navigation Implementation: The MUNIN Perspective, Inter-national Journal of e-Navigation and Maritime Economy, Volume 1, December 2014, pp. 1-13
2. J. Koszelew, P. Wolejsza and D. Oldziej, "Autonomous Vessel with an Air Look," 2018 Baltic Geodetic Congress (BGC Geomatics), Olsztyn, 2018, pp. 102-106
3. Sanders J., Kandrot E., CUDAby Example: An Introduction to General-Purpose GPU Programming, Addison-Wesley, 2011
4. Rauber T., Runger G., Parallel Programming for multicore and cluster systems, Springer-Verlag 2012
5. Wolf F., Freitag F., Mohr B., Moore S., Wylie B., Large Event Traces in Parallel Performance Analysis, ARCS Workshops, 2006
6. Gebali F., Algorithms and Parallel Computing, Wiley, 2011
7. Lewis T., Foundations of Parallel Programming: A Machine-Independent Approach. IEEE Computer Society Press, 1992
8. Wróbel M. (2015) Models for Estimating the Execution Time of Software Loops in Parallel and Distributed Systems. In: Zamojski W., Mazurkiewicz J., Sugier J., Walkowiak T., Kacprzyk J. (eds) Theory and Engineering of Complex Systems and Dependability. DepCoS-RELCOMEX 2015. Advances in Intelligent Systems and Computing, vol 365. Springer, Cham
9. Nozdrzykowski Ł., Nozdrzykowska M. (2018) Testing the Significance of Parameters of Models Estimating Execution Time of Parallel Program Loops According to the Open MPI Standard. In: Zamojski W., Mazurkiewicz J., Sugier J., Walkowiak T., Kacprzyk J. (eds) Advances in Dependability Engineering of Complex Systems. DepCoS-RELCOMEX 2017. Advances in Intelligent Systems and Computing, vol 582. Springer, Cham
10. Cegielski M. (2016) Parallel computation of transient processes on OpenCL framework, Przegląd Elektrotechniczny, ISSN 0033-2097, R. 92 NR 7/201
11. Thouti K., Sathe S. R,(2013) A Methodology for Translating C Programs to OpenCL, International Journal of Computer Applications (0975–8887) Volume 82–No3, November 2013
12. Sawerwain M., OpenCL Akceleracja GPU w praktyce, PWN, 2014
13. Farber R, Cuda Application Design and Development, Morgan Kaufmann, 2012
14. Nvidia’s opencl best practices guide. Dostęp online: https://hpc.oit.uci.edu/nvidia-doc/sdk-cuda-doc/OpenCL/doc/OpenCL_Best_Practices_Guide.pdf, 2011
Published
2018-12-21
Section
Efektywność transportu/Transport efficiency