In this talk I'll take you on a whirlwind tour of the world of parallemism. Why is it a hot topic? How do we screw it up and get horrible performance and lack of scalability? What are the hot new technologies that aim to make it easier? And just what, exactly, does Perl 6 have to say about parallelism? Topics I will cover will include:
* Why we can't just make faster CPUs
* Task vs Data Parallelism
* Mutexes, semaphores and threads: the assembly language of concurrency
* Issues: deadlock, livelock, risk of unsafe data access, stupid numbers of threads, etc.
* It's about the cache, stupid: bus protocols and false sharing
* Software Transactional Memory and its application in Perl 6
* Data parallelism in Perl 6
* Other futuristic ideas and research, including lock free data structures
No experience of thread programming in Perl or any other language is required - this is a "big picture" talk rather than digging into the gory details.