Scott Schneider
Ph.D. Candidate
Department of Computer Science
College of Engineering
Virginia Tech
scschnei at cs dot vt dot edu
About Me
I received my B.S. in Computer Science (along with minors in Math and Physics) from Virginia Tech in May, 2003. I received my Master's in Computer Science from William & Mary in July, 2005 and continued as a Ph.D. Student. In August, 2006 I transferred back to Virginia Tech with my advisor, and I am now a Computer Science Ph.D. Candidate at Virginia Tech.
My research is under the guidance of Dr. Dimitris Nikolopoulos, and my interests include:
- Programming Languages: I am interested in the design and implementation of programming languages, with an emphasis on languages that are useful for building real systems. In particular, I like to study the means through which a programming language enables a programmer to express the implementation of a system.
- Compilers: Being able to express the components of a system in code is useless if it is infeasible to transform that expression into executable code. And if that transformation does not produce efficient code, then it is probably not suitable for building real systems.
- Operating Systems: Nearly all aspects of operating systems interest me, including memory management, process scheduling and file systems.
- Parallel Computing: Emerging architectures such as Simultaneous Multithreading (SMT) and Chip Multiprocessing (CMP) are bringing multiprocessing to the desktop. I am interested in parallel processing on large scales, but I think that with SMT and CMP, shared-memory parallel processing will become the rule instead of the exception. Consequently, programming languages, compilers and operating systems will need to have greater support for parallel processing.
Projects
- Streamflow: A scalable memory allocator for multithreaded applications. Streamflow is designed to avoid synchronization in the common case of local allocation and deallocations. The uncommon case of remote deallocations uses lock-free synchronization. Streamflow is provided as a shared library which replaces malloc() and free() in C and new and delete in C++.
- Factory: An object-oriented library for multithreaded programming in C++. Factory uses existing C++ constructs to express parallelism, without having to rely on language or compiler extensions.
Research Group
Publications
- Filp Blagojevic, Matthew Curtis-Maury, Jae-Seung Yeom, Scott Schneider and Dimitrios S. Nikolopoulos. Scheduling Asymmetric Parallelism on a Playstation3 Cluster. Proc. of the 2008 International Conference on Cluster Computing and the Grid, Lyon, France, May 2008.
- Andrey Chernikov, Christos D. Antonopoulos, Nikos Chrisochoides, Scott Schneider and Dimitrios S. Nikolopoulos. Experience with Memory Allocators for Parallel Mesh Generation on Multi-core Architectures. Proc. of the 10th ISGG Conference on Numerical Grid Generation, Heraklion, Crete, September 2007.
- Scott Schneider, Christos D. Antonopoulos and Dimitrios S. Nikolopoulos. Scalable Locality-Conscious Multithreaded Memory Allocation. Proc. of the 2006 ACM SIGPLAN International Symposium on Memory Management, Ottawa, Canada, June 2006.
- Scott Schneider, Christos D. Antonopoulos, Dimitrios S. Nikolopoulos. Factory: An Object-Oriented Parallel Programming Substrate for Deep Multiprocessors. J. Dongarra, L. T. Yang, O. F. Rana, and B. Di Martino, editors, Proc. of the 2005 International Conference on High Performance Computing and Communications, volume 3726 of Lecture Notes in Computer Science, pages 233-242, Sorrento, Italy, September 2005. Springer Verlag. ISBN 3-540-29031-1.
- Scott Schneider. Factory: An Object-Oriented Parallel Programming Substrace for Deep Multiprocessors. Master's Thesis, June 2005.