The ability to exploit fine-grained parallelism through multi-threading has become critical to achieve performance on modern computing architectures. Multi-core processors are prevalent not only in large-scale supercomputers, but also in laptops, desktop workstations, and cellular phones. Accelerators such as GPGPU and the Intel Xeon Phi contribute an increasing component of the theoretical performance of the world's fastest supercomputers. This session will provide an overview of the trend toward increasing parallelism and emerging tactics and best-practices. The goals of the session are as follows:
1) understand the necessary concurrency required to fully utilize modern multi-core CPU and accelerators such as GPU and the Intel Xeon Phi;
2) provide an introduction to the strategies, programming models and compiler tools available to target the parallelism on current and future architectures;
3) know where to find additional information about widely used programming models for multi-threading.