Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397
Issue N4 2019 year
Program patterns as a tool of programming knowledge accumulation and usage are considered in this article in the context of parallel programming. They can serve as a basis for tests for evaulating performance of architectures and/ or productivity of programmers who develop new parallel applications or parallelize legacy code. Program patterns can be useful for developing and implementing hardware that supports concurrency. Program patterns are an effective tool for learning parallel programming. Performance measurement tests can be developed based on program patterns. The development, implementation and maintenance of parallel programs designed for distributed, heterogeneous configurations is a complex problem. The usage of program patterns helps to maintain programmers productivity at an economically acceptable level. This paper is the first part of work that contains results of analysis on program patterns implementations in various heterogeneous hardware-software systems. The authors will give the main concepts and definitions of program patterns and review existing architecture solutions such as program patterns for parallelizing on the operating systems level, distributed heterogeneous systems level and multikernel systems level. The second part of the work will consider the main mechanisms of applying program schemes when working with parallel systems.