Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concurrency and Parallelism

Concurrency and Parallelism Course Schedule


Week 1

Objectives

  • Understand the differences between concurrency and parallelism
  • Learn to create a simple threaded Python program

Reading

None

Assignment

  • Create a simple threaded Python program (Due next Tuesday)

Week 2

Objectives

  • Understand race conditions and why they happen
  • Learn how to avoid race conditions with locks
  • Learn to use C++11 threads

Reading

Assignment

  • Create a program using C++11 threads (Due next Thursday)
  • Independently learn about different lock types (Discussion next Tuesday)

Week 3

Objectives

  • Learn how to avoid race conditions without locks
  • Learn about different locking problems and how to avoid them
  • Independently learn how to use PThreads in C++
  • Know what OpenMP is

Reading

None

Assignment

  • Locking problem presentations (Due next Tuesday)
  • Create a program using PThreads (Due next Thursday)

Week 4

Objectives

  • Learn how to use OpenMP

Reading

None

Assignment

  • Create a program using OpenMP (Due Thursday of Week 6)
  • Independently learn common threading patterns (Discussion next Tuesday)

Week 5

Objectives

  • Learn common threading patterns
  • Make progress on OpenMP project

Reading

None

Assignment

None


Week 6

Objectives

  • Understand where threading is appropriate and useful
  • Understand how threading benefits different kinds of tasks
  • Understand patterns used with I/O bound threading
  • Learn strategies for dividing work into threads

Reading

Assignment

  • Learn about at least 3 methods of IPC covered in the reading (Discussion next Tuesday)

Week 7

Objectives

  • Understand how multiprocessing is different from multithreading
  • Understand how interprocess communication relates to multiprocessing

Reading

Assignment

  • Create an application that implements some IPC other than pipes (Due Thursday Week 9)

Week 8

Objectives

  • Learn about more methods of IPC
  • Make progress on IPC assignment

Reading

Assignment

None


Week 9

Objectives

  • Begin design work on final project

Reading

None

Assignment

None


Week 10

Objectives

  • Understand how multiprocessing and distributed computing are related
  • Learn sufficient networking to create a distributed system

Reading

None

Assignment

None


Week 11

Objectives

  • Understand different distribution architectures

Reading

None

Assignment

  • Create a client/server program that handles multiple clients (Due next Thursday)

Week 12

Objectives

TBA

Reading

TBA

Assignment

None


Week 13

Objectives

TBA

Reading

TBA

Assignment

None


Week 14

Objectives

  • Demonstrate your ability to create a more complex program using concurrency and/or parallelism

Reading

None

Assignment

None

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages