| Last Modified On : | October 29, 2009 2:39 PM PDT |
Rate |
|
| What If Home | Product Overview | Technical Requirements | Resource Library FAQ | Primary Technology Contacts | Discussion Forum | Blog |
Intel® Cilk++ SDK offers early exposure to the Cilk++ style of parallel development.
Convert a serial program to Cilk++. Here, we indicate a parallel region of a serial quicksort algorithm using the cilk_spawn and cilk_sync keywords:
template <typename T>
void qsort(T begin, T end) {
if (begin != end) {
T middle = partition(
begin,
end,
bind2nd(less<typename iterator_traits<T>::value_type>(), *begin));
cilk_spawn qsort(begin, middle);
qsort(max(begin + 1, middle), end);
cilk_sync;
}
}
Compile and link the program with the compiler and runtime library from the command line or within Microsoft Visual Studio*.
Test the program on a single processor to ensure serial correctness.
Verify that the program is race free using the race detector, and correct any errors found. This sample output shows how the race detector displays the file name, source line, stack trace and variable name for a race in a sample program:
cilkscreen sum
Race condition on location 004367C8
write access at 004268D8: (c:\sum.cilk:8, sum.exe!f+0x1a)
read access at 004268CF: (c:\sum.cilk:8, sum.exe!f+0x11)
called by 004269B4: (c:\sum.cilk:14, sum.exe!cilk_main+0xd0)
called by 0042ABED: (c:\[...]\ostream:786, sum.exe!__cilk_main0+0x3d)
called by 100081D5: (cilk_1_1-x86.dll!__cilkrts_ltq_overflow+0x137)
Variable: 004367C8 - int sum
Release Notes | Programmer’s Guide (PDF) | Intel® Cilk++ SDK Resource Library
Technical Requirements (all platforms)
1. Intel® Cilk++ SDK requires an IA-32 or Intel 64 processor.
2. In order to see parallel speedup, Cilk++ requires two or more processing cores in either a single or multiple chip configuration.
Technical Requirements (Microsoft Windows*)
1. Intel® Cilk++ SDK has been tested on many different versions of Microsoft Windows and should be compatible with Microsoft Windows XP with Service Pack 2 or later, or Microsoft Windows Vista.
2. Intel® Cilk++ SDK requires Microsoft Visual Studio 2008, Microsoft Visual Studio 2008 Express, or Microsoft Visual Studio 2005 with Service Pack 1 installed.
Technical Requirements (GNU/Linux*)
1. Intel® Cilk++ SDK has been tested on many different GCC/Linux distributions and should be compatible with and 32-bit or 64-bit GNU/Linux installation.
2. The Cilk++ compiler is based on GCC version 4.2.4 and requires the same software environment as that version of GCC, includes a linker and assembler.
Q - What is the state of the product on the WhatIf site?
A - Intel® Cilk++ SDK is provided free of charge as a technology preview. We’re interested in your feedback. Since it is only a technology preview, the availability and support for Cilk++ is not long-term. Intel is planning to support Cilk++ technology in a future version of the Intel C++ Compiler.
Q - How do I report problems or send feedback?
A - You are welcome to join our What If Software Forum to post your questions and issues. The team will keep any eye on the discussion and do our best to answer your questions.
Q - What kind of feedback are you looking for?
A - Please visit the What If Software Forum and your thoughts in an Intel Cilk++ discussion thread or create a new one. We appreciate all feedback, in particular feedback on the following:
Q - How do I download Intel® Cilk++ SDK?
A - Visit the end user agreement and download page for Intel® Cilk++ SDK.
Q - How do I learn more about multi-core programming?
A - Download the free e-book "How to Survive the Multicore Software Revolution (or at Least Survive the Hype)".
Q - What is the best way to learn about Cilk++?
A - The Cilk++ Programmer's Guide (pdf) is a good starting point. In addition, there are three video lectures taped at MIT which you can watch on the following page:
Matteo Frigo is an Intel Research Scientist with the Intel’s Performance, Analysis, and Threading Team and is the architect of the Cilk++ language and tools.
Stephen Lewin-Berlin manages the Intel engineering team working on Cilk++ SDK technology. His experience building tools for software developers spans more than 20 years, most recently as VP Engineering at Cilk Arts, where he helped develop Cilk++.
We encourage you to visit our support forums. We’ll be watching for Intel® Cilk++ SDK questions.

English | 中文 | Русский | Français
Aaron Tersteeg (Intel)
| ||
| Stephen Lewin-berlin (Intel) |