Programare paralelă
 
  
Exemple de cod

 

reduction(<op> : <var>)
 

#include <omp.h>
#include <iostream>
#include <conio.h>

using namespace std ;

#define n 100

void main()
{
    int i;
    float a[n], b[n];
    float sum = 0;

    for(i=0; i<n; i )  // Initializarea valorilor
    {
   a[i] = i;
   b[i] = 2*i;
    }

    // Iteratiile instructiunii for ce urmeaza dupa #pragma sunt repartizate intre procesoare
    #pragma omp parallel for private(i) shared(a, b) reduction( :sum) // Suma ( ) se va acumula in sum
    for(i=0; i<n; i )       // Ciclul este paralelizat automat, 
     sum = a[i]*b[i];    // iar rezultatul de la toate procesoarele se acumuleaza in sum

    cout << "sum = " << sum << endl;
    getch();
}
  </> 21.06.2009
Parallel "Hello world!"
 

#include <omp.h>
#include <conio.h>
#include <stdio.h>

 void main(void)
{
    int id;

    omp_set_dynamic(0);          // Foloseste procesoarele reale din sistem
    omp_set_num_threads(10);    // Seteaza numarul de fire de executie

    #pragma omp parallel private(id)  // Operatorul de paralelizare
    {
       // Urmeaza instructiunile executate in fiecare din cele 10 fire de executie
   id = omp_get_thread_num();   // Numarul firului de executie
   printf("%s %d\n", "Hello, wolrd! From processos ", id);
    }

    getch();
}

  </> 20.06.2009

 

arr_d Limba / Language


 


arr_r Login

Flag Counter