Appendix A

Chapters and topics

Sushil K. Prasad*; Anshul Gupta; Arnold L. Rosenberg; Alan Sussman§; Charles C. Weems, * Georgia State University, IBM Research, Northeastern University, § University of Maryland, University of Massachusetts

The following tables list the parallel and distributed computing (PDC) topics covered in each chapter. The depth of coverage of each topic is indicated by the intended outcome of teaching that topic, expressed using Bloom’s taxonomy of educational objectives:

K: Know the term

C: Comprehend so as to paraphrase/illustrate it

A: Apply it in some way

Chapter 2

Hands-On Parallelism

PDC ConceptSection
2.3.12.3.22.3.32.3.4
ConcurrencyAAAA
Why and what is PDCA
TimeC
CommunicationAA
BroadcastAA
NondeterminismC
Data racesA
SynchronizationC
Shared memoryKA
Distributed memoryA

t0010

Chapter 3

Parallelism in Python

PDC ConceptSection
3.63.73.83.9
ConcurrencyC
Tasks and threadsA
Decomposition into atomic tasksA
SortingA
Message passingA
SynchronizationC
Performance metricsC
Divide and conquer (parallel aspects)A
Recursion (parallel aspects)A

t0015

Chapter 4

Modules for Introducing Threads

PDC ConceptSection
4.14.24.3
Shared memory: compiler directives/pragmasA
Shared memory: librariesAA
Task/thread spawningAA
Data parallel: parallel loops for shared memoryA
Synchronization: critical regionsA
Concurrency defects: data racesCC
Load balancingCC
Scheduling and mappingK
SpeedupCC

t0020

Chapter 5

PDC Concepts in Digital Logic

PDC ConceptSection
5.15.25.35.45.55.6
Concurrency, sequential/parallelCCCCA
Interconnects, topologiesKCCA
Performance measures (latency, scalability, efficiency, trade-offs)KCCC
Recursive decomposition, divide and conquerKCA
Prefix computationCA
(A)synchronyKCA
PipeliningC
Data hazardsK
Buses, shared resourcesKK
Complexity, asymptoticsK
Dependencies, task graphsK
Broadcast, multicastK
Reduction, convergecastKC

t0025

Chapter 6

Networks and MPI

PDC ConceptSection
6.16.26.36.4
Programming single program, multiple data (SPMD)C
Performance issues, computationKKK
ClusterKCKK
Grid/cloudK
Message passingKCC
Why and what is PDCKKKK
Broadcast, multicastK

t0035

Chapter 7

Fork-Join Parallelism

PDC ConceptSection
7.17.27.37.47.5
Shared memoryCA
Language extensionsCA
LibrariesA
Task/thread spawningCA
Load balancingKC
Performance metricsK
SpeedupCA
Amdahl’s lawA
AsymptoticsA
TimeAA
Bulk synchronous parallel (BSP)/CilkAAA
DependenciesC
Task graphsK
WorkAA
(Make)spanAA
Divide and conquer (parallel aspects)AAA
Recursion (parallel aspects)AA
Scan (parallel-prefix)C
Reduction (map-reduce)AAA
SortingC
Why and what is PDCA
ConcurrencyK

t0040

Chapter 8

Shared-Memory Concurrency Control

PDC ConceptSection
8.18.28.38.48.58.68.7
Shared memoryAAAC
Language extensionsCC
LibrariesK
SynchronizationAAAA
Critical regionsCCC
Concurrency defectsAAA
Memory modelsC
NondeterminismKAA

t0050

Chapter 9

Parallel Computing in a Python-Based Course

PDC ConceptSection
9.19.29.39.49.59.69.79.8
Shared memoryC
Parallel loops for shared memoryCAAAAAA
Owner computes ruleCAAAAAA
TimeCAAAAAAA
PRAMCAAAAAA
Series-paralllel composition (barriers)C
AsymptoticsAAAAAA
RecursionAA
ReductionAAAA
ScanAAAAA
SortingA

t0055

Chapter 10

Conway’s Game of Life

PDC ConceptSection
10.110.210.310.410.510.610.710.810.910.10
Data parallelism, single instruction, multiple data (SIMD)C
Single program, multiple data (SPMD)CCCC
CUDA, single instruction, multiple thread (SIMT)C
Vector extensionsC
PipeliningC
DataflowC
Task graphsC
MulticoreC
Shared versus distributed memoryCCCC
Message passingCC
Loop parallelismC
Data distributionC

t0060

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

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