为什么我的多线程代码在EC2 AWS上运行得不快?

时间:2018-03-06 09:38:46

标签: multithreading amazon-web-services amazon-ec2 concurrency

所以我实现了一个使用简单的

在c ++中创建8个线程的代码

使用lambda函数的线程数组....然后在完成后加入它们。

在我的笔记本电脑上,大约需要10分钟(没有线程,大约需要100分钟)

但是当我在AWS'EC2 C5 Extra Large上运行相同的代码时,代码实际上需要更长的时间来计算。

EC2可以实现并发吗?是否需要以某种方式进行修改?

    class concurr{
    public:

    double arr[8];
    void func1(vector<vector<double>> data,int x);
    double func2(vector<vector<double>> data);
    }

这些将是我将要处理的函数类型

    double concurr::func2(vector<vector<double>> data){

        thread threads[8];
        for (int x = 0; x < 8; x++){
            threads[x] = thread( [&]{ this->func1(data, x); } );
        }
        for (auto& th : threads){
            th.join();
        }
        // ..... does something with the arr[8].... to come up with double = value
        return value;
    }

这是代码的大致轮廓。所以func1将接收“数据”并改变“x”的值并提出一些值并将它们存储在arr [x]

0 个答案:

没有答案