Parallel Scripting Languages
Ras Bodik, Christopher Jones and Leo Meyerovich
One reason for the proliferation of scripting languages in the 1990s was that single-thread performance was growing faster than the demands on software functionality, which allowed us to burn spare compute cycles on program interpretation overhead. These two trends have been reversed in recent years: we do have spare cycles at our disposal, but we get them on the extra CPU cores. At the same time, scripting is now used to implement functionality typical of desktop programs: think Google Docs. Our project investigates the question of how the "parallel" spare cycles can be used to allow productive, high-level programming. Our goal is to design and implement a language that will get faster as we add more cores. We are currently exploring parallelism in typical scripts and designing programming models that make this parallelism available to the CPU without burdening programmers with threads and locks.