如何提高c++;代码';使用线程的效率是多少? 我必须使用速度太慢的C++代码,也许是使用OpjSt*SuthNothType函数。我不熟悉C++。我只需要这段代码来生成输入数据,但我不知道这段代码里面是什么。输出结果是,列长度为3

如何提高c++;代码';使用线程的效率是多少? 我必须使用速度太慢的C++代码,也许是使用OpjSt*SuthNothType函数。我不熟悉C++。我只需要这段代码来生成输入数据,但我不知道这段代码里面是什么。输出结果是,列长度为3,c++,C++,如何提高c++;代码';使用线程的效率是多少? 我必须使用速度太慢的C++代码,也许是使用OpjSt*SuthNothType函数。我不熟悉C++。我只需要这段代码来生成输入数据,但我不知道这段代码里面是什么。输出结果是,列长度为36的样本垂直堆叠,我想加快代码的速度。当我放置ompt\u set\u num\u线程(1)时,性能会有所提高。我想通过少量的更改来提高效率,因为我不熟悉C++。我读到并行计算降低了这种效率。如何通过微小的改变摆脱它 int main(int

如何提高c++;代码';使用线程的效率是多少? <>我必须使用速度太慢的C++代码,也许是使用OpjSt*SuthNothType函数。我不熟悉C++。我只需要这段代码来生成输入数据,但我不知道这段代码里面是什么。输出结果是,列长度为36的样本垂直堆叠,我想加快代码的速度。当我放置ompt\u set\u num\u线程(1)时,性能会有所提高。我想通过少量的更改来提高效率,因为我不熟悉C++。我读到并行计算降低了这种效率。如何通过微小的改变摆脱它

int main(int argc, char* argv[])
{
    omp_set_num_threads(8); 

    if (init(argc, argv)) {
        fprintf(stderr, "Program ended.\n");
    exit(2);
}

只有当一些线程正在等待输入,或者如果您有非常繁重的计算,您可以将其拆分为更小的部分时,线程的东西才有意义。在上述非常简单的情况下,创建线程的开销将远远超过拆分工作的任何收益。但是这种线程会减慢计算速度,如何摆脱它呢?多线程是一个复杂的解决方案,相关的代码需要仔细地按照它来设计。多线程很少是一个解决方案,你可以在事后加快速度。每个线程都有安装和维护的开销。无法保证线程将在单独的内核上运行。有一种可能性,线程可以以循环方式调度在与主线程相同的CPU上(这可能不会显示任何性能改进)。