Multicore Programming Using the ParC Language (Undergraduate Topics in Computer Science)
Format: PDF / Kindle (mobi) / ePub
Multicore Programming Using the ParC Language discusses the principles of practical parallel programming using shared memory on multicore machines. It uses a simple yet powerful parallel dialect of C called ParC as the basic programming language. Designed to be used in an introductory course in parallel programming and covering basic and advanced concepts of parallel programming via ParC examples, the book combines a mixture of research directions, covering issues in parallel operating systems, and compilation techniques relevant for shared memory and multicore machines.
Multicore Programming Using the ParC Language provides a firm basis for the ‘delicate art’ of creating efficient parallel programs. Students can exercise parallel programming using a simulation software, which is portable on PC/Unix multicore computers, to gain experience without requiring specialist hardware. Students can also help to cement their learning by completing the great many challenging and exciting exercises which accompany each chapter.
it been designed from scratch as a parallel machine. In fact, the shared memory of multicore machines is basically a simulation of shared memory over the single port memory module of the single core personal computer. Thus, it is important to understand how the shared memory of multicore machines works in order to determine how ParC can be implemented and used by multicore machines. Multicore machines are an extension of the single core personal computer that include several processors (cores)
formula and a model through which the execution time of any program can be evaluated. A “true” model will be able to fully predict the execution time of a given program. However, such a model might be too complicated as a program development tool. The model is, therefore, a compromise between the need to include as many low-level factors as possible, and the need to create a simple tool that a programmer can use to develop applications. The realization that the model cannot provide an exact
speedup equation is and P opt (R)=13. Fig. 5.6Code used in example of speedup calculation The above program is clearly inefficient, because instead of a speedup between 5 and 10, it achieves a speedup of 1.46. If the user wants to improve the speedup, he or she can add three additional processors to reach the optimal number of 13. However, the speedup will still not exceed 1.93. Using the speedup factors, the user can evaluate the program as follows. It is not balanced, as there is one
sequence of instructions, as follows: 2.What is the final value of g? 3.What will happen if the assignment y=y is replaced by x=y? 4.Find a scheduling for the execution graph by adding a time/processor index to every instruction in the execution graph (recall that threads are not supposed to migrate). What is the execution time for this program? 5.Add a thread index i to all of the variables (x i ) in the execution graph (including parameters). Map the variables to processors such that x i
C++-like language for data parallel computation. In: USENIX Proc. C++ Workshop, pp. 127–134 (1987) Sun, X.H., Gustafson, J.L.: Toward a better parallel performance metric*. Parallel Comput. 17(10–11), 1093–1109 (1991)MATHCrossRef Sun, X.H., Ni, L.M.: Another view on parallel speedup. In: Proceedings of Supercomputing’90, pp. 324–333. IEEE, New York (2002). ISBN 0818620560 Wieland, F., Reiher, P., Jefferson, D.: Experiences in parallel performance measurement: The speedup bias. In: Symp.