Explore chapters and articles related to this topic
System-Level Performance Simulation of Distributed Embedded Systems via ABSOLUT
Published in Qurban A. Memon, Distributed Networks, 2017
Subayal Khan, Jukka Saastamoinen, Jyrki Huusko, Juha Korpi, Juha-Pekka Soininen, Jari Nurmi
Many modern distributed systems contain networked embedded devices that contain multicore processors. For some of these devices, it might be necessary to remain responsive to inputs. Multithreading is a programming model that allows multiple threads to exist within the context of a single process. This allows a multithreaded program to operate faster on a device that has multiple or multicore CPUs. In some systems, the system functionality dictates that the application has to remain responsive to inputs. One convenient way to resolve this issue is to allow one or more threads to monitor the inputs and execute in parallel with the main execution thread of the application. This enables the application to retain responsiveness to input(s) while executing tasks in the background.
Enhancing CPU performance
Published in Joseph D. Dumas, Computer Architecture, 2016
In effect, simultaneous multithreading internally splits a single, physical superscalar processor into two or more logically separate CPUs, each executing its own instruction stream by sharing processor resources that might otherwise go unused if only a single thread were executing. (Of course, some CPU resources, including the program counter and certain other system registers, may have to be replicated to allow for hyperthreading.) Simultaneous multithreading implementation can significantly increase the efficiency of resource utilization and improve overall system performance as seen by the user when multiple tasks (or a single application coded with multiple threads) are running.
Parallel computing in railway research
Published in International Journal of Rail Transportation, 2020
Qing Wu, Maksym Spiryagin, Colin Cole, Tim McSweeney
To better comprehend multithreading, one should understand the differences between a process and a thread. A simple explanation is that a thread is a part of a process and a process can have multiple threads. Parallel computing can be conducted among a number of processes as well as a number of threads. MPI and OpenMP can deal with both thread and process levels of parallel computing. In this section, the term ‘multithreading’ indicates only thread level parallel computing. There are a number of techniques that can be used to manipulate threads; two fundamental ones are Pthreads [47] in a Unix Operation System (OS) and the Windows Application Programming Interface (WinAPI) threads [48] in Windows OS. As multithreading deals with multiple threads that are in the same process, it understandably uses the shared memory parallel computing model as shown in Figure 3(b). Applications using Pthreads have been reported from [49,50]; and Reference [15] used WinAPI threads. Besides Pthreads and WinAPI threads, JAVA and Matlab also provide high level multithreading API. Several applications [8,51–53] using JAVA have been reported along with a few applications using Matlab [54–56]. Understandably, higher level APIs would be easier to use which can help to cut down the development cost.