Projects and Publications
I'm a research engineer at Intel Corporation. I happen to work in a special part of Intel Research where almost all of the work we do is public and non-proprietary, which is great, because I can tell you all about what I work on. In my tenure at Intel I have worked on several projects, but here are some highlights:
Internet Suspend Resume
Internet Suspend/Resume (ISR) is a new approach to mobile computing in which a user's computing environment follows the user through the Internet as he or she travels. Today, when a laptop computer is closed, the user's execution state is suspended to disk. When the user moves the laptop to a new physical location, the user may re-open the laptop, and resume working in the same environment that was active at the time of suspend. The goal of the ISR project is to achieve the same effect without requiring the user to transport physical hardware.
For example, imagine a telecommuter who works from home in the morning and at the office in the afternoon. After completing a morning's work, the user clicks "suspend" on the home machine and begins to travel to the office. While the user is en route, the state of the user's computing environment is also en route, through the network, to the machine in the user's office. When the telecommuter arrives at the office, the office machine is presenting the same environment that the user left at home: the same applications and files are open, the windows are all in the expected places, and the cursor is in the appropriate location.

The capabilities of ISR are realized through a combination of two well-studied technologies: virtual machine technology and distributed files systems.
Virtual machine technology is used to capture the user's computing environment at the time of suspend. This environment consists of the user's operating system, applications, data files, customizations and the current execution state. By leveraging virtual machines, this state is re-instantiated directly on the machine at the resume site. This is not a thin-client approach, all process execution and computation takes place on hardware near the user. Therefore, ISR is able to provide the low-latency interactivity that users have come to expect.
One of the great challenges of ISR is that the state associated with a user's computing environment may be large: tens of gigabytes in size. ISR research at Intel Research Pittsburgh has focused primarily on reducing the time required to move this state through the network. We employ distributed file system technology to manage the transport of this state and have investigated a number of novel techniques for improving the operation of the distributed file system.
For example, the ISR team is currently exploring the augmentation of distributed file systems with Content Addressable Storage (CAS) technology. With CAS technology, users may leverage the storage associated with small devices and nearby computers to improve the performance of the ISR system without sacrificing security or robustness.
In addition to serving mobile computer users, ISR technology may also be of particular interest to Information Technology (IT) departments for medium to large organizations. Leveraging the ISR encapsulation of user state, IT departments may provide enhanced services by centrally managing the computing environments for all the users in the organization. As Internet Suspend/Resume becomes more pervasive, users will find themselves able to access their computing environment from any connected computer.
Selected ISR Publications:
Diamond
Our goal is to enable interactive search of terabyte-scale, non-indexed collections of complex data (such as photo collections, satellite pictures and medical images) by exploiting recent advances in active disk technology. The Diamond System provides a common infrastructure and API for building search applications in a variety of domains (e.g., medical imaging or oceanography). This allows application developers to focus their efforts on addressing the domain-specific aspects of the problem while relying on Diamond to provide an efficient, parallelized implementation of the search task.

Tasks which satisfy the following criteria can be expressed well in Diamond: (1) objects can be processed independently, and in any order; (2) the search task can be decomposed into a sequence of filter steps. The former allows Diamond to search objects (spread across many storage devices) in an efficient manner. The latter enables Diamond to execute some of the (simpler) search steps on the active storage device and others on the user's machine. Diamond can dynamically balance computation so that powerful active storage devices will execute a greater fraction of the task. The collection of filters is termed a searchlet, and a searchlet encapsulates all of the domain-specific aspects of the search application. For example, in a homeland security application, the searchlet could contain specialized routines for face recognition. The searchlet API insulates the application programmer from the back-end, and applications do not need to be re-implemented as active storage systems evolve.
To test the Diamond system, we have developed Photofinder, a proof-of-concept application, that allows users to interactively search large collections of unlabeled photographs.
Selected Diamond Publication:
Dynamic Physical Rendering
In the Dynamic Physical Rendering Project, researchers at the Intel Pittsburgh Lablet and Carnegie Mellon University are jointly exploring a new form of smart matter which would be composed of myriad tiny robots acting together for telepresence, teleoperation, material handing/manipulation, locomotion, and distributed sensing. "Ensembles" of thousands to millions of robots would form physical analogs of virtual shapes which human senses would accept as real, eliminating cumbersome virtual reality gear and viewing angle limitations now present for most 3D visualization and telepresence applications. Likewise, such ensembles would act as reconfigurable, general-purpose robots capable of many forms of locomotion and object manipulation.

The picture above shows some of the current hardware we have built. Of course it would be prohibitively expensive for us to build the MILLIONS of these little robots that we want, so we need a simulator. The simulator acts as a huge parallel programming platform, so we can study the various distributed computing algorithms neccessary to get the ensemble to do something useful. I've been writing this simulator for the past 6 months or so.


