Home | Amazing | Today | Tags | Publishers | Years | Account | Search 
An Introduction to Parallel Programming

Buy

Parallel hardware has been ubiquitous for some time now. It’s difficult to find a laptop, desktop, or server that doesn’t use a multicore processor. Beowulf clusters are nearly as common today as high-powered workstations were during the 1990s, and cloud computing could make distributed-memory systems as accessible as desktops. In spite of this, most computer science majors graduate with little or no experience in parallel programming. Many colleges and universities offer upper-division elective courses in parallel computing, but since most computer science majors have to take numerous required courses, many graduate without ever writing a multithreaded or multiprocess program.

It seems clear that this state of affairs needs to change. Although many programs can obtain satisfactory performance on a single core, computer scientists should be made aware of the potentially vast performance improvements that can be obtained with parallelism, and they should be able to exploit this potential when the need arises.

An Introduction to Parallel Programming was written to partially address this problem. It provides an introduction to writing parallel programs using MPI, Pthreads, and OpenMP—three of the most widely used application programming interfaces (APIs) for parallel programming. The intended audience is students and professionals who need to write parallel programs. The prerequisites are minimal: a college-level course in mathematics and the ability to write serial programs in C. They are minimal because we believe that students should be able to start programming parallel systems as early as possible.

At the University of San Francisco, computer science students can fulfill a requirement for the major by taking the course, on which this text is based, immediately after taking the “Introduction to Computer Science I” course that most majors take in the first semester of their freshman year. We’ve been offering this course in parallel computing for six years now, and it has been our experience that there really is no reason for students to defer writing parallel programs until their junior or senior year. To the contrary, the course is popular, and students have found that using concurrency in other courses is much easier after having taken the Introduction course.

If second-semester freshmen can learn to write parallel programs by taking a class, then motivated computing professionals should be able to learn to write parallel programs through self-study.We hope this book will prove to be a useful resource for them.

(HTML tags aren't allowed.)

Bioinformatics: High Performance Parallel Computer Architectures (Embedded Multi-Core Systems)
Bioinformatics: High Performance Parallel Computer Architectures (Embedded Multi-Core Systems)

New sequencing technologies have broken many experimental barriers to genome scale sequencing, leading to the extraction of huge quantities of sequence data. This expansion of biological databases established the need for new ways to harness and apply the astounding amount of available genomic information and convert it into substantive...

Learning Data Mining with Python
Learning Data Mining with Python

Harness the power of Python to analyze data and create insightful predictive models

About This Book

  • Learn data mining in practical terms, using a wide variety of libraries and techniques
  • Learn how to find, manipulate, and analyze data using Python
  • Step-by-step instructions...
Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists
Feature Engineering for Machine Learning: Principles and Techniques for Data Scientists

Feature engineering is a crucial step in the machine-learning pipeline, yet this topic is rarely examined on its own. With this practical book, you’ll learn techniques for extracting and transforming features—the numeric representations of raw data—into formats for machine-learning models. Each chapter guides you...


Hands-On Computer Vision with Julia: Build complex applications with advanced Julia packages for image processing, neural networks, and Artificial Intelligence
Hands-On Computer Vision with Julia: Build complex applications with advanced Julia packages for image processing, neural networks, and Artificial Intelligence

Explore the various packages in Julia that support image processing and build neural networks for video processing and object tracking.

Key Features

  • Build a full-fledged image processing application using JuliaImages
  • Perform basic to advanced image and video stream...
Pro Python 3: Features and Tools for Professional Development
Pro Python 3: Features and Tools for Professional Development

Refine your programming techniques and approaches to become a more productive and creative Python programmer. This book explores the concepts and features that will improve not only your code but also your understanding of the Python community with insights and details about the Python philosophy.

Pro Python 3,...

Drones as Cyber-Physical Systems: Concepts and Applications for the Fourth Industrial Revolution
Drones as Cyber-Physical Systems: Concepts and Applications for the Fourth Industrial Revolution

This book introduces the concept of using drones as a teaching tool to explore the fundamental principles, technology and applications of Cyber-Physical Systems (CPS).

A short introduction sets CPS in the context of the 4th industrial revolution, and describes various CPS technologies including self-driving...

©2019 LearnIT (support@pdfchm.net) - Privacy Policy