我有一个带有多个For循环的c ++程序; 每个运行大约500万次迭代.是否有任何命令我可以使用g ++来生成.exe将使用多个核心; 即在第一个核心上运行第一个For循环,同时在第二个核心运行第二个For循环?我已经尝试了-O3和-O3 -ftree-vectorize,但在这两种情况下,我的cpu使用率仍然仅在25%左右徘徊.
编辑:这是我的代码,以防万一.我基本上只是制作一个程序来测试我的电脑的速度功能.
#include <iostream>
using namespace std;
#include <math.h>
int main()
{
float *bob = new float[50102133];
float *jim = new float[50102133];
float *joe = new float[50102133];
int i,j,k,l;
//cout << "Starting test...";
for (i=0;i<50102133;i++)
bob[i] = sin(i);
for (j=0;j<50102133;j++)
bob[j] = sin(j*j);
for (k=0;k<50102133;k++)
bob[k] = sin(sqrt(k));
for (l=0;l<50102133;l++)
bob[l] = cos(l*l);
cout << "finished test.";
cout << "the 100120 element is," << bob[1001200];
return 0;
}
Run Code Online (Sandbox Code Playgroud)