Research

I study how to run large workflows on shared cloud infrastructure using less energy, and I want to make the scheduling decisions behind them easier to reason about.

  • Workflow scheduling
  • Energy efficiency
  • Graph neural networks
  • Deep reinforcement learning
  • Multi-objective optimisation
  • Compilers & PL

MSc research: energy-aware workflow scheduling

My MSc by Research at the University of Moratuwa, supervised by Dulani Meedeniya, looked at scheduling scientific and data-processing workflows on the cloud. A workflow is a directed acyclic graph of dependent tasks. The scheduler decides where and when each task runs, and it has to balance energy use against makespan and other service objectives instead of optimising one number.

The main result is 2SD-GAT. It encodes the workflow and the cluster state with a graph attention network and makes placement decisions with two-stage deep reinforcement learning (IEEE Access, 2026). Earlier work handled workflows that arrive dynamically, using deep learning (Sensors, 2025). A survey organises energy-aware, multi-objective scheduling techniques into a taxonomy (Computer Science Review, 2027). The scheduler was trained and evaluated on synthetic workflows and on real-world task traces from Google's production clusters, including runs with VM failures and inaccurate runtime estimates.

2SD-GAT pipeline. A workflow DAG and cloud hosts with VMs feed a simulated environment. The environment sends task, VM and DAG features to a two-stage agent: a stage 1 task actor picks a task and a stage 2 VM actor picks a VM, both using a GAT task encoder. A PPO optimiser updates the policy from a preference-based reward over makespan, energy and QoS penalty. Multiple agents with different preference vectors produce Pareto solutions, evaluated with hypervolume and IGD against other algorithms.
Figure 1 · Training and evaluation setup: agents trained with different preference weights trace out a Pareto front. From Chandrasiri & Meedeniya, IEEE Access 14 (2026), Fig. 3, CC BY 4.0.

Earlier work: languages and tools

At WSO2 I designed and built Ballerina Shell, a read-eval-print loop for the Ballerina language that now ships with the official compiler (documentation), and fixed bugs for the compiler frontend team. My undergraduate final-year project produced CH-Bin, a convex-hull based method for binning metagenomic contigs, published in 2022.

Next: schedulers you can reason about

Learned schedulers perform well, but they are hard to inspect. When a policy makes a poor placement, it is difficult to say why, or to guarantee it won't happen again. In a PhD I want to keep the efficiency gains of learning-based resource management while making the decisions explainable and checkable. One route I find promising comes from compilers and programming languages: treating workflows and their resource needs as programs to analyse, transform and optimise with explicit cost models.

Questions I'd like to work on: intermediate representations for distributed workflows; static analysis of resource and energy behaviour; scheduling as a compiler pass with provable bounds.