source: proiecte/swift/trunk/test/fibo_omp.c @ 176

Last change on this file since 176 was 176, checked in by (none), 14 years ago
  • imported repo from "guagal"
File size: 801 bytes
Line 
1/*
2 * swift_context.c
3 *
4 * (c) 2009 Ionut Rosoiu <ionut.rosoiu@gmail.com>
5 *
6 */
7
8#include <stdio.h>
9#include <stdlib.h>
10#include <omp.h>
11#include "swift_compiler.h"
12
13int  sum(int r1, int r2)
14{
15    return r1 + r2;
16}
17
18int  fibo(int n)
19{
20    int x, y;
21   
22    if (n < 2) {
23        return n;
24   }
25   
26    #pragma omp task shared(x)
27    x = fibo(n - 1);
28   
29    #pragma omp task shared(y)
30    y = fibo(n - 2);
31   
32    #pragma omp taskwait
33   return x + y;
34}
35
36int main(int argc, char **argv) {
37        int n, r;
38
39        if (argc != 2) {
40                fprintf(stderr, "usage: %s N\n", argv[0]);
41                abort();
42        }
43
44        n = strtol(argv[1], NULL, 10);
45   
46    #pragma omp parallel
47    {
48        #pragma omp single
49        {
50        r = fibo(n);
51        }
52    }
53
54        fprintf(stderr, "computed result for fibo(%d)=%d\n", n, r);
55
56        return 0;
57}
Note: See TracBrowser for help on using the repository browser.