CS 252 Project (Pre) Proposal March 14, 2003 Yozo Hida (yozo@cs.berkeley.edu) Paul Huang (pbhuang@bmrc.berkeley.edu) Rajesh Nishtala (rajeshn@cs.berkeley.edu) Here are three possible topics (in no particular order) we are considering for our CS 252 project. 1. Cache design for multithreaded processors. Since current cache designs are mostly evaluated based on single threaded code performance, there may be some design parameters favoring multithreaded code, such as + static or dynamic pooling or partitioning of cache. + exploiting positive interference between threads. + reducing negative interference between threads. + multithreading means cache hits may have more latency, allowing more complex cache designs. + what to do with speculative threads. The plan is to investigate the performance impacts of multithreading on the current cache design, on a specific set of workload (such as sparse matrix multiply). Then we will investigate the effect of one or more changes in the cache design on the performance. 2. Effective computation over network sensors. Since each sensor comes with some intelligence, we can imagine a sensor network doing a distributed computation. For example, we can extend TinyDB to a simple computation to be done over network (perhaps a coarse approximation of value distribution). We can also investigate how to efficiently gather / scatter data needed by each sensor node in less-than-ideal conditions: moving nodes, unreliable communication links, and faulty / malicious nodes. 3. Effective computation over network attached storage Traditionally, many data intensive computation (such as sparse matrix multiply) require large I/O bandwidth just to get the data to perform the computation. With network attached storage, each device comes with considerable intelligence, so we can investigate whether there are ways to efficiently process the data before sending it over the network. We will consider the effects of network characteristics, load balancing, storage layout, and various algorithms to efficiently perform such computation. In particular, we can investigate whether this is possible under the current proposed iSCSI protocol and how to extend it to support such computation over storage. Alternatively: we can look at the current state of network attached storage and investigate its performance compared to things like NFS. This will include designing a set of benchmark that illustrate the relative advantage (or lack of) of NAS.