Daniel Ellsworth

Visiting Professor
Tutt Science, 206A

Computing Interests

HPC Power Management

My Ph.D. work was on power scheduling for high performance computing (HPC) systems. A single energy efficient large scale HPC system is capable of consuming upwards of 10 megawatts of power, though generally these systems consume only 70% of their maximum. The rate of energy consumption can change substantially and rapidly (several megawatts in under a second) which can create a significant problem for the power grid. My work looks at how to tightly enforce a variable upper bound on total system power consumption.

Realtime Distributed System Introspection

The power scheduling work grew out of my interests in realtime introspection for large scale distributed systems. Large scale computing systems are composed of many geographically dispersed nodes. Management and operations of these platforms can be extremely challenging since errors and poor performance may involve complex interactions between a large number of nodes.

Colorado College Teaching

2018-2019 Academic Year

2017-2018 Academic Year

Colorado College Projects

HPC Cluster

HPC computing resources are a useful resource for scientific research and education. Using hardware generously provided by ITS, I built and operate the Math and Computer Science Computational Network (mcscn). This cluster is available to support student and class projects needing compute resource beyond those provided by a commodity laptop. Some additional information on mcscn can be found here.

Reviewed Publications

First Author


Past Lives

Graduate School Era - 2011-2017

Teaching - Instructor of Record

Teaching - Teaching Assistent

Teaching - Special Projects


Industry Era - 2005-2011

Between my undergraduate and graduate studies, I ran a micro-company in the DC metro area. The projects I worked on fell into three basic categories: big data, operational support systems, and professional training.

Big Data Projects

The largest system I worked on could ingest 2.5 terabytes of operational data per day, 30000 records per second from sources distributed all over the world, and report on events within 40 seconds of occurrence via a relational database. A custom ETL framework was developed to support the rate of data ingestion and deliver high availability. Presenting the data through a traditional relational database provided data consistency and an ability to easily present and analyze the data in the context of other business data.

Several systems of this shape were built different customers, tailoring to their specific business needs and enterprise information architectures. These systems reduced customer service costs, automatically detected misconfigurations, analyzed internal network traffic, and supported information security activities.

Operational Support Systems

Operational support systems (OSSes) are the business applications that track and manage business processes that involve both automated and manual components. My first OSS project was a 12 week project that handled order intake and tracking for a small company. I was responsible for requirements gathering, system implementation, migration of legacy data, and training. The system freed 1 full-time employee, improved customer satisfaction, and enabled a business model for the customer.

Professional Training

As companies deploy new systems and bring on new talent, training is required to keep up worker efficiency. One of the more interesting training projects was a one week, 35 hour, training course for employees needing to make modifications to a web application deployed at over 100 sites. Each of the sites had its own instance of the application and the modifications needed were specific to the site. The application had been developed over 15 years and contained several competing web design patterns and technologies that had emerged over that time. Over the 35 hours of class time, students were taught perl, javascript, SQL, and a custom web framework.

College Era - 1998-2005

During my undergrad I worked as a web developer, linux systems administrator, and help desk technician for various departments at the University of Oregon. I also did a little work in support of research efforts in software analysis and networking.