######################################## #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.