Topics in Parallel and Distributed Computing provides resources and guidance for those learning PDC as well as those teaching students new to the discipline.
The pervasiveness of computing devices containing multicore CPUs and GPUs, including home and office PCs, laptops, and mobile devices, is making even common users dependent on parallel processing. Certainly, it is no longer sufficient for even basic programmers to acquire only the traditional sequential programming skills. The preceding trends point to the need for imparting a broad-based skill set in PDC technology.
However, the rapid changes in computing hardware platforms and devices, languages, supporting programming environments, and research advances, poses a challenge both for newcomers and seasoned computer scientists.
This edited collection has been developed over the past several years in conjunction with the IEEE technical committee on parallel processing (TCPP), which held several workshops and discussions on learning parallel computing and integrating parallel concepts into courses throughout computer science curricula.
- Contributed and developed by the leading minds in parallel computing research and instruction
- Provides resources and guidance for those learning PDC as well as those teaching students new to the discipline
- Succinctly addresses a range of parallel and distributed computing topics
- Pedagogically designed to ensure understanding by experienced engineers and newcomers
- Developed over the past several years in conjunction with the IEEE technical committee on parallel processing (TCPP), which held several workshops and discussions on learning parallel computing and integrating parallel concepts
Editor and author biographical sketches
Anshul Gupta is a principal research staff member in the Mathematical Sciences Department at the IBM Thomas J. Watson Research Center. His research interests include sparse matrix computations and their applications in optimization and computational sciences, parallel algorithms, and graph/combinatorial algorithms for scientific computing. He has coauthored several journal articles and conference papers on these topics and a textbook titled "Introduction to Parallel Computing." He is the primary author of Watson Sparse Matrix Package, one of the most robust and scalable parallel direct solvers for large sparse systems of linear equations.
Sushil K. Prasad (BTech 1985, Indian Institute of Technology Kharagpur; MS 1986, Washington State University, Pullman; PhD 1990, University of Central Florida, Orlando; all in computer science/engineering) is a professor of computer science at Georgia State University and Director of the Distributed and Mobile Systems Laboratory. He has carried out theoretical as well as experimental research in parallel and distributed computing, resulting in more than 140 refereed publications, several patent applications, and about $3 million in external research funds as principal investigator and over $6 million overall (National Science Foundation (NSF)/National Institutes of Health/graduate research assistantship/industry).
Sushil was honored as an Association for Computing Machinery (ACM) Distinguished Scientist in fall 2013 for his research on parallel data structures and applications. He was the elected chair of the IEEE Technical Committee on Parallel Processing (TCPP) for two terms (2007-2011), and received its highest honor in 2012-IEEE TCPP Outstanding Service Award. Currently, he is leading the NSF-supported IEEE-TCPP curriculum initiative on parallel and distributed computing with a vision to ensure that all computer science and engineering graduates are well-prepared in parallelism through their core courses in this era of multicore and many-core desktops and handheld devices. His current research interests are in parallel data structures and algorithms, and computation over geo-spatiotemporal datasets over cloud, graphics processing unit (GPU) and multicore platforms. His homepage is www.cs.gsu.edu/prasad.
Arnold L. Rosenberg is a research professor in the Computer Science Department at Northeastern University; he also holds the rank of Distinguished University Professor Emeritus in the Computer Science Department at the University of Massachusetts Amherst. Before joining the University of Massachusetts Amherst, Arnold was a professor of computer science at Duke University from 1981 to 1986, and a research staff member at the IBM Thomas J. Watson Research Center from 1965 to 1981. He has held visiting positions at Yale University and the University of Toronto. He was a Lady Davis Visiting Professor at the Technion (Israel Institute of Technology) in 1994, and a Fulbright Senior Research Scholar at the University of Paris-South in 2000. His research focuses on developing algorithmic models and techniques to exploit the new modalities of "collaborative computing" (wherein multiple computers cooperate to solve a computational problem) that result from emerging computing technologies. He is the author or coauthor of more than 170 technical papers on these and other topics in theoretical computer science and discrete mathematics. He is the coauthor of the research book Graph Separators, with Applications and the author of the textbook The Pillars of Computation Theory: State, Encoding, Nondeterminism; additionally, he has served as coeditor of several books. He is a Fellow of the ACM, a Fellow of the IEEE, and a Golden Core member of the IEEE Computer Society. He received an AB degree in mathematics from Harvard College and AM and PhD degrees in applied mathematics from Harvard University. More details are available at http://www.cs.umass.edu/~rsnbrg/.
Alan Sussman is a professor in the Department of Computer Science and Institute for Advanced Computer Studies at the University of Maryland. Working with students and other researchers at The University of Maryland and other institutions, he has published over 100 conference and journal papers and received several best paper awards in various topics related to software tools for high-performance parallel and distributed computing, and has contributed chapters to six books. His research interests include peer-to-peer distributed systems, software engineering for high-performance computing, and large-scale data-intensive computing. He is an associate editor of the Journal of Parallel and Distributed Computing, a subject area editor of the journal Parallel Computing, and an associate editor of IEEE Transactions on Services Computing. Software tools he has built have been widely distributed and used in many computational science applications, in areas such as earth science, space science, and medical informatics. He received his PhD degree in computer science from Carnegie Mellon University.
Charles C. Weems is co-director of the Architecture and Language Implementation laboratory at the University of Massachusetts. His current research interests include architectures for media and embedded applications, GPU computing, and high-precision arithmetic. Previously he led the development of two generations of a heterogeneous parallel processor for machine vision, called the Image Understanding Architecture, and co-directed initial work on the Scale compiler that was eventually used for the TRIPS architecture. He is the author of numerous articles, has served on many program committees, chaired the 1997 IEEE CAMP Workshop and the 1999 IEEE Frontiers Symposium, co-chaired the IEEE International Parallel and Distributed Processing Symposium (IPDPS) in 1999, 2000, and 2013, was general vice-chair for IPDPS from 2001 to 2005, and co-chairs the Large-Scale Parallel Processing workshop. He has coauthored 26 introductory computer science texts, and coedited the book Associative Processing and Processors. He is a member of the ACM, a Senior Member of IEEE, a member of the Executive Committee of the IEEE Technical Committee on Parallel Processing, has been an editor of IEEE Transactions on Parallel and Distributed Systems and Journal of Parallel and Distributed Computing, and is an editor of Parallel Computing.
Steven Bogaerts holds a BS degree from Rose-Hulman Institute of Technology and MS and PhD degrees from Indiana University. He is an assistant professor of computer science at DePauw University in Greencastle, Indiana, and previously held a faculty position at Wittenberg University. His research interests include artificial intelligence and machine learning, most recently with applications of Monte-Carlo Tree Search to game playing. He is a strong supporter of including undergraduate students in research, and is also active in parallelism in computer science education, especially in integration in lower-level courses.
David Bunde is an associate professor of computer science at Knox College, a liberal arts college in Galesburg, Illinois. His PhD degree is in computer science from the University of Illinois at Urbana-Champaign. He earned a BS degree in mathematics and computer science from Harvey Mudd College. He is active in parallel computing education and was selected as an Early Adopter of the NSF/IEEE-TCPP Curriculum on Parallel and Distributed Computing in spring 2011. His other research focuses on resource management for high-performance computers, particularly the allocation of compute nodes to jobs and the assignment of job tasks to allocated nodes. He is particularly passionate about undergraduate research, and includes undergraduate students in most of his work.
Thomas H. Cormen is a professor in the Dartmouth College Department of Computer Science, where he has been since 1992. He served as the department chair from 2009 to 2015, and he directed the Dartmouth Institute for Writing and Rhetoric from 2004 to 2008. He received BSE degree in electrical engineering and computer science from Princeton University in 1978 and SM and PhD degrees in electrical engineering and computer science from the Massachusetts Institute of Technology in 1986 and 1992, respectively. An ACM Distinguished Educator, he is coauthor of the leading textbook on computer algorithms, Introduction to Algorithms, which he wrote with Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. He is also the author of Algorithms Unlocked. His primary research interests are in algorithm engineering and parallel computing. He focuses on algorithms and software infrastructure to mitigate the high latency inherent in accessing the outer levels of the memory hierarchy and in interprocessor communication.
Victor Eijkhout's scientific computing career started with a degree in numerical analysis, gradually moving into computational science. He has published numerous papers, as well as the book Templates for the Solution of Linear Systems: Building Blocks for Iterative Methods and the textbook Introduction to High-Performance Scientific Computing. He currently holds a position as a research scientist at the Texas Advanced Computing Center.
Ryan E. Grant is a postdoctoral appointee and the scalable interconnects team lead in the Center for Computing Research at Sandia National Laboratories...