Abstract
The problems of multithreaded programming are discussed. One way to improve the quality of writing a parallel program is to use a model which can represent the process of parallel computing in details. In this research construction of model of the multithreaded algorithm is carried out using Petri-object simulation technology grounded on stochastic Petri net and object-oriented approach. Synchronous and asynchronous performance can be reproduced in model according to the resources availability. The parallel computation is reproduced with taking into account not only formal rules of threads interaction but also the time delays of program instructions. Due to that simulation results are close to the real which has been obtained by launching a multithreaded program. In particular, the model of a thread pool as one of the most efficient high-level tools of parallel programming is developed. The experimental results show speedup dependence on algorithm complexity, computing resources and parameters of the thread pool. This dependence is revealed both in multithreaded program computation and in the model. Hence, simulation can be used for testing a parallel program with given parameters and resources.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Friesen, J.: Java Threads and the Concurrency Utilities. Apress, New York (2015)
Trümper, J., Bohnet, J., Döllner, J.: Understanding complex multithreaded software systems by using trace visualization. In: SOFTVIS 2010 Proceedings of the 5th International Symposium on Software Visualization, pp. 133–142. ACM, Salt Lake City (2010)
Ashraf, M.U., Fouz, F., Eassa, F.A.: Empirical analysis of HPC using different programming models. Int. J. Mod. Educ. Comput. Sci. (IJMECS) 8(6), 27–34 (2016). https://doi.org/10.5815/ijmecs.2016.06.04
Elnashar, A.I., El-Zoghdy, S.F.: An algorithm for static tracing of message passing interface programs using data flow analysis. Int. J. Comput. Netw. Inf. Secur. (IJCNIS) 7(1), 1–8 (2015). https://doi.org/10.5815/ijcnis.2015.01.01
Malinowski, A.: Modern platform for parallel algorithms testing: Java on Intel Xeon Phi. Int. J. Inf. Technol. Comput. Sci. (IJITCS) 7(9), 8–14 (2015). https://doi.org/10.5815/ijitcs.2015.09.02
De Boer, F., Grabe, I., Jaghoori, M., Stam, A., Yi, W.: Modeling and analysis of thread-pools in an industrial communication platform. In: Breitman, K., Cavalcanti, A. (eds.) International Conference on Formal Engineering Methods ICFEM 2009: Formal Methods and Software Engineering, pp. 367–386. Springer, Heidelberg (2009)
Singh, R.: An optimized task duplication based scheduling in parallel system. Int. J. Intell. Syst. Appl. (IJISA) 8(8), 26–37 (2016). https://doi.org/10.5815/ijisa.2016.08.04
Owe, O., Yu I.C.: Deadlock detection of active objects with synchronous and asynchronous method calls. In: Norsk Informatikkonferanse (NIK) OPJ/PKP, Halden, Norway (2014)
Software Verify LTD. Smarter tools for better software. https://www.softwareverify.com/thread-analysis-deadlock-detection.php. Accessed 6 Nov 2018
Chen, Z., Dinan, J., Tang, Z., Balaji, P., Zhong, H., Wei, J., Huang, T., Qin, F.: MC-checker: detecting memory consistency errors in MPI one-sided applications. In: SC 2014, Institute of Electrical and Electronics Engineers (IEEE), New Orleans, Louisiana, USA (2014)
Stetsenko, I.V.: Theoretical foundations of Petri-object modeling of systems. Math. Mach. Syst. 4, 136–148 (2011). (in Russian)
Pujari, S., Mukhopadhyay, S.: Petri net: a tool for modeling and analyze multi-agent oriented systems. Int. J. Intell. Syst. Appl. (IJISA) 4(10), 103–112 (2012). https://doi.org/10.5815/ijisa.2012.10.11
Goetz, B.: Java theory and practice: thread pools and work queues. Thread pools help achieve optimum resource utilization. https://www.ibm.com/developerworks/library/j-jtp0730/j-jtp0730-pdf.pdf. Accessed 6 Nov 2018
Pepperdine, K.: Tuning the size of your thread pool. InfoQ. https://www.infoq.com/articles/Java-Thread-Pool-Performance-Tuning. Accessed 06 Nov 2018
Java™ Platform, Standard Edition 8 API Specification. Class ThreadPoolExecutor. https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ThreadPoolExecutor.html. Accessed 06 Nov 2018
Stetsenko, I.V., Dyfuchyna, O.: Simulation of multithreaded algorithms using Petri-object models. In: Hu, Z., Petoukhov, S., Dychka, I., He, M. (eds.) International Conference on Computer Science, Engineering and Education Applications ICCSEEA 2018: Advances in Intelligent Systems and Computing, vol. 754, pp. 391–401. Springer, Cham (2019)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this paper
Cite this paper
Stetsenko, I.V., Dyfuchyna, O. (2020). Thread Pool Parameters Tuning Using Simulation. In: Hu, Z., Petoukhov, S., Dychka, I., He, M. (eds) Advances in Computer Science for Engineering and Education II. ICCSEEA 2019. Advances in Intelligent Systems and Computing, vol 938. Springer, Cham. https://doi.org/10.1007/978-3-030-16621-2_8
Download citation
DOI: https://doi.org/10.1007/978-3-030-16621-2_8
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-16620-5
Online ISBN: 978-3-030-16621-2
eBook Packages: Intelligent Technologies and RoboticsIntelligent Technologies and Robotics (R0)