在OpenMP中使用时omp sections,将线程分配到这些块内的部分,或者将每个线程被分配给每个区段?
时间nthreads == 3:
#pragma omp sections
{
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
id=1
id=1
Run Code Online (Sandbox Code Playgroud)
但是当我执行以下代码时:
#pragma omp sections
{
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
#pragma omp section
{
printf ("id = %d, \n", omp_get_thread_num());
}
}
#pragma omp sections
{
#pragma omp section
{
printf ("id = …Run Code Online (Sandbox Code Playgroud) 我已经阅读了CUDA编程指南,我无法理解下面显示的线程分配方法:
dim3 dimGrid( 2, 2, 1 );
dim3 dimBlock( 4, 2, 2 );
KernelFunction<<< dimGrid, dimBlock >>>(. . .);
Run Code Online (Sandbox Code Playgroud)
有人可以解释如何为上述条件分配线程吗?