Capriccio for Multiprocessors Mark Hairgrove Capriccio is a scalable user-level thread package that uses cooperative scheduling. However, since it uses cooperative scheduling, it cannot take advantage of machines that have more than one processor core. I intend to modify Capriccio to use an M:N threading model and determine the performance change from the older version. To accomplish this, I have these goals in mind: 1) Reproduce the results from the Capriccio paper using the original package. 2) Modify Capriccio to use an M:N threading model. 3) Re-run tests and compare the new Capriccio to the old version. Modifying Capriccio could prove difficult because each critical section will have to be found and protected, but it should prove a useful exercise in M:N threading and user-level multithreading. In the end I hope to improve Capriccio's throughput and test how well it scales with multiple cores.