University of Cyprus - DDMGroup

Data-Driven Multithreating Research Laboratory, University of Cyprus

Welcome to the Data Driven Multithreading Research Group Laboratory (DDM) website. The Group is involved in research activities regarding Data-flow/Data-Driven architectures and Parallel execution. The Founder and Director of DDM is Professor Skevos Evripidou, professor at the Department of Computer Science, UCY and the Associate Director is Dr Petros Panagi, Special Teaching Staff at the Department of Computer Science, UCY.



The Data-Driven Multithreading (DDM) Model

Data-Driven Multithreading (DDM) is an execution model that combines the benefits of the Data-Flow model in exploiting concurrency with the efficient execution of the control-flow model. DDM decouples the execution from the synchronization part of a program and allows them to execute asynchronously, thus tolerating synchronization and communication latencies efficiently.


The core of the DDM model is the Thread Scheduling Unit (TSU) responsible for scheduling threads at run-time based on data-availability. DDM is a non-blocking multithreading programming model. A thread is scheduled for execution when all the data it requires is available in memory. This means that once a thread starts executing it continues un-interrupted until completion. In addition, DDM utilizes data-driven caching policies to implement deterministic data prefetching which improves locality drastically.



DDM Program Execution

DDM  programs consist of two parts: the code of the DDM threads and the synchronization graph describing the consumer-producer dependencies amongst the threads. At the start of a DDM program execution the dependency graph (consisting al all the synchronization templates of the program threads) is loaded into the TSU and used to schedule threads based on data-availability. When a thread finishes execution the TSU uses the graph to identify and update its consumers. Once the data of a consumer thread is produced, the CacheFlow module in the TSU prefetches that data from main memory to the cache of the processor where the consumer thread is scheduled to run. After the prefetching completes the thread is ready to be started.



DDM Projects

In the past years DDM research has spawned multiple projects:


The Data-Driven Network of Workstations D2NOW

The Data-Driven Network of Workstations (D2NOW) is the first implementation of DDM. D2NOW was a simulated cluster of distributed machines augmented with a hardware TSU. D2NOW CacheFlow optimizations showed that Data-Driven scheduling could generally improve locality, contrary to the conventional wisdom at that point.



Thread Flux (TFlux)

TFlux is the second DDM project which placed an emphasis on portability. It developed a portable software platform that runs natively on a variety of commercial multi-core systems, and provided a complete programming toolchain. TFlux also developed the first full system simulation of a DDM machine.



The Data-Driven Multithreading Virtual Machine (DDM-VM)

The Data-Driven Multithreading Virtual Machine (DDM-VM) is a virtual machine that supports DDM execution on homogeneous and heterogeneous multi-core systems. DDMVM virtualizes the parallel resources of the underlying machine and uses a general, unified representation for DDM programs. The representation is flexible enough to incorporate additional information needed to optimize the DDM execution for different target architectures. The DDM-VM runtime system, composed mainly of the TSU, handles the tasks of thread scheduling, execution instantiation and data prefetching implicitly.

DDM-VMc [Link]

DDM-VMs [Link]



Designed by