|
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
|
Traducción
Original
|
/openmp (Habilitar la compatibilidad con OpenMP 2.0)
/openmp
-
Si la aplicación compilada con /clr, pero no con /openmp, se carga en un dominio de aplicación no predeterminado pero donde el proceso incluye una aplicación que se compiló con /openmp. -
Si pasa la aplicación de /clr a una utilidad, como regasm.exe (Regasm.exe (Herramienta de registro de ensamblados)), que carga sus ensamblados de destino en un dominio de aplicación no predeterminado.
Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio
-
Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para obtener información detallada, vea Cómo: Abrir páginas de propiedades del proyecto. -
Expanda el nodo Propiedades de configuración. -
Amplíe el nodo C/C++. -
Seleccione la página de propiedades Lenguaje. -
Modifique la propiedad Compatibilidad con OpenMP.
Para establecer esta opción del compilador mediante programación
-
Vea OpenMP.
// cpp_compiler_options_openmp.cpp
#include <omp.h>
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
volatile DWORD dwStart;
volatile int global = 0;
double test2(int num_steps) {
int i;
global++;
double x, pi, sum = 0.0, step;
step = 1.0 / (double) num_steps;
#pragma omp parallel for reduction(+:sum) private(x)
for (i = 1; i <= num_steps; i++) {
x = (i - 0.5) * step;
sum = sum + 4.0 / (1.0 + x*x);
}
pi = step * sum;
return pi;
}
int main(int argc, char* argv[]) {
double d;
int n = 1000000;
if (argc > 1)
n = atoi(argv[1]);
dwStart = GetTickCount();
d = test2(n);
printf_s("For %d steps, pi = %.15f, %d milliseconds\n", n, d, GetTickCount() - dwStart);
dwStart = GetTickCount();
d = test2(n);
printf_s("For %d steps, pi = %.15f, %d milliseconds\n", n, d, GetTickCount() - dwStart);
}