マルチコアの並列化については考えられません。しかし、単純なループでは、少し修正するかもしれません。次の例では、VC++でマルチコア計算を行う単純なループを作成する方法を教えてください。並列パターンでVC++でマルチコア計算を行うには?
#include <iostream>
#include <vector>
#include <ctime>
using namespace std;
void foo(int n, double* a, double* b, double *c, double*d, double* e, double* f, double* g)
{
for (int i = 0; i < n; ++i)
{
a[i] = b[i] * a[i] + c[i] * (d[i] + e[i] + f[i] + g[i]);
}
}
int main()
{
int m = 1001001;
vector<double> a(m), b(m), c(m), d(m), f(m);
std::clock_t startcputime = std::clock();
for (int i = 0; i < 1000; ++i)
foo(1000000, &a[0], &b[0], &c[0], &d[0], &d[1], &f[0], &f[1000]);
double cpu_duration = (std::clock() - startcputime)/(double)CLOCKS_PER_SEC;
std::cout << "Finished in " << cpu_duration << " seconds [CPU Clock] " << std::endl;
}
[OpenMP](http://openmp.org/wp/)、[OpenCL](https://www.khronos.org/opencl/)、[OpenACC](http://www.openacc .org /)。 – Holt
私はあなたの最初のステップは、あなたは "いくつかのアイデア"を持っているように、並行性と並列性の基礎を学ぶことであると信じています。 – user2079303