PhD Student in Computer Science.
Computer architecture has always been interesting. Layered between the ever changing actual software and actual hardware, the task of providing an interface between the two quickly moving parts is more or less an art. A useful interface abstracts software and hardware concepts in a way that the abstraction enables feasible optimizations at both hardware and software levels. We have seen that in how a TLB is optimized, or how frequently a software engineer being told to write a predictable branch or to make contiguous memory access.
We are entering an era where newer optimizations at both hardware and software levels nolonger provide significant impact on performance across all applications. There are applications that, by nature, do not fit in the traditional assumptions that a software engineer has. In my research, I investigate what can we do if we take the assumption of contiguous memory access away from vector architectures. Specifically, I look at how we can optimize the performance of scatter/gather instructions.
Computer architecture, vector architecutres, high-performance computing.