The Cilk Plus spec says that for #pragma simd, the private, firstprivate, lastprivate, and reduction clauses are as OpenMP. However, in the OpenMP 4.0rc2 spec, the firstprivate clause is not valid in <#omp simd>.
Is the firstprivate clause valid for Cilk Plus' <#pragma simd>?
What are the types allowed in the vectorlengthfor clause?
The 1.1 spec just says "type-name" with no restrictions whatsoever. However, the icc 12.1 manual says "data type must be one of built-in integer types (8, 16, 32, or 64bit), pointer types (treated as pointer-sized integer), floating point types (32 or 64bit), or complex types (64bit or 128bit).". Which is correct?
Assuming the icc manual is correct and the spec is lacking, are typedef substitutions allowed? Say, "typedef int typint". Is vectorlength(typint) allowed?
There is a small discussion going on in the GCC mailing list wrt the vectorlength clause (http://gcc.gnu.org/ml/gcc-patches/2013-04/msg01333.html). This is in regards to the vectorlength attribute as it relates to the Cilk Plus #pragma simd construct.
The current GCC implementation of Cilk Plus includes assert/noassert clauses for #pragma simd. I don't see this documented anywhere on the spec.
Has this been dropped from the spec (and thus should be removed from the implementation), or is the documentation missing?
Hello, I'm programming with Intel Cilk+ and encountered a obstacle.
I developped two patterns. The second one shows its advantages when the problem size is bigger than 40000(float) which is very inadequate. I wanna see its development. However 50000 gives me a std::bad_alloc. 50000 * 50000 * 4 =10GB while I have 27GB MemFree (refers to my meminfo). Is there any possiblity to set a bigger heap memory?
I'm using icc version 13.1.0.
Thanks for your comments.
I am working with Balaji in the GCC implementation of CilkPlus, and I have a few syntax questions. I am looking at version 1.1 of the language extension specification. BTW, if this is not the right forum to ask about standards/syntax questions, please let me know where I may direct such questions.
For _Cilk_for (and similarly for the for loop associated with a #pragma simd), I see:
I'am trying to parallelise my program usng _Cilk_spawn and _Cilk_sync, the program compilese with Intel C++ compiler but these keywors are underlined with red and aren't recognized so i don't get parallelism in my program. Also i changed my Intel Composer to "use Intel C++" so thats not the problem. Thanks.
Imagine that I have to mix the different programming model. In a single program, if I do "omp_set_num_threads(nb_threads_omp)", "tbb::task_scheduler_init(nb_threads_tbb); init.initialize(nb_threads)" and "__cilkrts_set_param("nworkers", nb_threads_cilk)" at the same time, what would be the OS threads number attributed by the system? The max or the sum, of three?
The second question. Would the different runtimes knows to manage those different independent set of OS threads, or it will always be the free OS threads that used by runtimes without any distinction?