########################################
#Written by David Tam, 2000.           #
#davidkftam@netscape.net Copyright 2000#
########################################

Master's Thesis In Progress
---------------------------

    I am currently porting the Hurricane File System (HFS) to the K42 operating
system (OS) and analyzing the combined performance of both systems. I intend to
optimize the performance of HFS for the K42 OS.

    HFS was originally developed at the University Toronto by Krieger [1] for
the Hurricane OS and Hector multiprocessor computer. K42 is currently being
developed and studied by the OS research group at the University of Toronto in
collaboration with IBM Research. K42 is an OS designed to address performance
and scalability issues in non-uniform memory access (NUMA) computer systems.
These systems consist of a network of multiprocessor computers that have
unequal access times to shared memory.

    Since HFS was initially designed for a previous generation platform,
porting and optimizing HFS for the current platform will expose the strengths
and weaknesses in the design of HFS and K42. My research will provide valuable
feedback to the OS research group concerning the design of K42. The
optimization process will lead to an understanding of how NUMA operating
systems affect the design, implementation, and performance of file systems.



[1]	O. Krieger, "HFS: A Flexible File System For Shared-Memory
    Multiprocessors," Ph.D. Thesis, Department of Electrical and Computer
    Engineering, University of Toronto, October, 1994.


--------------------------------------------------------------------------------


1. Outline of proposed research
   ----------------------------

    I propose to conduct research in the area of operating systems and computer
architecture with the goal of improving the performance of NUMA multiprocessor
computers. These types of computers are becoming increasingly economical and
popular. Yet, performance has not scaled linearly with the number of processors
used. One reason for this behaviour is the lack of technological advances in
operating systems designed for NUMA multiprocessors. Most of these operating
systems were originally intended for single processor computers and have been
retro-fitted to accommodate NUMA multiprocessor computers as an after-thought.
Such a solution leads to inefficiencies since it fails to fully account for the
hardware differences. Designing an operating system from the ground up for this
new hardware platform would address many of the shortcomings of simply
retro-fitting and improve performance dramatically. However, this task is a
relatively new challenge to industry and academia. Further research is required
to understand the behaviour of various aspects of the operating system in this
new environment. The areas within the operating system that can be examined for
performance improvements include input/output subsystems, file systems, shared
memory architectures, communication protocols and mechanisms, and scheduling
algorithms.

    My research will focus on one of these specific areas and lead to a
doctoral thesis. I will decide upon the specific area by September 1, 2002,
which is the deadline for thesis proposal submissions as specified by my
department. My specific objectives are to find a particular aspect within NUMA
operating systems that has potential for optimization and overall performance
improvement, observe, analyze, theorize, and improve upon its design. This
particular component would be redesigned and re-implemented. Testing of the new
design will be conducted on the K42 software platform and NUMAchine hardware
platform. K42 is an experimental operating system while NUMAchine is an
experimental NUMA multiprocessor computer both built at the University of
Toronto.

    The stages of my research include the following. To meet the requirements
of a doctoral degree, three graduate level courses will be taken from September
1, 2001 to December 31, 2001. Two additional courses will be taken from January
1, 2002 to April 30, 2002. A qualifying oral examination will be taken in
February 2002. These courses will give me an advanced background in computer
software, hardware, architecture, and theory. This background will allow me to
conduct research and development in an efficient and effective manner.  From
May 1, 2002 to September 1, 2002, preliminary research will be conducted in the
preparation of a thesis proposal. A thesis proposal will be drafted and
submitted by September 1, 2002, as previously mentioned. An oral presentation
and defense of the proposal will occur in November 2002. From November 2002
onwards, advanced research will be conducted, which will include designing and
developing improvements, verifying these improvements using analytical
techniques, and implementing the solutions on the K42 operating system and
NUMAchine multiprocessor. From January 2004 to September 2004, implementation
will continue, and experimental verification and validation of performance will
be conducted. Writing of the thesis will occur during the period of September
2004 to May 2005. In May 2005, two oral presentations of the thesis will be
delivered in the form of a departmental thesis examination and a final oral
examination.

    My research will be conducted under the broader goals of the operating
systems research group at the University of Toronto. The goals of the research
group are to improve and understand the performance aspects of NUMA
multiprocessors through operating systems design. I will be researching one
particular aspect and contributing knowledge that will lead the group closer to
achieving these goals.



2. Justification for location of tenure
   ------------------------------------

    The University of Toronto provides the necessary resources for successful
research in the area of operating systems for NUMA multiprocessors. The
Department of Electrical and Computer Engineering at the university is the
largest of its kind in Canada. As such, it contains a wealth of resources in
the form of professors, researchers, graduate students, library facilities,
advanced computer facilities, and connections with industry. In particular, the
operating system research group collaborates closely with IBM Research (at the
T. J. Watson Research Center) in designing and developing the K42 operating
system for research purposes. This mutual arrangement enables the group to
access the knowledge and resources available at a world-class research
laboratory.

    Having completed my bachelor and master degree at the university, I will be
thoroughly familiar with the resources available in the department. Upon
starting my doctoral studies, I will have been a member of the operating system
research group for two years. Continuing my studies at the University of
Toronto will be a natural progression and allow me to conduct research
efficiently and effectively.



6. Applicant's statement
   ---------------------

a) Research experience

    I have gained a variety of experiences from my fourth year computer
engineering undergraduate design project, which involved building a web-enabled
automated train system. At the University of Toronto, the traditional computer
engineering undergraduate thesis was replaced by a mandatory design project. I
have gained experience in conducting independent investigation, working
collaboratively, designing and developing complex software systems, and
developing communication skills. Independent investigation included designing
and developing a simulation engine for the train system. Collaborative
experience included high-level design of the simulation software, integration
of the entire software system, and management and coordination duties.

    As a part of a graduate course in parallel programming and computer
architecture, I conducted research to identify the sources of operating system
performance bottlenecks in web servers. Designing the experiments involved
creating a suitable test environment by choosing an appropriate workload,
providing a suitable network topology, and selecting the performance metrics to
be acquired.  The actual execution of the experiment gave me experience in (1)
scheduling experimental runs, (2) monitoring the experiment (3) dynamically
determining the subsequent experiment to run based on the results of the last
run, and (4) managing the acquired data. Analysis of the large amounts of
collected data provided another set of experiences such as (1) determining how
to process the data into useful information, (2) validating the results, (3)
determining the significance of the results (3) presenting the results in
format that is easily understood and useful to others, (4) deciding whether
more experimental runs are needed, and (5) determining the success or failure
of the research project. 

    As a second year master student who is currently porting a large software
subsystem to the K42 operating system, I have gained experience in (1) studying
past work performed by a fellow researcher, (2) collaborating with fellow
researchers to determine the direction of my research, (3) partitioning a large
task into manageable pieces, and (4) understanding and using the existing
research infrastructure developed by fellow researchers.

    Through these activities, I have acquired a variety of experiences that are
valuable in performing effective and efficient research.


b) Relevant activities

    I participate in a weekly operating systems reading group meeting where
recent journal articles are analyzed, discussed, and debated in an open forum.
Occasionally, I act as the moderator in these meetings. These meetings give me
exposure to current research in the field of operating systems and assist in
developing analytical and critical thought processes. I participate in a weekly
project development meeting where weekly progress on the K42 operating system
development is reviewed and discussed. I also participate in a weekly compiler
reading group meeting to acquire knowledge and insight in an adjacent field of
research. I believe that expertise in all three fields of computer
architecture, operating systems, and compilers is necessary to effectively
tackle the issues of performance in NUMA multiprocessor computers. I perform
teaching assistantship duties on a weekly basis for two undergraduate
engineering laboratory sessions. My duties include directing students in the
laboratory, evaluating student performance, grading laboratory preparation
work, and assisting students who have difficulties.


c) Research career

    My career goals are to design, develop, and improve operating systems for
various hardware platforms. These platforms range from handheld computers, to
uniprocessor personal computers, to mid-sized multiprocessor servers, to large
supercomputers containing hundreds of processors. I am interested in both the
software and hardware realms of the computer field. I find that by pursuing
research and development of operating systems, I am able to work at the
leading-edge and at the boundary between these two worlds.

    Source: geocities.com/siliconvalley/campus/9640/Grad

               ( geocities.com/siliconvalley/campus/9640)                   ( geocities.com/siliconvalley/campus)                   ( geocities.com/siliconvalley)