Abstract

Multithreading has been shown to be a powerful approach for boosting a system performance. One of the good examples of applications that benefits from multithreading is image processing. Image processing requires many resources and processing run time because the calculations are often done on a matrix of pixels. The programming language Java supports the multithreading programming as part of the language itself instead of treating threads through the operating system. In this paper we explore the performance of Java image processing applications designed with multithreading approach. In order to test how the multithreading influences on the performance of the program, we tested several image processing algorithms implemented with Java language using the sequential one thread and multithreading approach on single and multi-core CPU. The experiments were based not only on different platforms and algorithms that differ from each other from the level of complexity, but also on changing the sizes of the images and the number of threads when multithreading approach is applied. Performance is increased on single core and multiple core CPU in different ways in relation with image size, complexity of the algorithm and the platform.

Highlights

  • In recent years, Java language has become a popular choice for development of multithreaded applications due to the language multithreading support

  • Java language is very suitable to develop image processing applications due to its features and the free packages that it offers for this purpose

  • Through some experiments with the image processing algorithms the impact that multithreading approach has on performance is analyzed in single-core and multi-core platforms

Read more

Summary

Introduction

Java language has become a popular choice for development of multithreaded applications due to the language multithreading support. Multithreaded programming allows simple identification of the sections of code that can be executed concurrently to exploit parallelism. The programs must be able to exploit this kind of parallelism in order to get performance gains in computing. The first approach is through the creation of processes, with all the communication made through messages, which are responsible for keeping all the necessary information for the programs, including register content and memory space [1]. A thread is a point of execution within a process and they represent a key concurrency model supported by modern computers, programming languages, and operating systems. The threads exchange information only through shared memory and can be up to 20 times faster in their creation time when compared to processes [3]

Methods
Results
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call