Multithreading 循环的双嵌套并行及其跨度

Multithreading 循环的双嵌套并行及其跨度,multithreading,for-loop,parallel-processing,parallel-for,Multithreading,For Loop,Parallel Processing,Parallel For,我试图让我的头脑围绕着并行for循环是如何工作的这个想法,这对我来说是相当新鲜的,我已经阅读了这个stackoverflow线程,在这里找到了,在那里找到了最有用的答案 但我想知道的是,如果我有一个lop的平行线,它里面有一个lop的平行线,如果它们的行为方式如下,为了方便起见,我让n=5和“to”表示最多,包括在内,你有没有把我的问题复杂化,使用j指数作为内部循环的终止极限?似乎这种构造还不够困难,因为这是一场线程/任务风暴。这里时间不多了!对不起,马丁,我不知道你所说的“断断续续的时间”是什

我试图让我的头脑围绕着并行for循环是如何工作的这个想法,这对我来说是相当新鲜的,我已经阅读了这个stackoverflow线程,在这里找到了,在那里找到了最有用的答案


但我想知道的是,如果我有一个lop的平行线,它里面有一个lop的平行线,如果它们的行为方式如下,为了方便起见,我让n=5和“to”表示最多,包括在内,你有没有把我的问题复杂化,使用j指数作为内部循环的终止极限?似乎这种构造还不够困难,因为这是一场线程/任务风暴。这里时间不多了!对不起,马丁,我不知道你所说的“断断续续的时间”是什么意思?只有我一个人,别担心。你的意思是用j作为你的内环的终止条件吗?啊,好的:。是的,j是故意的
parallel for j=1 to n{
    parallel for i=1 to j-1{
       Do-something
    }
}
Time           Action
 0       Thread0 creates Thread1
 1       Thread0 creates Thread2, T1 -> T3
 2       T0 -> T4, T1 -> T5
time           Action
 3       T0 -> SubT0t0, T1 -> subT1t0, T2-> SubT2t0....  

             //All threads have created a subthread t0 so 5 more threads created.

 4       T0 -> subT1t1, subT0t0 -> subT2t1, T1->subT2t2, subT1t0->subT3t1...

             //All the subthreads created more threads AND the 'Older' threads 
             //created subthreads under other 'Older' threads. 11 more created.

 5       T0 -> subT5t2, subT0t0 -> subT5t3, T1 -> subT5t4, subT5t5

             //All threads have been created.
 6       Execute command Do-something