Project
Pervasive Parallelism with the Swarm Architecture
Current multicores suffer from two main limitations: they can only exploit a fraction of the parallelism available in applications, and they are very hard to program. Our project tackles both problems with Swarm, a new programming model and multicore architecture. Swarm programs consist of very short tasks, as small as tens of instructions each. Hardware distributes and queues tasks for cores, reducing the overheads of fine-grain parallelism and allowing many more applications to be parallelized. Moreover, parallelism is implicit: instead of using locks, semaphores, or other error-prone explicit synchronization techniques, programmers simply define an order among tasks. Under the covers, Swarm hardware determines what order constraints are superfluous and elides them, running most tasks in parallel. As a result, Swarm programs are almost as simple as their sequential counterparts, and at the same time outperform the best parallel programs. Currently, Swarm scales to 256 cores, and successfully parallelizes challenging applications that span graph analytics, databases, machine learning, genome sequencing, and discrete-event simulation.
Group
Computation Structures GroupCommunities
Systems Community of Research Vertical AI Community of ResearchRelated Links
Contact us
If you would like to contact us about our work, please refer to our members below and reach out to one of the group leads directly.
Last updated Aug 22 '22