Writing More Code with AI Agents

I recently gave a SHARCNET General Interest Webinar called “Writing More Code with AI Agents.” More than 300 people registered. Attendance was excellent, there were lots of questions, and I’ve had a decent number of follow-up conversations over email. Pretty happy with how it turned out! The response also confirmed why I wanted to give the talk. People are constantly asking me agents and what they should be doing with them. They’re watching other researchers and developers move very quickly with these tools, and there’s a real fear of missing out. They want to try them, but they don’t necessarily know where to start or how much of the output they should trust. ...

2026-08-27 · 6 min · Tyler Collins

Serial Farms: Package Options and When to Switch to Farming

Submitting a few small jobs one at a time is fine. Submitting hundreds that way is annoying for you and hard on the scheduler. This webinar compared ways to group lots of serial tasks into manageable jobs. I covered when ordinary submissions stop making sense, how array indexes can drive repeated runs, and when it is time to use a serial farm. Abstract Small jobs are convenient to submit individually, but at scale they can overload a scheduler, inflate queue times, and ultimately reduce throughput. This webinar examines practical strategies for consolidating large numbers of short tasks, including job arrays, task-bundling techniques, and wrapper-based aggregation. We will discuss how these approaches differ in overhead, portability, scheduler behavior, and job-failure handling. The session will also provide guidance on recognizing when packaging options no longer yield sufficient throughput and when transitioning to a serial-farming model becomes advantageous. Serial farms can mitigate scheduler pressure, improve wait times on busy clusters, and offer more predictable performance. Examples will be provided throughout the webinar and shared on GitHub for future reference. ...

2025-12-03 · 1 min · Tyler Collins

Revisiting Cython: Is It Still Effective?

I first presented Cython in 2020. Five years and several major releases later, I wanted to see whether that old advice still held up. This talk looked at what changed in Cython, whether it got faster, and whether it became any easier to use. I worked through a few demo problems and compared the results with modern Python and its performance libraries. Abstract Python is often praised for its speed of development but criticized for its execution speed. However, this has changed significantly in recent years due to major improvements in both Python itself and its most popular libraries. Libraries such as TensorFlow, OpenCV, NumPy, and Pandas all use a tool called Cython. Cython is an extension of Python that allows functions to be compiled into C or C++, mitigating Python’s performance limitations. ...

2025-03-26 · 1 min · Tyler Collins

Diagnosing Wasted Resources from User-Facing Portals

A slow job and a slow queue are different problems. This talk was about using the national cluster portals to figure out which one you’re dealing with. I covered job history, account priority, wait times, and resource-use reports. The examples looked at CPU, memory, and GPU requests that did not match the work being done. The point was to check the evidence before changing a job request. Abstract Researchers often leave resources on the table when specifying their job requirements on the national systems. This talk builds on previous sessions and uses the Digital Research Alliance of Canada’s User Facing Portals to explore what different types of jobs look like when they waste resources. Demonstrations will include interactive jobs, parallel jobs, GPU workflows, and more. With more accurate job specifications, researchers can expect shorter wait times and more throughput on any general-purpose system. ...

2024-08-14 · 1 min · Tyler Collins

Modern Approaches to Profiling in Python with Scalene

Before rewriting slow Python or moving it into Cython, it helps to find out what is actually slow. This Compute Ontario Colloquium was an introduction to Scalene. Scalene separates time spent in Python from time spent in native libraries, and it can also profile memory and GPU use. I ran it on the Alliance systems from a Jupyter notebook, then compared native Python, vectorized code, Cython, and just-in-time compilation. Abstract Python is a language developers choose to write in for convenience rather than speed. However, speed can be recovered by offloading calculations to libraries which leverage lower-level languages like NumPy, Cython, and more. Scalene is a high-performance CPU, GPU, and memory profiler which can illustrate where code should be passing calculations to other libraries for significant increases in speed. Scalene also includes support for Jupyter Notebooks, OpenAI suggestions for vectorizing code, as well as a significantly lower overhead and higher accuracy than other profilers. This talk will introduce the concepts required for understanding why external libraries are faster than native Python, interactions with approaches such as Cython and just-in-time compilers, as well as a live demonstration of Scalene on the Alliance systems inside of a Jupyter Notebook. Familiarity with Python, virtual environments, and Jupyter notebooks will be assumed. ...

2023-05-03 · 2 min · Tyler Collins

Creating and Distributing Python Packages

In 2022, I gave a talk on creating and distributing Python packages. I used Cookiecutter to show how a template could turn an empty directory into a package with a predictable structure. The goal was to make packaging less mysterious. A new Python package needs more than a folder of source code. It also needs metadata, tests, documentation, a licence, and enough structure that someone else can install it and contribute to it. Cookiecutter gave us a concrete example to inspect instead of building every file by hand. ...

2022-09-21 · 2 min · Tyler Collins

Conquering the Scheduler

Coming from a slightly different angle this time, I found that researchers were often isolating themselves to fewer resources on HPC systems by not investigating what the node feature mixture looked like. As such, this talk was created to help direct potentially abstract development efforts toward optimizing for the feature sets that are most available on an HPC cluster. Below is my abstract for the talk as well as the recording: ...

2022-03-22 · 1 min · Tyler Collins

Pandas Recipes for New Python Users

Eventually I got to the point in data analytics where keeping things in lists, or lists of lists, was no longer quite cutting it. My processing was slowly starting to grind to a halt, and things were getting way too abstract. I decided to call up a friend who had worked in the business longer than me, and they suggested “pandas.” I was vaguely familiar with it because users and clients had used it in the past. A “DataFrame” did sound like it would take care of a lot of my problems after reading the documentation casually… ...

2022-03-21 · 2 min · Tyler Collins

Cython: A First Look

Back when I first got hired at SHARCNET, I used a lot of Python. I mean a lot. This meant I quickly became the lightning rod for all Python-related questions and commentary. During a fun Friday chat, a colleague remarked that Python was, on average, 40x slower than C++. I defended my current language of choice, saying it was better than that, surely. To make a long story short, I was wrong. It really is about 40x slower depending on the problem. Determined to prove myself capable, and my language of choice a bit more defensible, I decided to look into ways to make Python faster. ...

2022-03-20 · 2 min · Tyler Collins