Large-Scale Algorithms

Large-scale algorithms are designed to solve gigantic complex problems. The characterizing feature of large-scale algorithms is their need to have more than one execution engine due to the scale of their data and processing requirements. This chapter starts by discussing what types of algorithms are best suited to be run in parallel. Then, it discusses the issues related to parallelizing algorithms. Next, it presents the Compute Unified Device Architecture (CUDA) architecture and discusses how a single graphics processing unit (GPU) or an array of GPUs can be used to accelerate the algorithms. It also discusses what changes need to be made to the algorithm to effectively utilize the power of the GPU. Finally, this chapter discusses cluster computing and discusses how Apache Spark creates Resilient Distributed Datasets (RDDs) to create an extremely fast parallel implementation of standard algorithms.

By the end of this chapter, you will be able to understand the basic strategies related to the design of large-scale algorithms.

The following topics are covered in this chapter:

  • Introduction to large-scale algorithms 
  • The design of parallel algorithms
  • Algorithms to utilize the GPU
  • Understanding algorithms utilizing cluster computing
  • How to use the GPU to run large-scale algorithms
  • How to use the power of clusters to run large-scale algorithms

Let's start with the introduction.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset