For many applications, the data one needs to cope with for a major scientific innovation or discovery is immense, distributed, and unstructured. Thanks to the advancements on computer hardware and storage technologies, we currently have good arsenals to manage it. However, not every hardware-algorithm combination is effective and efficient enough to provide an insight that can make an impact on science, technology, and hence, on the public. And even with the best combination at hand, the performance we settle for today will not be sufficient in the future since the data growth is exponential; around 90% of the data we have is generated in the last two years.
Efficiency is not only a concern when the data is large: for time-critical applications, one needs to utilize the architecture at hand as efficient as possible. Today’s architectures are driven by power limitations; instead of using a single, very fast, power-hungry core, the CPUs we currently use have relatively slower cores. To get further computing power within a reasonable power envelope, accelerators have been developed by packing much simpler cores into a single die. Today, the world's most powerful supercomputers contain heterogeneous nodes which are equipped with cutting-edge multicore CPUs, faster SSDs, as well as accelerators, such as GPUs with thousands of cores or Intel's Xeon Phi. Due to this heterogeneity, applying different parallelization techniques at different levels of hardware/software is a necessity to achieve the peak performance and fully utilize such architectures. At Sabancı University, we conduct HPC research on social network analysis, combinatorial algorithms for scientific computing and runtime middleware systems for emerging multi-core architectures.