Egon Kocjan (2009) Parallel dataflow programming in C++. EngD thesis.
Abstract
This dissertation describes the parallel dataflow programming library LibY written in the C++ programming language. The library solves software development problems most often encountered in relation to efficient multi-core processor support, extensive data transmission over unreliable Internet connections and communication with a large number of clients. The solutions to the presented problems were strongly influenced by many years of experience in building communication applications for end users and large server systems with 10 000 clients per each server. A comparison is made between LibY and the existing solutions to problems in the mentioned field. Basic library primitives are described along with the direct benefits of their use. The most important improvements in LibY are deadlock prevention, optimal count of system execution threads, unified model of processor intensive and input/output task execution, and efficient mapping of the LibY basic primitives into the operating system primitives. Moreover, two methods of shared resource locking are described. Both methods retain the basic beneficial property of LibY, i.e. deadlock prevention. Active objects are a simple and efficient method of locking, whereas general locking is implemented with a global lock ordering method. The last part covers the simulation of a multimedia videoconferencing server. Numerous benefits along with some disadvantages of LibY usage have been recognised by analysing the server. More sophisticated executors, task schedulers and safer implementation of the basic primitives are identified as the basis for further development of LibY.
Actions (login required)