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);
}
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);
}