What do burgers & fries have to do with parallel programming?! Helping students learn how to 'think in parallel"

There has been a great discussion on our LinkedIn group around examples that professors can use to teach the concept of parallelism at an abstract level. Here’ s a summary of the examples. (Join our LinkedIn group to access more discussions on teaching tips/parallel programming in undergrad education!)

1. Real-world examples
      • Restaurants (quote below from Asaf Shelly)
“My experience is that restaurants are perfect for that. You have several people taking orders into a single queue, a dispatcher distributes the orders from the queue based on profession (salad, drinks, fries, etc.) and someone collects the end product to service all the people at the table at the same time. This is equivalent to a command-task queue, file system, database, and UI system, etc. It is a good example because: 1.) You can see it happening live after class when you go to lunch 2.) It shows you that you don't need to be a super-computer expert to think parallel". You can also find a few examples in the video here


      • Highways
       Instead of cars in one lane, imagine 4 lanes (4 threads) and how that will help the flow of traffic (data)

2. Hands-on Demonstrations
Demonstrate how several simple sorting algorithms operate by using people (students!) as the objects to be sorted
Video of the student sorting here!

3. “Thinking in Parallel” with a syntax specifically designed for parallel programming
Learn more here

Have more fun/creative examples to get students starting to think in parallel? Share the fun! :-)
For more complete information about compiler optimizations, see our Optimization Notice.