Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 19 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ in the terminal (usually **http://127.0.0.1:1313/**); **Ctrl+C** stops both.
| Choose | What you can do |
| --- | --- |
| Member profiles | Update your details, research areas, links, awards, and portrait. |
| Publications | Add papers, abstracts, authors, tags, and related datasets. |
| Publications | Add papers, abstracts, authors, research outcomes, tags, and related datasets. |
| Personal Pages | Build a page from a template or preview your custom website. |
| Datasets and downloads | Add descriptions, related papers, download links, and files. |

Expand Down Expand Up @@ -85,8 +85,17 @@ to share that.
### Add or edit publications

Choose **Publications**, select a paper or **New entry**, and fill in
the title, year, authors, venue, paper URL, and publication type.
the title, year, authors, venue, paper links, and publication type.
Use **Year** for the paper's publication year.
Use **Published / official URL** for the published version's DOI, publisher page,
or official publication record. Use **Preprint URL** for the corresponding arXiv
or other preprint repository page. Provide at least one; both are welcome.
The published version takes priority, with a less prominent preprint link beside
it. If only a preprint is available, leave the published URL blank.
Explain significant title or version differences in **Additional
notes**. When a paper is published, add its
published URL and update the venue, year, and publication type; keep its preprint
URL as a secondary link.
Choose **Publication type** from the dropdown. If the correct type is missing,
contact the site owner to have it added.
For authors, search website members and their published name variants, or type
Expand All @@ -95,6 +104,13 @@ order shown on the paper. Tags and other item lists work the same way; you can
also paste a list with line breaks.
Add research areas and related datasets where relevant.

If the paper has public code, a benchmark, data, or a project website, choose
**Add research outcome**. Fill in its name, HTTPS link, and a short plain-text
description of what is available. You can add more than one outcome or leave
the section empty. Save and preview the publication to check the links and text.
Outcomes appear on the publication page and in its selected research areas;
changing those selections also updates where its outcomes appear.

The page identifier is assigned automatically from the original title and cannot
be edited. If it is already in use, a number is added (for example, `paper-2`).
Changing the title later keeps the original URL and adds a redirect from a URL
Expand Down Expand Up @@ -168,6 +184,7 @@ Link to an external repository for datasets larger than **20 MB**.
| --- | --- |
| Homepage text | `content/_index.md` |
| Research themes | `content/research/` |
| Research software and benchmark outcomes | Publication editor, saved in `content/publications/` |
| Navigation and site settings | `hugo.yaml` |

Use GitHub's file editor on a branch or fork, then submit a PR.
Expand Down
26 changes: 26 additions & 0 deletions assets/css/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
--accent: #86a7d8;
--copper: #9e6339;
--sage: #54724b;
--teal: #23746e;
--shadow: 0 18px 42px rgba(13, 31, 60, 0.08);
--shadow-soft: 0 10px 24px rgba(13, 31, 60, 0.06);
--radius: 1.35rem;
Expand Down Expand Up @@ -730,6 +731,20 @@ ul {
color: var(--primary);
}

.publication-links {
align-items: center;
}

.publication-links .button-secondary:hover {
background: var(--bg-alt);
color: var(--primary-deep);
}

.publication-links-compact .publication-preprint {
color: var(--muted);
font-size: 0.95em;
}

.hero-card .button {
background: var(--success);
}
Expand Down Expand Up @@ -1046,6 +1061,10 @@ a.chip {
border-top: 4px solid var(--primary);
}

.accent-teal {
border-top: 4px solid var(--teal);
}

.person-card {
display: flex;
flex-direction: column;
Expand Down Expand Up @@ -1217,6 +1236,13 @@ button:disabled { cursor: default; opacity: 0.6; }
font-size: 1.9rem;
}

.research-support-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 2rem; margin-block: 1rem; }
.research-support-logos img { display: block; object-fit: contain; }
.research-diagrams { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr)); gap: 2rem; margin-block: 2rem; }
.research-diagrams figure { margin: 0 auto; max-width: 25rem; }
.research-diagrams img { display: block; width: 100%; height: auto; }
.research-diagrams figcaption { color: var(--muted); font-size: 0.9rem; margin-top: 0.75rem; }

/* Long display equations scroll within their panel, including on phones. */
.math-block {
max-width: 100%;
Expand Down
10 changes: 9 additions & 1 deletion assets/js/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,9 @@ document.addEventListener("DOMContentLoaded", () => {
const emptyState = document.querySelector("[data-publication-empty]");
const controls = document.querySelector("[data-publication-controls]");
const researchButtons = [...document.querySelectorAll("[data-publication-research]")];
const researchAliases = new Map(researchButtons.flatMap((button) =>
(button.dataset.publicationResearchAliases || "").split(",").filter(Boolean)
.map((alias) => [alias, button.dataset.publicationResearch])));
const resultCount = document.querySelector("[data-publication-count]");
const clearButton = document.querySelector("[data-publication-clear]");
const normalize = (text) => text.normalize("NFD").replace(/\p{M}/gu, "").replace(/[‘’]/g, "'").toLowerCase();
Expand Down Expand Up @@ -197,8 +200,13 @@ document.addEventListener("DOMContentLoaded", () => {
const url = new URL(location.href);
const params = url.searchParams;
searchInput.value = params.get("q") || params.get("author") || "";
const area = params.get("research");
const requestedArea = params.get("research");
const area = researchAliases.get(requestedArea) || requestedArea;
activeResearch = researchButtons.some((button) => button.dataset.publicationResearch === area) ? area : "all";
if (requestedArea !== area) {
url.searchParams.set("research", area);
history.replaceState(null, "", url);
}
const page = params.get("page") || url.pathname.match(/\/page\/(\d+)\//)?.[1] || "1";
currentPage = /^[1-9]\d*$/.test(page) && Number.isSafeInteger(Number(page)) ? Number(page) : 1;
const filtered = searchInput.value || activeResearch !== "all";
Expand Down
2 changes: 1 addition & 1 deletion content/_index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
+++
title = "Home"
hero_subtitle = "The Middleware Systems Research Group at the University of Toronto"
hero_tagline = "Systems research that spans data, learning, and quantum computing"
hero_tagline = "Systems research that spans data, learning, quantum computing, and reliability"
+++

Traditionally, the “M” in MSRG stood for “middleware”—the Middleware Systems Research Group at the University of Toronto. But don’t worry, “middleware is literally everywhere.” Over the years, that “M” has evolved to mean “mobile,” “microservices,” “machine learning,” and, last but not least, “matter,” as in entangled particles in space-time. What *more* could you ask for?
2 changes: 1 addition & 1 deletion content/people/alexander-erben.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ slug = "alexander-erben"
role = "PhD Student"
status = "alumni"
location = "MSRG alumnus"
research = ["distributed-machine-learning"]
research = ["rca-aiops"]
orcid = "https://orcid.org/0000-0002-0153-7251"
linkedin = "https://www.linkedin.com/in/alexandererben/"
end_date = "2024"
Expand Down
2 changes: 1 addition & 1 deletion content/people/ben-cheng.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "Undergraduate Student"
status = "current"
start_date = "2023-09"
location = "Toronto, Canada"
research = ["distributed-machine-learning", "data-management"]
research = ["rca-aiops", "data-management"]
email = ""
interests = ["Machine Learning Systems", "Data Management"]
portrait = "/images/people/ben-cheng.jpg"
Expand Down
2 changes: 1 addition & 1 deletion content/people/chenkai-zhang.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ email = "[email protected]"
interests = ["AI Agent Reliability", "Fault Diagnosis"]
author_names = ["Chenkai Zhang"]
portrait = ""
research = ["distributed-machine-learning"]
research = ["rca-aiops"]
linkedin = "https://www.linkedin.com/in/chenkaizhang1/"
+++
2 changes: 1 addition & 1 deletion content/people/fei-pan.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ status = "alumni"
start_date = "2022-01"
location = "Toronto, Canada"
researchgate = "https://www.researchgate.net/profile/Fei-Pan-2"
research = ["distributed-machine-learning", "data-management"]
research = ["rca-aiops", "data-management"]
interests = ["Distributed Systems", "Byzantine Fault Tolerance", "Consensus Protocols"]
+++
2 changes: 1 addition & 1 deletion content/people/hans-arno-jacobsen.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "Professor"
status = "current"
start_date = "2000-01"
location = "Toronto, Canada"
research = ["quantum-computing-systems", "distributed-machine-learning", "data-management"]
research = ["quantum-computing-systems", "rca-aiops", "data-management"]
email = "[email protected]"
homepage = "https://www.eecg.toronto.edu/~jacobsen"
orcid = "https://orcid.org/0000-0003-0813-0101"
Expand Down
2 changes: 1 addition & 1 deletion content/people/herbert-woisetschlaeger.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "PhD Student"
status = "alumni"
start_date = "2022-09"
location = "Munich, Germany"
research = ["distributed-machine-learning"]
research = ["rca-aiops"]
interests = ["Federated Learning", "Efficient Machine Learning"]
portrait = "/images/people/herbert-woisetschlaeger.jpg"
homepage = "https://research.ibm.com/people/herbert-woisetschlaeger"
Expand Down
2 changes: 1 addition & 1 deletion content/people/jana-vatter.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "PhD Student"
status = "alumni"
start_date = "2022"
location = "Munich, Germany"
research = ["distributed-machine-learning", "data-management"]
research = ["rca-aiops", "data-management"]
interests = ["Graph Neural Networks", "Distributed Deep Learning", "Graph Processing"]
portrait = "/images/people/jana-vatter.jpg"
linkedin = "https://www.linkedin.com/in/jana-vatter/"
Expand Down
2 changes: 1 addition & 1 deletion content/people/mengli-duan.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "PhD Student"
status = "current"
start_date = "2026-09"
location = "Toronto, Canada"
research = ["distributed-machine-learning"]
research = ["rca-aiops"]
email = "[email protected]"
interests = ["Machine Learning Systems"]
author_names = ["Mengli Duan", "Dawn (Mengli) Duan", "Dawn Duan"]
Expand Down
2 changes: 1 addition & 1 deletion content/people/michalis-bachras.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "PhD Student"
status = "current"
start_date = "2023-09"
location = "Toronto, Canada"
research = ["data-management"]
research = ["data-management", "rca-aiops"]
interests = ["Data Management", "Distributed Systems"]
portrait = "/images/people/michalis-bachras.jpg"
linkedin = "https://www.linkedin.com/in/michalis-bachras/"
Expand Down
2 changes: 1 addition & 1 deletion content/people/nikolai-merkel.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "PhD Student"
status = "alumni"
start_date = "2020-08"
location = "Munich, Germany"
research = ["distributed-machine-learning", "data-management"]
research = ["rca-aiops", "data-management"]
interests = ["Graph Partitioning", "Graph Neural Networks", "Distributed Systems"]
portrait = "/images/people/nikolai-merkel.jpg"
homepage = "https://www.cs.cit.tum.de/dis/alumni/nikolai-merkel/"
Expand Down
12 changes: 7 additions & 5 deletions content/people/rev-liu.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
+++
name = "Rev Liu"
name = "Ruiwu Liu"
slug = "rev-liu"
role = "MSc Student"
role = "PhD Student"
status = "current"
start_date = "2025-09"
start_date = "2026-09"
location = "Toronto, Canada"
research = ["rca-aiops"]
email = "[email protected]"
interests = []
interests = ["VLM", "RL", "AIOps"]
author_names = []
portrait = ""
portrait = "/images/people/ruiwu-liu.jpg"
linkedin = "https://www.linkedin.com/in/ruiwu-liu-b1534827b/"
+++
2 changes: 1 addition & 1 deletion content/people/ruben-mayer.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ slug = "ruben-mayer"
role = "Post-Doc"
status = "alumni"
location = "MSRG alumnus"
research = ["distributed-machine-learning", "data-management"]
research = ["rca-aiops", "data-management"]
orcid = "https://orcid.org/0000-0001-9870-7466"
dblp = "https://dblp.org/pid/132/0330"
homepage = "https://ruben-mayer.com/"
Expand Down
2 changes: 1 addition & 1 deletion content/people/yifang-tian.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "PhD Student"
status = "current"
start_date = "2022-01"
location = "Toronto, Canada"
research = ["distributed-machine-learning"]
research = ["rca-aiops"]
interests = ["Machine Learning Systems", "Distributed Systems"]
portrait = "/images/people/yifang-tian.jpg"
email = "[email protected]"
Expand Down
1 change: 1 addition & 0 deletions content/people/yifeng-he.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ role = "MSc Student"
status = "current"
start_date = "2025-09"
location = "Toronto, Canada"
research = ["rca-aiops"]
email = "[email protected]"
interests = []
author_names = ["Yifeng He", "Yifeng (Jason) He"]
Expand Down
2 changes: 1 addition & 1 deletion content/people/yiran-li.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ role = "Post-Doc"
status = "current"
start_date = "2025-11"
location = "Toronto, Canada"
research = ["quantum-computing-systems", "distributed-machine-learning", "data-management"]
research = ["quantum-computing-systems", "rca-aiops", "data-management"]
interests = ["Graph Analytics", "Graph Learning", "Quantum Data Management", "AI Agent Reliability"]
email = ""
homepage = "https://cyanidecentral.github.io/"
Expand Down
15 changes: 15 additions & 0 deletions content/people/yuanchen-gao.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
+++
name = "Yuanchen Gao"
slug = "yuanchen-gao"
role = "PhD Student"
status = "current"
location = "HKUST, Hong Kong"
research = ["rca-aiops"]
interests = ["Root Cause Analysis", "Automated Program Repair", "AIOps"]
author_names = ["Yuanchen Gao"]
email = "[email protected]"
# PhD role and current RCA participation confirmed by the maintainer, 2026-11-01.
# HKUST group: https://cse.hkust.edu.hk/~charlesz/
# Affiliation and public email: https://arxiv.org/html/2608.17018v1
# MSRG visit dates, portrait, and personal academic accounts are unverified.
+++
2 changes: 1 addition & 1 deletion content/people/zongxin-liu.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ status = "alumni"
start_date = "2021-09"
end_date = "2023-06"
location = "Toronto, Canada"
research = ["distributed-machine-learning", "data-management"]
research = ["rca-aiops", "data-management"]
email = ""
linkedin = "https://www.linkedin.com/in/zongxin-liu-155615b6/"
interests = ["Distributed Systems", "CRDTs", "Data Consistency"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,6 @@ authors = ["Ruben Mayer", "Kamil Orujzade", "Hans-Arno Jacobsen"]
venue = "arXiv"
publication_type = "ArXiv Preprint"
research = ["data-management"]
external_url = "https://arxiv.org/abs/2001.07086"
preprint_url = "https://arxiv.org/abs/2001.07086"
abstract = "Graph partitioning is an important preprocessing step to distributed graph processing. In edge partitioning, the edge set of a given graph is split into $k$ equally-sized partitions, such that the replication of vertices across partitions is minimized. Streaming is a viable approach to partition graphs that exceed the memory capacities of a single server. The graph is ingested as a stream of edges, and one edge at a time is immediately and irrevocably assigned to a partition based on a scoring function. However, streaming partitioning suffers from the uninformed assignment problem: At the time of partitioning early edges in the stream, there is no information available about the rest of the edges. As a consequence, edge assignments are often driven by balancing considerations, and the achieved replication factor is comparably high. In this paper, we propose 2PS, a novel two-phase streaming algorithm for high-quality edge partitioning. In the first phase, vertices are separated into clusters by a lightweight streaming clustering algorithm. In the second phase, the graph is re-streamed and edge partitioning is performed while taking into account the clustering of the vertices from the first phase. Our evaluations show that 2PS can achieve a replication factor that is comparable to heavy-weight random access partitioners while inducing orders of magnitude lower memory overhead."
+++
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ year = 2025
authors = ["Jiahui Geng", "Qing Li", "Herbert Woisetschlaeger", "Zongxiong Chen", "Fengyu Cai", "Yuxia Wang", "Preslav Nakov", "Hans-Arno Jacobsen", "Fakhri Karray"]
venue = "arXiv"
publication_type = "ArXiv Preprint"
research = ["distributed-machine-learning"]
external_url = "https://arxiv.org/abs/2503.01854"
research = ["rca-aiops"]
preprint_url = "https://arxiv.org/abs/2503.01854"
abstract = "This study investigates the machine unlearning techniques within the context of large language models (LLMs), referred to as *LLM unlearning*. LLM unlearning offers a principled approach to removing the influence of undesirable data (e.g., sensitive or illegal information) from LLMs, while preserving their overall utility without requiring full retraining. Despite growing research interest, there is no comprehensive survey that systematically organizes existing work and distills key insights; here, we aim to bridge this gap. We begin by introducing the definition and the paradigms of LLM unlearning, followed by a comprehensive taxonomy of existing unlearning studies. Next, we categorize current unlearning approaches, summarizing their strengths and limitations. Additionally, we review evaluation metrics and benchmarks, providing a structured overview of current assessment methodologies. Finally, we outline promising directions for future research, highlighting key challenges and opportunities in the field."
+++
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ year = 2018
authors = ["Pezhman Nasirifard", "José Rivera", "Qunjie Zhou", "Klaus Bernd Schreiber", "Hans-Arno Jacobsen"]
venue = "Proceedings of the Ninth International Conference on Future Energy Systems"
publication_type = "Conference Paper"
research = ["distributed-machine-learning"]
research = ["rca-aiops"]
external_url = "https://doi.org/10.1145/3208903.3208927"
abstract = "Maintaining a complete and up-to-date model of the distribution grid is a challenging task, and the scarcity of open models represents a significant bottleneck for researchers in this area. In this work, we address these challenges by introducing a crowdsourcing framework for the collection of open data on distribution grid devices and an algorithm to infer the topological model of the distribution grids. We use the crowd and smartphones to collect an image and the geographical position of power distribution grid devices. Since power distribution lines are usually underground and cannot be mapped, we use spatial data analytics on the collected data in combination with other open data sources to infer the topology of the distribution grid. This paper describes and evaluates our crowdsourcing and inference approach. To evaluate our approach, we organized and conducted a crowdsourcing campaign to map and infer a sizeable district in Munich, Germany. The results are compared with the ground truth of the distribution system operator. Our field experiments show that using the crowd to recognize power distribution elements, a precision of up to 82% and a recall of up to 65% can be obtained. The numerical evaluation of our inference algorithm demonstrates that the model we inferred based on the acquired official DSO grid dataset achieves a power length accuracy of 88% compared to the ground truth. These results confirm our approach as a practical method to infer real power distribution grid models."
+++
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,6 @@ publication_type = "Conference Paper"
research = ["data-management"]
external_url = "https://doi.org/10.1145/3035918.3064043"
abstract = "Sorting is at the core of many database operations, such as index creation, sort-merge joins, and user-requested output sorting. As GPUs are emerging as a promising platform to accelerate various operations, sorting on GPUs becomes a viable endeavour. Over the past few years, several improvements have been proposed for sorting on GPUs, leading to the first radix sort implementations that achieve a sorting rate of over one billion 32-bit keys per second. Yet, state-of-the-art approaches are heavily memory bandwidth-bound, as they require substantially more memory transfers than their CPU-based counterparts. Our work proposes a novel approach that almost halves the amount of memory transfers and, therefore, considerably lifts the memory bandwidth limitation. Being able to sort two gigabytes of eight-byte records in as little as 50 milliseconds, our approach achieves a 2.32-fold improvement over the state-of-the-art GPU-based radix sort for uniform distributions, sustaining a minimum speed-up of no less than a factor of 1.66 for skewed distributions. To address inputs that either do not reside on the GPU or exceed the available device memory, we build on our efficient GPU sorting approach with a pipelined heterogeneous sorting algorithm that mitigates the overhead associated with PCIe data transfers. Comparing the end-to-end sorting performance to the state-of-the-art CPU-based radix sort running 16 threads, our heterogeneous approach achieves a 2.06-fold and a 1.53-fold improvement for sorting 64 GB key-value pairs with a skewed and a uniform distribution, respectively."
# Preprint correspondence checked against the author-deposited manuscript and published citation.
preprint_url = "https://arxiv.org/abs/1611.01137"
+++
Loading
Loading