Historically, interconnection networks have been an important component in determining overall system performance and cost in supercomputer as the interconnection network connects tens of thousands of components together. Recently, with the increasing number of cores in a single-chip, the on-chip network also significantly impacts overall overall system cost and performance. The main components of interconnection networks remain the same across different applications – including topology, routing, and flow control. However, the different applications present different and unique challenges. In addition, communication is only one aspect of interconnection networks as understanding the entire system (including the core and memory system) presents additional opportunity for improving performance and reducing system cost).
Manycore Accelerators (GPGPU)
Manycore accelerators such as GPUs are being commonly used to exploit the significant amount of parallelism that is available in the hardware. The large number of cores (and threads) presents interesting challenges in the design of these manycore systems, including the on-chip network, memory system, and scheduling.
Memory network is an emerging type of network that interconnects multiple memory modules with routing capability (e.g., Hybrid Memory Cube). Introducing memory network opens up new opportunities to improve system design in many ways, including how to interconnect multiple processors and memory modules, how to optimize cache coherence protocol, and how to improve programmability.
Crowdsourcing & Human Computation
While modern computers have very high computing capabilities, certain types of tasks such as recognizing objects can be done more efficiently and/or accurately by human. Recently, the concept of human-in-the-loop is introduced to leverage human power during the computation to get better results. Since a large population of people is connected through the internet with various devices including smartphones, there are opportunities to solve difficult problems by involving both computers and human.