digitalmars.D.learn - How to use #pragma omp parallel for collapse(n) in dlang?
- ijet (1/1) Aug 13 2019 How to use #pragma omp parallel for collapse(n) in dlang?
- Bastiaan Veelo (3/4) Aug 15 2019 I don’t understand the question.
- Daniel Kozak (5/6) Aug 15 2019 There is no OMP for de as I know, but you can just use
- Daniel Kozak (65/72) Aug 15 2019 something like this:
- ijet (2/8) Aug 22 2019 Thank you!
How to use #pragma omp parallel for collapse(n) in dlang?
Aug 13 2019
On Tuesday, 13 August 2019 at 08:41:07 UTC, ijet wrote:How to use #pragma omp parallel for collapse(n) in dlang?I don’t understand the question. Bastiaan.
Aug 15 2019
On Tue, Aug 13, 2019 at 10:47 AM ijet via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:How to use #pragma omp parallel for collapse(n) in dlang?There is no OMP for de as I know, but you can just use https://dlang.org/phobos/std_parallelism.html#.parallel for each 'foreach'
Aug 15 2019
On Thu, Aug 15, 2019 at 9:44 AM Daniel Kozak <kozzi11 gmail.com> wrote:On Tue, Aug 13, 2019 at 10:47 AM ijet via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> wrote:something like this: C version: #include <stdio.h> #define CNT 400000 int isprime(int num) { if (num <= 1) return 0; if (num % 2 == 0 && num > 2) return 0; for(int i = 3; i < num / 2; i+= 2) { if (num % i == 0) return 0; } return 1; } int fun(int a, int b) { return isprime(a) + isprime(b); } int main() { int buff[CNT]; int i, j; #pragma omp parallel for private(j) collapse(2) for (i = 0; i < 4; i++) for (j = 0; j < 100000; j++) buff[i*100000 + j] = fun(i, j); for (int x = 0; x < CNT; x++) { printf("%d\n", buff[x]); } return 0; } D version: import core.stdc.stdio; import std.parallelism; import std.range : iota; enum CNT = 400000; int isprime(int num) { if (num <= 1) return 0; if (num % 2 == 0 && num > 2) return 0; for(int i = 3; i < num / 2; i+= 2) { if (num % i == 0) return 0; } return 1; } int fun(int a, int b) { return isprime(a) + isprime(b); } int main(string[] args) { int[CNT] buff = void; foreach (i; iota(0,4).parallel) foreach (j; iota(0, 100000).parallel) buff[i*100000 + j] = fun(i, j); for (int x = 0; x < CNT; x++) { printf("%d\n", buff[x]); } return 0; }How to use #pragma omp parallel for collapse(n) in dlang?There is no OMP for de as I know, but you can just use https://dlang.org/phobos/std_parallelism.html#.parallel for each 'foreach'
Aug 15 2019
On Thursday, 15 August 2019 at 08:08:29 UTC, Daniel Kozak wrote:On Thu, Aug 15, 2019 at 9:44 AM Daniel Kozak <kozzi11 gmail.com> wrote:Thank you![...]something like this: C version: [...]
Aug 22 2019