Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.

  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint

Summary

In this chapter, we met many other approaches to parallelization. These included library-based approaches such as Threading Building Blocks, which seek to provide infrastructure for parallel applications and preprocessors such as Cilk++ that hide some of the complexity of the underlying libraries. A particularly interesting domain is how the future C and C++ language standards may include standardized support for parallelism, which would go a large way toward enabling portable code at the language-standard level. Another approach to providing parallelism is using different programming paradigms, such as functional programming languages like Haskell. This approach could potentially avoid some of the problems that make coding parallel code in C/C++ difficult.

Parallelism should not just be considered a problem to be solved within a machine. One of the more complex problems is using parallelism to compute the solutions to problems that are too large to be solved by a single system. Technologies such as MPI enable a single application to span arbitrarily many systems. The approach of using multiple systems enables other hardware features, such as bandwidth or disk, to scale with the number of processors. Algorithms such as MapReduce are an approach that allows problems to be broken down into chunks that can then be solved in parallel using many systems.


  

You are currently reading a PREVIEW of this book.

                                                                                                                    

Get instant access to over $1 million worth of books and videos.

  

Start a Free Trial


  
  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • PrintPrint