ABSTRACT

Making hardware and software to support parallel computing can be tricky indeed. Such knowledge about parallel computing is directly applicable to managing multiple concurrent tasks, or teams of people who cooperate and work together in parallel. The ordinary view of a program is this: Indeed, we have the same view for procedures, algorithms, and flow charts. In short, parallel software is also important to achieve parallel computing. Within a process, control usually follows a single execution thread, starting with the first step, through a sequence of steps, and ending with the last step. Multithreaded programs involve four important new aspects not present in ordinary single-threaded programs: mutual exclusion, synchronization, scheduling, and deadlock. When programmed correctly, only one thread at a time can access the same quantity protected by mutual exclusion.