CSC 543 - Multiprocessing & Concurrent Programming Assignment 5 Talks
Talks to be scheduled in class for April 28 & May 5
April 28 talks may be work-in-progress.
Materials are due via D2L by end of May 5 (slides & demo code, prefer zipped, include a README on how to run code).

This page is from spring 2021. We are going over this for spring 2023 project ideas.

Dr. Dale E. Parson



Each talk will run 10 minutes, including setup time & questions / answers.
Plan on talking about 8 minutes. Inform your talk by writing demo code.
The intent of the code is to familiarize yourself in a concrete way with the topic. It is demo code, not an entire application.
It does have to have at least some custom work. It cannot just be downloaded from the net.
You may download & enhance. Talk with me about the scope of the code if you are uncertain.
You do not need to write a paper. Pretend to be doing a professor's job for 8 to 10 minutes.
Grading will be on clarity of the talk, clarity of the slides with optional demo, ability to answer questions.


Grading criteria, 25% each:
    Is the work non-trivial, e.e., not just downloaded?
    Is the presentation clear?
    Are the materials complete and clear?
    Can the presenter answer questions about the project?

Topics for spring 2021 Try to let Parson know by 2 PM Monday April 26 if you can present April 28

    6:00        Vivian Azar                    java.util.concurrent.Exchanger
    6:10        Trisha Badlu                   java.util.concurrent.CompletableFuture
    6:20        Devon Blizard                Enhancing assignment 4 with the Executor Completion Service
    6:30        Autumn Coulton            java.util.concurrent.Phaser
    6:40        Noah Cregger                 Accelerating Statistical Data Analysis via Python forking processes
    April 28  Bob Elward                    Concurrent programming in C#
    6:50         Faith Evans                     Image pre-loading & manipulation in Processing
    7:00         Diki Ghale                      Worker threads in node.js.
    7:10         Christopher Kelly           Rust language & concurrency.
    7:20         Tanner Kern                   A ray tracer with CUDA
    7:30         BREAK
    7:40         Eric Moul                       How to use IntUnaryOperator and IntBinaryOperator operator parameters with AtomicIntegers.
    7:50         Griffin Nye                     Recursive partitioning and 3 pixel Photos to work in tandem
    8:00         Emre Shively-Ertas        Multiprocessing in Unity
    8:10         Aaron Simmons             PlayerExplicit using POSIX threading library (pthreads)
    8:20         Bradly Soellner              Raymarching-based render engine w. locks & shared memory from Python's multiprocessing​ lib.
    8:30         Andrew Steele               CSC480 Assignment 3 on time-recursive photos of the Processing canvas including bonus points

    8:40         Liza Turk                       ReentrantReadWriteLock
    8:50         Joseph Workoff            
PlayerExplicit in C++, using C++14's thread, mutex, and condition variable libraries

Ideas for spring 2023
Unix semaphores, shared memory, and message buffers between processes.

Topics used in fall 2018
STUDENT ReentrantReadWriteLock
STUDENT ReactiveX
STUDENT Concurrency in the Go language
STUDENT Multithreading in the Unity game engine
STUDENT Concurrency in PHP and MySQL
STUDENT Multithreading in Python
STUDENT Concurrent programming in Racket

You can pick a new topic.
The Rust language is a new potential topic.
We didn't do anything with the executor completion service. Enhance assn4 to use the instead of blcoking client requests, where each client thread submits its tasks and then blocks on the compeltion service instead of blocking on the Future<String> returned from submit(task).
You can demo anything from java.util.concurrent java.util.concurrent.atomics java.util.concurrent or other multihreading in the Java library *with my permission*.

Possible topics from spring 2015 and fall 2016