SuperTech Logo  

S U P E R T E C H


Home   |   About SuperTech   |   Group Members   |   Projects   |   Papers   |   Downloads   |   Opportunities For Students   |   Contact Us   |   News   |   Private


Welcome!

About SuperTech

The Supercomputing Technologies Group

The Supercomputing Technologies Group (SuperTech or SCT) is a research group in MIT's Computer Science and Artificial Intelligence Laboratory. The SuperTech group investigates the technologies that support scalable high-performance computing, including hardware, software, and theory. The goal is to make scalable computing simpler, faster, and more effective. The group is currently engaged in a major effort to develop architectural and system-software support for unbounded transactional memory. The group also is studying adaptive computing, race detection, cache-oblivious algorithms, and distance-education technologies.

Research Support

Support for SuperTech research is provided in part by the National Science Foundation (NSF) under Grants 0324974, 0305606, 0540248, 0615215, 0541209, 0621511, and 0615215.

Group Members

Faculty  
 
Post-Doctoral  
 
  •    Gideon Stupp
Staff  
 
  •    Alissa Cardone
Ph.D. Students  
 
Alumni  
 
  •    Daniel Adkins
  •    Christopher Barney
  •    Reid Barton
  •    David Berman
  •    Robert D. Blumofe
  •    Andrej Bogdanov
  •    Timo Burkard
  •    Ien Cheng
  •    John Danaher
  •    Matt DeBergalis
  •    Mingdong Feng
  •    Matteo Frigo
  •    Michael Halbherr
  •    Ernst Heinz
  •    Chris Joerg
  •    Zardosht Kasheff
  •    Ching Law
  •    Sean Lie
  •    Ross Lippert
  •    Phil Lisiecki
  •    Yanyuan Ma
  •    Bruce Maggs
  •    Grzegorz Malewicz
  •    Pete McCorquodale
  •    Alberto Medina
  •    Robert C. Miller
  •    Jelani Nelson
  •    Tim Olsen
  •    Aske Plaat
  •    Ryan Porter
  •    Harald Prokop
  •    Sridhar Ramachandran
  •    Keith Randall
  •    Jeremy Sawicki
  •    Siddhartha Sen
  •    Bin Song
  •    Andy Stark
  •    Volker Strumpen
  •    Richard Tauriello
  •    Nitin Thaper
  •    Sivan Toledo
  •    Svetkins Tzvetkov
  •    David Venturini

List of Projects

Adaptive Scheduling of Parallel Jobs

In this project, we are investigating adaptive scheduling and resource allocation in the domain of dynamic multithreading. Most existing parallel programming systems are nonadaptive, where each job is assigned a fixed number of processors. This strategy may lead to a poor use of available resources. A more attractive model would be an adaptive model, where processors allotted to a job change according to the job's parallelism and the system environment. We are working on developing theoretically sound and practically efficient schedulers in this model.

People to Contact:   Kunal Agrawal   Siddhartha Sen
Webpage:   More details



Cache-Oblivious Search Trees

We are investigating cache-oblivious search trees. On disk-systems they seem to outperform traditional B-Trees.

People to Contact:   Bradley C. Kuszmaul   Jeremy T. Fineman
Webpage:   More details



Cilk Implementation

Cilk (pronounced ''silk'') is a C-based, multithreaded language for parallel programming being developed at the MIT Computer Science and Artificial Intelligence Laboratory (CSAIL). Programming in Cilk is simple because protocols for job coordination and load balancing are handled automatically by Cilk's provably efficient runtime system. Cilk is particuarly effective for asynchronous parallel applications, such as sparse numerical algorithms, N-body simulations, or chess programs. The current Cilk release is Cilk-5.4.5.

People to Contact:   Bradley C. Kuszmaul   Charles E. Leiserson
Webpage:   To see the new webpage, check this page. To see the old archive, check this page.



JCilk -- Java based Cilk

We are currently developing JCilk, a Java-based multithreaded programming language. JCilk extends the Java language to provide call-return semantics for multithreading, much as Cilk does for C. Java's built-in thread model does not support the passing of exceptions or return values from one thread back to the "parent" thread that created it. JCilk imports Cilk's fork-join primitives spawn and sync into Java to provide procedure-call semantics for concurrent subcomputations. JCilk integrates exception handling with multithreading by defining semantics consistent with the existing semantics of Java's try and catch constructs, but which handle concurrency in spawned methods.

People to Contact:   I-Ting Angelina Lee
Webpage:   More details



LecTix: A Lecture-Multimedia Player

We have designed and implemented LecTix, a lecture-multimedia player that is usable, widely available, and extensible.

People to Contact:   Tim Olsen
Webpage:   More details



Race Detection

Multithreaded programs, though intended to be deterministic, may exhibit nondeterministic behavior due to bugs called determinacy races. These bugs are typically difficult to detect using normal debugging techniques such as breakpoints or print statements, as these bugs are dependent on a specific scheduling and timing.

We have a race detection tool for the Cilk programming language called the Nondeterminator. This tool augments the source code to maintain series-parallel relationships between threads and keep access histories to memory locations. We currently have serial implementations of the Nondeterminator. We are working on both more efficient serial implementations and a multiprocessor implementation. Many of the techniques we use for the Nondeterminator can be applied to other multithreaded programming languages.

People to Contact:   Jeremy T. Fineman
Webpage:   More details



Transactional Cilk

We have modified the Cilk language to allow users to specify and execute transactions atomically. We plan to use this system to investigate the issues involved when programming with transactions and when compiling for hardware transactional memory.

People to Contact:   Jim Sukha
Webpage:   More details



Unbounded Transactional Memory

Unbounded Transactional Memory is a hardware transactional memory scheme that ensures atomicity of a defined group of memory operations. Compared to lock-based approaches, UTM simplifies the programming interface and avoids common execution hazards such as deadlock and convoying. Unlike previous hardware transactional models, this approach does not limit transaction size or require a special transactional cache.

People to Contact:   Bradley C. Kuszmaul   Charles E. Leiserson
Webpage:   More details

Opportunities For Students

Current Positions:  
B  =  Bachelor's   |   M  =  Master's   |   P  =  Ph.D.

 **  There are currently no new positions being offered.

Requirements:  
 **  Resume
 **  Grade report
 **  Sample of your code (preferably C)
 **  Sample of your technical writing
 **  Cover note with any additional information

Give a hardcopy of these materials to Professor Leiserson's administrative assistant. (Please see info under "Contact Us".)

Contact Us

SuperTech can be reached through

  Alissa Cardone
MIT Computer Science and Artificial Intelligence Laboratory
The Stata Center, Building 32-G764
32 Vassar Street
Cambridge, MA 02139
USA
Tel: 617-253-2322
Email: alissa AT csail DOT mit DOT edu

Our group is located in the Ray and Maria Stata Center (MIT Building 32), on the 7th floor of the Gates tower. Detailed directions to CSAIL are available.

News

Cilk Release:   Oct. 7, 2007
The most recent release of Cilk is Cilk-5.4.5
You can obtain Cilk from the Downloads page.


 

(c) Copyright 2004 Massachusetts Institute of Technology
Last updated: 15:47:50 Thu Sep 4, 2008
by angelee

Valid XHTML 1.0!