Mohamed Zahran

Professor (clinical)
Computer Science Department
Courant Institute of Mathematical Sciences 

Office: WWH 320  
251 Mercer street, Manhattan, NY, 10012

Main    Students    Publications    Research    Teaching

NYU logo


                        Research Interest 

My research interest is in Computer Architecture in general. As we are approaching the end of Moore's law (with Dennard scalaing already stopped) at the hardware side, and the move to parallel programming, before we are totally ready for it, we have many challenges to deal with.

Hardware/Software Interaction

How to parallelize irregular applications on heterogeneous systems? This requires not only algorithmic effort and programming work, but also making the hardware and software play well together. For instance:

  • Given specifications of a hardware system, what are the characteristics of the software that makes the best use of this hardware?
  • Given a software program, what is the best hardware to execute it and get the best performance?
  • Given both the software program and the hardware specification, how to adapt each other to get the best performance?

Architecture of Heterogeneous Systems and the road to exascale

Multicore processors become more heterogeneous: cores of different capabilities, GPUs, and recently even FPGAs. This offers many opportunities, yet present many challenges.
In this research, we try to answer the questions such as:
  • How does the memory hierarchy look like in such systems?
  • What do we do with the bandwidth wall, both off-chip and on-chip?
Exascale systems will be heterogeneous. To reach that big milestone, we have several challenges (beside the ones above):
  • What programming model do we need? and how much hardware do we expose to the programmer? 
  • How will the programming model deal with errors?
  • How will we deal with the memory wall?

AI Support for Architecture

A lot of groups are working on hardware support for AI, such as neuromorphic chips, which is very much needed. In this project, we do the other way around.
Can AI, more specifically machine learning, help the hardwrae reaching better performance and more efficient execution?
Can the execution of one program make the execution of a different program more efficient? This is what we try to do in this project.