This paper presents an adaptive pipeline architecture designed to enhance both throughput and reduce latency in real-time stream data processing within single- and multi-processor systems. Unlike predominantly conceptual models or narrowly focused algorithms, the practical impact of this architecture is demonstrated by achieving measurable performance gains through reducing redundant data copying and synchronization costs or by providing flexible control over input and output data ordering. The architecture employs shared memory to eliminate buffer duplication, uses data transfer channels that adapt based on the need for order preservation, and supports the replication of processes within or across CPU cores. Experimental results indicate that the proposed architecture delivers both high throughput and low latency while introducing minimal overhead for data transmission and process synchronization. By offering a flexible and scalable foundation, this architecture can be applied to a wide range of real-time applications, from video surveillance and robotics to distributed platforms for processing large data sets. It demonstrates versatility and robustness in adapting to varying computational demands, thereby ensuring both efficiency and reliability in high-performance environments.
Keywords: parallelism, multiprocessor computing, computational pipeline, performance scaling, queues, shared memory
The purpose of the study is to improve the efficiency of Dijkstra's algorithm by using the shared memory model with OpenMP library and working on the principle of parallel execution in the implementation of the algorithm. Using Dijkstra's algorithm to find the shortest path between two nodes in a graph is quite common. However, the time complexity of the algorithm increases as the size of the graph increases, resulting in longer execution time, so parallel execution is a good option to solve the time complexity problem. In this research work, we propose a parallel computing method to improve the efficiency of Dijkstra's algorithm for large graphs.The method involves dividing the array of paths in Dijkstra's algorithm into a specified number of processors for parallel execution. We provide an implementation of the parallelized Dijkstra algorithm and access its performance using actual datasets and with different number of nodes. Our results show that Dijkstra's parallelized algorithm can significantly speed up the process compared to the sequential version of the algorithm, while reducing execution time and continuously improving CPU efficiency, making it a useful choice for finding shortest paths in large graphs.
Keywords: Dijkstra algorithm, graph, shortest paths, parallel computing, shared memory model, OpenMP library