Runtime systems for concurrent languages have begun to utilize feedback mechanisms to influence their scheduling behavior as the application proceeds. These feedback mechanisms rely on metrics by which to grade any alterations made to the schedule of the multi-threaded application. As the application's phase shifts, the feedback mechanism is tasked with modifying the scheduler to reduce its overhead and increase the application's efficiency.

Cooperativity is a novel possible metric by which to grade a system. In biochemistry the term cooperativity is defined as the increase or decrease in the rate of interaction between a reactant and a protein as the reactant concentration increases. This definition translates well as an information theoretic definition as: the increase or decrease in the rate of interaction between a process and a communication method as the number of processes increase.

This work proposes several feedback mechanisms and scheduling algorithms which take advantage of cooperative behavior. It further compares these algorithms to other common mechanisms via a custom extensible runtime system developed to support swappable scheduling mechanisms. A minimalistic language with interesting characteristics, which lend themselves to easier statistical metric accumulation and simulated application implementation, is also introduced.

Library of Congress Subject Headings

Computer scheduling--Quality control; Data transmission systems; Programming languages (Electronic computers); Electronic data processing--Distributed processing

Publication Date


Document Type


Student Type


Department, Program, or Center

Computer Science (GCCIS)


Matthew Fluet

Advisor/Committee Member

James Heliotis

Advisor/Committee Member

Rajendra K. Raj


Physical copy available from RIT's Wallace Library at QA76.9.D5 D43 2014


RIT – Main Campus

Plan Codes