[C con Clase] threads vs openmp

Alejandro Vázquez alnavegante en gmail.com
Lun Jun 7 10:17:33 CEST 2010


Hola a todos,

lo primero un saludo a todos. Mi cuestion es muy simple: tengo un
programilla que paraleliza una suma matricial (al menos en esencia) bajo
openmp, y funciona perfectamente, de  47 segundos pasamos a 4. El caso que
es que realizando la misma paralelización dentro de un thread no funciona.
Les adjunto un ejemplo mas simple donde lanzo un thread y dentro del mismo
implemento una paralelización con openmp. Si funcionase cada uno de los
hilos hijo deberia imprimir su número... pero no es asi.

Pues haber si hay suerte  :-)

Compilo con: "g++ -fopenmp man.cc -o main" en ubuntu 10.4



#include <iostream>
#include <omp.h>
#include <pthread.h>
using namespace std;

void *hilo(void *pointer) {
cout << "Entrando en thread" << endl<<endl;
int j;
#define NUM_THREADS 4
omp_set_num_threads(NUM_THREADS);
#pragma omp parallel
{
int m;
#pragma omp for  private(j,m)
for (j=1;j<5;j++) {
m=omp_get_thread_num();
cout << "thread:" << m << "_"  << j  << endl;
std::cout.flush();
}
 }
std::cout.flush();


}

main() {

pthread_t idHilo;
pthread_create(&idHilo,NULL, hilo, NULL);
std::cout.flush();

}
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20100607/f829d182/attachment.html>


Más información sobre la lista de distribución Cconclase