Intel has kindly agreed to give a tutorial about their new parallel programming model „Ct“. The tutorial will be conducted on Friday, April 16th, 2010, 9:15-12:00 at RRZE (the room will be announced shortly before). If you want to attend, please send email to
hpc@rrze,uni-erlangen.de.
Note that this is not a finished product, and there is not even a public beta release yet. Hence you will be most interested in this presentation if you work in the field of programming languages or parallel programming models.
Abstract
Intel Ct Technology is a high-level descriptive programming model for data-parallel programming. It strives to simplify efficient parallelization of computations over large data sets. Programmers no longer focus on the implementation details of their data-parallel program, but instead express a program’s algorithms in terms of operations on data. Ct’s deterministic semantics avoid race conditions and deadlocks and enable use for both rapid prototyping and production-stable codes.
Ct hides the complexity of mapping the high-level description of the program’s operations by employing JIT compilation techniques. Its internal JIT compiler dynamically optimizes a program to whatever hardware is used for execution, automatically emitting vectorized and multi-threaded code. With Ct’s JIT compiler it becomes possible to execute the program on multiple computing platforms (e.g Intel® SSE, Intel AVX) without recompiling the application. Ct’s JIT is key to support upcoming execution environments without the need to recompile a program: replacing the Ct library suffices to enable future platforms.
In this tutorial, we introduce to the participants the programming model and the execution environment of Intel Ct Technology. We provide an in-depth guide to the basic building blocks of the Ct language: scalar types, dense and sparse vector data types and vector operations. We present Ct’s way to control an application’s control flow and to utilize different levels of abstraction. Based on real-world scientific codes and other examples, we then show how to construct data-parallel algorithms from these basic building blocks. We demonstrate how to smoothly move an existing sequential code base to a parallel code base. In addition, we illustrate how to utilize external libraries such as the Intel® Math Kernel Library. We close the tutorial with a live demonstration of performance and scalability analysis as well as performance optimization of Ct applications.
Presenter: Michael Klemm, Senior Application Engineer, Intel, Software and Solutions Group
Biographical Information
Since 2008, Michael Klemm is part of Intel’s Software and Services Group, Developer Relations Division. His focus is on High Performance & Throughput Computing Enabling. Michael obtained an M.Sc. with honors in Computer Science in 2003. He received a Doctor of Engineering degree (Dr.-Ing.) in Computer Science from the Friedrich-Alexander-University Erlangen-Nuremberg, Germany. Michael’s research focus was on compilers and runtime optimizations for distributed systems. His areas of interest include compiler construction, design of programming languages, parallel programming, and performance analysis and tuning. Michael is a member of ACM and IEEE, and is an active member of the OpenMP Language Committee.