Publications

(2022). An FPGA Accelerator for Genome Variant Calling. Proceedings of the IEEE International Symposium on Field-Programmable Custom Computing Machines.

Digital Library

(2020). Understanding Transparent Superpage Management. ;login: the USENIX Magazine.

Project Usenix

(2020). A Comprehensive Analysis of Superpage Management Mechanisms and Policies. Proceedings of the USENIX Annual Technical Conference.

Project Digital Library

(2020). Design and Evaluation of a Collaborative Online Computational Thinking Course. Proceedings of the ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE).

Project Digital Library

(2020). Compigorithm: An Interactive Tool for Guided Practice of Complexity Analysis. Proceedings of the ACM Conference on Innovation and Technology in Computer Science Education (ITiCSE).

Project Digital Library

(2019). Auto-Generating Visual Exercises for Learning Program Semantics. Proceedings of the Conference on Innovation and Technology in Computer Science Education (ITiCSE).

Project Digital Library

(2019). The Error Landscape: Characterizing the Mistakes of Novice Programmers. Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE).

Project Digital Library

(2017). An Automated System for Interactively Learning Software Testing. Proceedings of the Conference on Innovation and Technology in Computer Science Education (ITiCSE).

Project Digital Library

(2016). Data-Driven Test Case Generation for Automated Programming Assessment. Proceedings of the Conference on Innovation and Technology in Computer Science Education (ITiCSE).

Project Digital Library

(2016). TPC: Target-Driven Parallelism Combining Prediction and Correction to Reduce Tail Latency in Interactive Services. Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).

Digital Library

(2016). Leveraging Managed Runtime Systems to Build, Analyze, and Optimize Memory Graphs. Proceedings of the International Conference on Virtual Execution Environments (VEE).

Digital Library

(2016). Scalable Multi-Failure Fast Failover via Forwarding Table Compression. Proceedings of the Symposium on SDN Research.

Digital Library

(2015). Surviving Peripheral Failures in Embedded Systems. Proceedings of the USENIX Annual Technical Conference.

(2015). Owl: A Python-based toolchain and runtime system for small embedded systems. US Provisional Patent.

(2014). Medusa: Managing Concurrency and Communication in Embedded Systems. Proceedings of the USENIX Annual Technical Conference.

(2014). Facilitating Human Interaction in an Online Programming Course. Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE).

Project Digital Library

(2014). An Environment for Learning Interactive Programming. Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE).

Project Digital Library

(2013). Reducing DRAM Row Activations with Eager Read/Write Clustering. ACM Transactions on Architecture and Code Optimization.

Project

(2013). Plinko: Building Provably Resilient Forwarding Tables. Proceedings of the ACM Workshop on Hot Topics in Networks (HotNets).

(2013). Adaptive Parallelism for Web Search. Proceedings of the EuroSys Conference.

(2012). Design and Implementation of an Embedded Python Run-Time System. Proceedings of the USENIX Annual Technical Conference.

(2011). A Scalability Study of Network Enterprise Architectures. Proceedings of the Symposium on Architectures for Networking and Communications Systems (ANCS).

(2011). SpecTLB: A Mechanism for Speculative Address Translation. Proceedings of the International Symposium on Computer Architecture (ISCA).

Project Digital Library

(2010). A Low-Cost Multi-Robot System for Research, Teaching, and Outreach. Proceedings of the International Symposium on Distributed Autonomous Robotics Systems (DARS).

Project Digital Library

(2010). sNICh: Efficient Last Hop Networking in the Data Center. Proceedings of the Symposium on Architectures for Networking and Communications Systems (ANCS).

Project Digital Library

(2010). Axon: A Flexible Substrate for Source-routed Ethernet. Proceedings of the Symposium on Architectures for Networking and Communications Systems (ANCS).

(2010). Translation Caching: Skip, Don't Walk (the Page Table). Proceedings of the International Symposium on Computer Architecture (ISCA).

Project Digital Library

(2010). The Hadoop Distributed Filesystem: Balancing Portability and Performance. Proceedings of the International Symposium on Performance Analysis of Systems and Software (ISPASS).

(2009). The Axon Network Device: Prototyping with NetFPGA. Proceedings of the Workshop on Architectural Research Prototyping.

(2009). Achieving 10Gbps Using Safe and Transparent Network Interface Virtualization. Proceedings of the International Conference on Virtual Execution Environments (VEE).

(2008). Protection Strategies for Direct Access to Virtualized I/O Devices. Proceedings of the USENIX Annual Technical Conference.

(2008). Explaining the Impact of Network Transport Protocols on SIP Proxy Performance. Proceedings of the International Symposium on Performance Analysis of Systems and Software (ISPASS).

(2008). Scheduling I/O in Virtual Machine Monitors. Proceedings of the International Conference on Virtual Execution Environments (VEE).

(2007). RiceNIC: Prototyping Network Interfaces. Proceedings of the Workshop on Architectural Research Prototyping.

(2007). RiceNIC: A Reconfigurable Network Interface for Experimental Research and Education. Proceedings of the Workshop on Experimental Computer Science.

(2007). Single-ended Coding Techniques for Off-chip Interconnects to Commodity Memory. Proceedings of the Design Automation and Test in Europe Conference (DATE).

(2007). Concurrent Direct Network Access for Virtual Machine Monitors. Proceedings of the International Symposium on High-Performance Computer Architecture (HPCA).

(2006). Connection Handoff Policies for TCP Offload Network Interfaces. Proceedings of the Symposium on Operating Systems Design and Implementation (OSDI).

(2006). Dependable $neq$ Unaffordable. Proceedings of the Workshop on Architectural and System Support for Improving Software Dependability.

(2006). An Evaluation of Network Stack Parallelization Strategies in Modern Operating Systems. Proceedings of the USENIX Annual Technical Conference.

(2006). TCP Offload through Connection Handoff. Proceedings of the EuroSys Conference.

(2006). Parallelization Strategies for Network Interface Firmware. Proceedings of the Workshop on Optimizations for DSP and Embedded Systems.

(2006). Optimizing Kernel Block Memory Operations. Proceedings of the Workshop on Memory Performance Issues.

(2006). Network Stack Parallelization Strategies for Modern Multiprocessors. submission to IEEE Transactions on Parallel and Distributed Systems.

(2005). Context-Independent Codes for Off-Chip Interconnects. Lecture Notes in Computer Science.

(2005). Context-independent codes for off-chip interconnects. Workshop on Power-aware Computer Systems.

(2005). Network Interface Data Caching. IEEE Transactions on Computers.

(2005). An Efficient Programmable 10 Gigabit Ethernet Network Interface Card. Proceedings of the International Symposium on High-Performance Computer Architecture (HPCA).

(2004). Memory Controller Optimizations for Web Servers. Proceedings of the International Symposium on Microarchitecture (MICRO).

Project Digital Library

(2004). Improving Power Efficiency in Stream Processors through Dynamic Cluster Reconfiguration. Proceedings of the Workshop on Media and Streaming Processors.

(2004). Context-independent Codes for Off-chip Interconnects. Proceedings of the Workshop on Power-Aware Computer Systems.

Project

(2004). Comparing Ethernet and Myrinet for MPI Communication. Proceedings of the Workshop on Languages, Compilers, and Run-Time Support for Scalable Systems.

(2004). An Event-driven Architecture for MPI Libraries. The Los Alamos Computer Science Institute Symposium.

(2004). Isolating the Performance Impacts of Network Interface Cards Through Microbenchmarks. Proceedings of the Joint International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS).

(2003). Programmable Stream Processors. Computer.

(2003). Exploiting Task-level Concurrency in a Programmable Network Interface. Proceedings of the Symposium on Principles and Practice of Parallel Programming (PPoPP).

(2003). Exploring the VLSI Scalability of Stream Processors. Proceedings of the International Symposium on High-Performance Computer Architecture (HPCA).

(2002). Increasing Web Server Throughput with Network Interface Data Caching. Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).

(2002). The Imagine Stream Processor. Proceedings of the International Conference on Computer Design (ICCD).

(2002). Media Processing Applications on the Imagine Stream Processor. Proceedings of the International Conference on Computer Design (ICCD).

(2002). A Stream Processor Development Platform. Proceedings of the International Conference on Computer Design (ICCD).

(2002). A Programmable Baseband Processor Design for Software Defined Radios. Proceedings of the Midwest Symposium on Circuits and Systems.

(2001). Imagine: Media Processing with Streams. IEEE Micro.

(2001). System and Method for Performing Compound Vector Operations. US Patent #6,192,384.

USPTO

(2000). Efficient Conditional Operations for Data-parallel Architectures. Proceedings of the International Symposium on Microarchitecture (MICRO).

(2000). Communication Scheduling. Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS).

(2000). Polygon Rendering on a Stream Architecture. Proceedings of the SIGGRAPH/Eurographics Workshop on Graphics Hardware.

(2000). Imagine: Signal and Image Processing Using Streams. Proceedings of Hotchips 12.

(2000). Memory Access Scheduling. Proceedings of the International Symposium on Computer Architecture (ISCA).

Project Digital Library

(2000). Register Organization for Media Processing. Proceedings of the International Symposium on High-Performance Computer Architecture (HPCA).

(1999). Imagine: A High-Performance, Power-Efficient Signal Processor. Proceedings of the High Performance Embedded Computing Workshop.

(1998). A Bandwidth-Efficient Architecture for Media Processing. Proceedings of the International Symposium on Microarchitecture (MICRO).