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