Have you ever thought about what would happen to the world if only one thing could happen at a time? What if you could only do a single thing at a time? You would be unable to do things like walking forward and simultaneously talking to the person next to you. Now imagine a computer that can't play your music while you write an email, or won't let you load a web page and do anything else at the same time. That would be a world with a complete lack of parallelism.
Computers contain an increasingly large amount of parallelism, from multi-core to many-core to distributed systems, and the world needs people who know how to use and program these type of computers. This intensive 15-hour session introduces the concept of parallelism in the realm of computer programming. Topics discussed will include examining the different kinds of parallel computers, threaded programming for shared-memory programming (multi/many-core), and message passing for distributed programming.
Structure of Activities
Session size is limited to 16 participants in order to assure a high quality learning atmosphere. Participants work both in teams and individually in a supervised, hands-on learning environment. Each day they learn about new scientific approaches and tools and then have the opportunity to try them out for themselves in our computer lab.
Traditional computer science curricula only examine processes in a serial (that is, one thing at a time) environment. Modern computers contain huge amounts of parallelism and it will only continue to increase. Because of this, anyone interested in studying computer science, computational science, or any related field should be able to think parallel. This workshop is designed to provide a basic foundation for entering a parallel world and to provide a first look at some of the innumerable challenges.
Participants should have taken a basic programming concepts course, preferably Shodors Summer Programming Concepts workshop or similar course offered by local school districts. If you have any questions please contact the workshop program coordinator to discuss your programming experience at firstname.lastname@example.org.