|
A photo-illustration from sources (c) Disney Corporation. CSCI 361: Spring 2026Parallelism and Concurrency……………………. . . . . . . . . . . . . . . . .This course investigates the theory of algorithms and of system support for high performance multiprocessor systems. It is also an introduction to implementing these algorithms in executable code. Throughout the semester, students will be asked to demonstrate the ideas on current multiprocessor hardware. The first two-thirds of the course develop the theory of parallel algorithms, surveying some classic results including prefix scans and sorting, and also their applications to graphs and sequence analysis. This dovetails with actual implementation on a variety of parallel languages and concurrency libraries (e.g. POSIX threads, CUDA). Students spend the last third researching a parallel solution to some independently chosen algorithmic problem, and coding it up. We will survey topics in the last third of the course. Possible topics surveyed include scheduler and runtime support for executing parallel and concurrent programs and complexity-theoretic bounds on parallelism. Prerequisites: CSCI 221 and MATH/CSCI 382. Office Hours: Jim lists several times when he is available for help or for discussing the course. He’s around his office MTuW at other times; students normally can just pop by, and can also email to arrange an appointment. ……………………. . . . . . . . . . . . . . . . . ScheduleLecture 1: the end
of Moore’s Law ……………………. . . . . . . . . . . . . . . . .ResourcesWe will be working from excerpts of texts, tutorials, and notes, as well as research papers and articles. I will provide the readings, there is no required textbook (as of yet), and I will work to link those within the weekly schedule below as the semester progresses. Below also is a list of classic resources on parallel algorithm theory, on concurrency, and on parallel hardware that we’ve used in a past version of this course. Introduction to Algorithms Synthesis of Parallel Algorithms (1993) Parallel Algorithms and Architectures:
Arrays.Trees.Hypercubes (1992) The Art of Multiprocessor Programming (2e,
2021) Computer Architecture: a Quantitative Approach (5e,
2012) Limits to Parallel Computation (1995) An Introduction to Parallel Programming (2012) ……………………. . . . . . . . . . . . . . . . .Hardware & SoftwareYou will all have access to You can also configure your own machine to develop using any of ……………………. . . . . . . . . . . . . . . . .ResponsibilitiesThe course is a hybrid of theory and (prototyped) implementations, building off the skills you learned in MATH/CSCI 382 and CSCI 221. As such, there will be a mix of written problem sets and coded programs. There will also be a final, independent project assigned after the 8th week. This will ask you to either carry a homework assignment assignment further than just from pseudocode or from prototype, perhaps trying several techniques to get good practical performance. Alternatively, you can seek to attack a problem we do not cover in class, survey it, and implement a working solution (or solutions). • • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • •• • • • • • • • • • • • • • • • • • • • • |