Skip to main content
Department of Information Technology

David Black-Schaffer

Professor at Department of Information Technology, Division of Computer Systems

+4618-471 6830
Mobile phone:
+46 76 8242017
Visiting address:
Room POL 105165 hus 10, Lägerhyddsvägen 1
Postal address:
Box 337
751 05 UPPSALA

Short presentation

I investigate modeling and measuring the effects of shared memory resources (caches and off-chip bandwidth) in multicore processors on power and performance. My work addresses both theoretical models and techniques for measuring actual behavior on real systems. Currently I am applying these techniques to improve task scheduling on heterogeneous systems, to predict power and performance, and to develop smart memory systems.

Research / Uppsala Architecture Research Team

Keywords: computer architecture memory systems simulation runtimes scheduling

I received my PhD in Electrical Engineering from Stanford University in 2008. My PhD thesis was on programming for real-time embedded processing on many-core processors in the Concurrent VLSI Architecture Group working with William Dally. After my PhD I worked at Apple on the development of the first OpenCL implementation for heterogeneous parallel processing across CPUs and GPUs, and then as a postdoc researcher in computer architecture in the Dept. of Information Technology at Uppsala University. I was appointed assistant professor in 2010 in the architecture research group at Uppsala looking at parallel programming systems and optimizations as part of the UPMARC research project. In 2014 I was promoted to associate professor (docent, lektor).

In addition to research, I lead the ScalableLearning project to bring the benefits of active, flipped-classroom teaching to thousands of students in Sweden and abroad.

Google Scholar Citations

Grants and Awards



This paragraph is not available in English, therefore the Swedish version is shown.

My research focuses on improving efficiency in computers by making the memory system more intelligent. Our work includes more clever ways of moving and placing data in the memory system, integrating data movement with the processor core itself, adapting runtime schedules for better data movement, and the analysis and modeling of data movement.

Please contact the directory administrator for the organization (department or similar) to correct possible errors in the information.

David Black-Schaffer
Updated  2016-09-22 09:06:00 by David Black-Schaffer.