我必须从已知的图连通分量并行计算中找到最佳算法。
以下是我的数据和计算机架构的简要概述:
我读过有关计算图连通分量的并行算法。正如我所注意到的,其中一些基于序列化案例的经典 BFS 方法。老实说,我对这些算法的数量有点迷失了。谁能给我一些建议,哪种算法最适合我的目的?
algorithm parallel-processing multithreading graph multiprocessing
我必须处理8个处理器.我想按如下方式进行并行调整:
vector<vector <int> > test;
test.resize(10000);
#pragma omp parallel num_threads(8)
{
#pragma omp for
for (int i = 0;i < 10000;i++)test[i].resize(500000);
}
Run Code Online (Sandbox Code Playgroud)
我注意到程序没有使用100%的处理器能力 - 它只使用了15%.当我更改代码时
vector<vector <int> > test;
test.resize(1000000);
#pragma omp parallel num_threads(8)
{
#pragma omp for
for (int i = 0;i < 1000000;i++)test[i].resize(5000);
}
Run Code Online (Sandbox Code Playgroud)
该程序使用了大约60%的处理器功率.我不明白这种现象 - 我希望它能在僵硬的情况下使用100%的处理器能力.我在这里错过了什么吗?
c++ parallel-processing multithreading openmp multiprocessing