PDA

View Full Version : Programmino di programmazione parallela [OpenMP]


xPecax
03-02-2012, 23:24
Ciao a tutti,
sto cercando idee per scrivere un programmino abbastanza semplice, che giochi sul fatto dei vari threads e dei tempi di esecuzione quando si fa una parallelizzazione :p
Programmo su linux e uso OpenMP. Vi posto quello che ho già scritto ma mi servono altre idee per qualcosa di diverso (magari inserendo dei cicli) o magari anche qualcosa da aggiungere a questo non sarebbe male :D


#include<stdlib.h>
#include <stdio.h>
#include <iostream>
#include <omp.h>
#define NUM_THREADS 3
using namespace std;

int main() {

int num,esimo,max,procs;
double crono;

omp_set_num_threads(NUM_THREADS); // setto il num dei threads
num = omp_get_num_threads();
esimo = omp_get_thread_num();

procs = omp_get_num_procs();
printf("Sono disponibili %d core\n",procs);


printf("Fuori dalla zona parallela ci sono %d thread e questo è il thread num %d\n\n",num,esimo);


crono = omp_get_wtime();

#pragma omp parallel // parallelizzo
{
// max = omp_get_max_threads();
num = omp_get_num_threads(); // controllo quanti threads ci sono
esimo = omp_get_thread_num(); // cerco qualè il num del thread che sto usando

printf("Qui ci sono %d threads, io sono il numero %d\n",num,esimo);


} printf("\nla parallelizzazione è durata %f secondi\n",omp_get_wtime()-crono);
}

nico159
04-02-2012, 23:08
Un qualcosa per iniziare? Somma e moltiplicazione di matrici :D