Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading 跨距并联回路_Multithreading_Dynamic - Fatal编程技术网

Multithreading 跨距并联回路

Multithreading 跨距并联回路,multithreading,dynamic,Multithreading,Dynamic,我在理解动态多线程方面有问题。我有以下算法: 第16页,MAT-VEC 在文本中,他们说“对于nxn矩阵上的MAT-VEC,第3-4行中的并行初始化循环具有跨度θ(lg n)” 我的问题是为什么?我很困惑。因此,如果有人能解释他们的意思,这将是一个很大的帮助 首先,对于那些不知道“跨度”的人来说,“跨度”的定义是关键路径的长度。如果您有无限多个CPU,那么范围定义了完成算法所需的最短时间 为了运行一个有N个迭代的循环,最短的方法是生成线程,直到有N个线程,然后让N个线程中的每个线程执行一个工作

我在理解动态多线程方面有问题。我有以下算法:

第16页,MAT-VEC

在文本中,他们说“对于nxn矩阵上的MAT-VEC,第3-4行中的并行初始化循环具有跨度θ(lg n)”


我的问题是为什么?我很困惑。因此,如果有人能解释他们的意思,这将是一个很大的帮助

首先,对于那些不知道“跨度”的人来说,“跨度”的定义是关键路径的长度。如果您有无限多个CPU,那么范围定义了完成算法所需的最短时间

为了运行一个有N个迭代的循环,最短的方法是生成线程,直到有N个线程,然后让N个线程中的每个线程执行一个工作单元。以下是生成8个线程的工作方式:

time 0: thread0 spawns thread1 time 1: thread0 spawns thread2, thread1 spawns thread3 time 2: thread0 spawns thread4, thread1 spawns thread5, thread2 spawns thread6, thread3 spawns thread7 time 3: all 8 threads perform their task 时间0:thread0生成thread1 时间1:thread0生成thread2,thread1生成thread3 时间2:thread0生成thread4,thread1生成thread5,thread2生成thread6,thread3生成thread7 时间3:所有8个线程都执行它们的任务
这需要3个单位的时间,所有东西都并行运行,才能创建8个线程。由于
lg(8)=3
,因此该算法的范围是
Θ(lg n)

谢谢。我还是有点困惑。链到底是什么?链是一个不能并行化的基本工作单元。