Data locality is a key factor affecting a program's performance. To achieve better data locality, programmers seldom have to rewrite programs that can exploit the cache hierarchy of modern computers. Since this code rewriting process to improve data locality is fairly challenging, multiple compiler optimizations tools have been proposed in recent years to automate this process. However, still there are several unanswered questions in regards to data locality optimizations. First of such questions is how to locate where to apply the transformation. For example, on any given programs, there could be multiple loops along with nested loops. Transforming all the given loops may significantly increase the program size and introduces several side-effects like instruction cache misses. Another related question is whats the potential performance improvement of the transformation. It can happen that there is not much execution time benefit even though the cache miss is significantly reduced. If the performance improvement is not significant, why would anyone care to transform the program. Last question is which transformation to apply. To improve data locality, there can be hundreds of possible transformation. It is impossible to apply each of them one by one and test which one works. Only the transformation with significant performance improvement should be applied to the program. In this research, my goal is to answer each of these questions effectively and efficiently.

Parallel programs on shared memory multiprocessors suffer from a slowdown of an order of magnitude due to false sharing. False sharing occurs when multiple threads demand exclusive access to a cache line even though their data locate on non-overlapping portions of the cache line. While there exists numerous solutions to repair false sharing, all such solutions have significant limitations and can not be deployed in production. Therefore, I am interested in designing new false sharing elimination techniques that can automatically detect and repair false sharing in production accurately, effectively, and efficiently. For more details, please visit the Research Projects page.

Besides being a developing country, Bangladesh is also a country of two extremes. In one extreme, nearly 60% of our population live in rural areas without any infrastructure to provide scalable network connectivity. In another extreme, our cities are densely populated with almost everyone using multiple wireless application services resulting into significant spectrum scarcity. I believe dynamic spectrum access through cognitive radio networks (CRN), where secondary unlicensed users opportunistically access the licensed band of primary users, could play a vital role to solve the problems of these two extremes. In rural areas, CRs could exploit the significant TV whitespace to provide scalable network connectivity. Similarly, among the urban population, with the introduction of multi-antenna cognitive devices, it can provide increased spectrum utilization through cooperative channel sensing and switching. Therefore, I have extensively studied multi-radio CRNs over the last three years. For more details, please visit the Research Projects page.