对于OMP的评估

某些耗时极短的循环操作不适合用OMP多线程!

///////////////////////////////////////////////////////////////////////////////////////////////////////////////   

    char *name[20000];
    clock_t first_clk = clock();
    for (int i = 0;i<20000;++i)
    {
        name[i] = new char[100];
    }
    clock_t second_clk = clock();
    cout<<"time is :"<<(second_clk-first_clk)<<endl;//耗时16
    for (int i = 0;i<20000;++i)
    {
        delete [] name[i];
    }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

    char *name[20000];
    clock_t first_clk = clock();
    #pragma omp parallel for
    for (int i = 0;i<20000;++i)
    {
        name[i] = new char[100];
    }
    clock_t second_clk = clock();
    cout<<"time is :"<<(second_clk-first_clk)<<endl;//耗时31(四核处理器)

    for (int i = 0;i<20000;++i)
    {
        delete [] name[i];
    }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

你可能感兴趣的:(对于OMP的评估)