- Home›
- Technology and Research›
- Intel Technology Journal›
- Multi-Core Software
Multi-Core Software
Future-Proof Data Parallel Algorithms and Software on Intel® Multi-Core Architecture
CT
Brief Ct Overview
Ct is a data parallel programming environment with predictable syntax based on C++ that provides distinct semantics and performance [6].
Unique among commercial data parallel programming models, Ct implements a nested data parallel model based on work on Nesl [18] and Paralation Lisp [19]. Ct's nested data parallelism enables a far broader set of collections to be represented. For example, sparse matrices and trees are very difficult to represent in flat data parallel or streaming models. However, these fall out naturally in a nested data parallel model. Also, common divide-and-conquer algorithms, for example, KD-tree construction and sorting, are very difficult to express using flat data parallel and streaming models. These are readily expressed using nested data parallelism. Nested data parallel computations generally do not port efficiently to GPUs and streaming architectures, but they run efficiently on multi-core IA.
Unlike many of its data-parallel brethren, Ct also supports deterministic task parallelism on multi-core IA (inspired by [16]). Determinism guarantees that program behavior is identical, on one core or many cores. This essentially eliminates an entire class of programmer errorsdata races.
