Más contenido relacionado
La actualidad más candente (19)
Openmp
- 12. Estructuras Paralelas de Control Con Bucle #pragma omp parallel for for ( i = ilo; i <= ihi; i++ ) { Código C/C++ } Sin Bucle #pragma omp parallel { t_id = omp_get_thread_num ( ); if ( t_id % 2 == 0 ) { solid_update ( ); } else { Liquid_update ( ); } }
- 15. Single: Especifica un bloque de código que es ejecutado solamente por una hebra. Barrera implícita en el final
- 16. Master: similar a single pero el bloque de código será ejecutado solo por la hebra principal y no existirá una barrera implícita al final.
- 18. Private: los datos contenidos en una región paralela son exclusivamente accedidos por la hebra que lo esté ejecutando.
- 19. Default: permite al programador especificar el comportamiento de las variables sin ámbito de una región paralela. Podrán ser compartidos o no.
- 24. Atomic: similar a la anterior, pero avisa al compilador para un uso especial y mejorar el rendimiento.
- 25. Ordered: el bloque estructurado es ejecutado en el orden en el cual las iteraciones podrían ser ejecutadas en un bucle secuencial.
- 27. Nowait: especifica que cada hebra complete su trabajo asignado sin esperar a que finalicen las demás hebras.
- 37. ¿Por dónde empiezo? Procesador de texto (Gedit, Kate, Emacs, …) GCC (Compilador) g++ -fopenmp HelloWorld.cpp -o HelloWorld
- 39. ¡Hola Mundo! #include <omp.h> #include <iostream> #include <sstream> int main (int argc, char *argv[]) { int th_id, nthreads; #pragma omp parallel private(th_id) { th_id = omp_get_thread_num(); std::ostringstream ss; ss << "Hello World from thread " << th_id << std::endl; std::cout << ss.str(); #pragma omp barrier #pragma omp master { nthreads = omp_get_num_threads(); std::cout << "There are " << nthreads << " threads" << std::endl; } } return 0; }
- 43. Los datos y la descomposición en hebras las maneja OpenMP de forma automática.
- 47. Se reducen menos bugs al hacer menos cambios en el código con motivo de lo anteriormente mencionado.
- 56. Si os ha interesado... Presentación: http://www.slideshare.net/JoseCasero/openmp Video: http://www.youtube.com/watch?v=eHdQ0Ck4Bds