Department of Information Technology

Main Research Topic

The main topic of my research is Task Based parallel programming and its advantages in High Performance Computing. Using Task Based programming has started by my supervisor Elisabeth Larsson since 2008 and a shared memory framework is already developed within this research group. I mainly work on a distributed version framework and bind the frameworks together to have a hybrid way of parallelism in distributed and shared memory environments.

  • Task Based Parallel Programming
Task based parallelism, lets the programmer to write a program in sequential way using tasks that work on data. There is no need for the program to contain explicit concurrency controls and constructs like parallel for loops or mutex and locks. The tasks and their dependency to data are defined and submitted to the framework who extracts the available parallelism and schedules them to run in parallel.


  • DuctTeip framework.
It is the distributed version of the SuperGlue framework see here. These frameworks run data-dependent tasks in parallel. The SuperGlue framework is used for shared memory multi-core architectures and DuctTeip is using Message Passing mechanism for distributed memory/computing environments. Using these two frameworks together, a program can run in parallel in a hybrid way.
Main features of DuctTeip are:
  • Transparent asynchronous communication overlapping with computations
  • Data partitioning in hierarchical multi-levels (locality)
  • Decentralized task submission and execution (scalability)

The code repository can be found on GitHub.

  • Unified Task Programming (UTP)
This is an abstraction layer over task based frameworks that hides the differences among frameworks while providing a single interface for the programmer to use tasks and data in a generic way. This framework defines a generic interaction protocol between task-based frameworks that inter-operate to each other to define/submit/run the tasks.
Writing wrappers around existing frameworks to meet the protocol requirements, makes them ready to cooperate with each other using UTP layer.
The main achievements in UTP are:
  1. The task based frameworks can switched on/off at run time.
  2. Using UTP, the program can run on any compliant task-based framework
  3. Using wrappers around following frameworks:
  • DuctTeip (distributed environment)
  • SuperGlue (multi-cores architectures)
  • BLAS library (cpu)
  • cuBLAS library (cuda BLAS for GPU)

a single program written in UTP, can be executed in hybrid and heterogeneous combinations of parallel processors on multi nodes/cores/GPU's with no change.


  • Programming Bridging course 10hp, 1TD046, Python, C/C++
    • HT15 Main Teacher
    • HT14 Teaching Assistant
    • HT13 Teaching Assistant


  • SIAM PP16. Unified Interface for Task Based Frameworks
  • SIAM PP14. DuctTeip: A Task-Based Parallel Programming Framework with Modularity, Scalability and Adaptability Features
Updated  2016-09-28 11:21:50 by Afshin Zafari.