K42 has been designed to achieve scalable performance. To date, this has been our primary focus. More recently, we have started to tune uniprocessor performance. The goal of our K42 design is to achieve near perfect scalability while still maintaining uniprocessor performance very close to that of other operating systems. Moreover, as Linux makes additions for multiprocessor performance, K42 should be able to match or better Linux's uniprocessor performance through our use of specialization and hot-swapping[5][24].
In this section we describe the SPEC SDET benchmark[2] and its performance on both K42 and Linux. The experiment shows that Linux out-performs K42 on a uniprocessor (we continue to work to reduce this gap), but that K42 significantly outperforms Linux on a medium size (24-way) multiprocessor.
The Standard Performance Evaluation Corporation (SPEC) Software Development Environment Throughput (SDET) benchmark consists of a script that executes a series common Unix commands and programs including ls, nroff, gcc, grep, etc. Due to missing infrastructure, for our experiemnts (both K42 and Linux), the SDET benchmark was modified by removing the system utilities ps and df. Each of the commands in the script are run in sequence. To examine scalability we ran one script per processor. We ran the same script on both K42 and Linux 2.4.19 as distributed by SuSE with the O(1) scheduler patch. All the user programs (bash, gcc, ls, etc.) are the exact same binary. The same version of glibc 2.2.5 was used, but modified on K42 to intercept and direct the system calls to the K42 implementations. The experiments were run on an S85 Enterprise Server IBM RS/6000 PowerPC bus-based cache-coherent multiprocessors with 24 600MHZ RS64-IV processors and 16GB of main memory.
Figure 6 shows the results from the experiment. The script is timed and results are reported in thousands of scripts per hour. On a uniprocessor, Linux achieves 1905.2 scripts/hour and K42 runs 1575.0. K42 suffers about a twenty percent performance degradation on a uniprocessor. Linux reaches a peak of 18749.0 at 16 processors and by 24 processors executes at a rate of 12710.7 scripts/hour. K42's performance surpasses Linux by 10 processors, at which point K42 executes 14912.6 scripts/hour while Linux executes 14856.0 scripts/hour. K42 continues to scale well through 24 processors where its peak of 33808.1 scripts/hour is achieved yielding an efficiency of 89.4 percent. These results demonstrate the effectiveness of K42's scaling.
We continue to work on our scaling to increase our efficiency to 100 percent. There is also continuing work to help Linux to scale better, and 2.6 is expected to demonstrate better scalable performance. Concurrently, we are working on K42's uniprocessor performance.
One of the advantages of K42 is the object-oriented model and the resulting well-modularized structure allowing well-contained coding experiments to be implemented. We hope to see an increase in interest in using K42 for a rapid prototyping tool as well as a platform to pursue scalable and first-class customization research. Recently, there has been an increase in interest from academic collaborators looking to use K42 as a base to pursue research, and we look forward to continuing to support increased activity with K42.