使用线程添加多个数组

时间:2018-02-03 16:01:10

标签: algorithm

我不确定如果这个问题在这里问题是否合适。如果有人知道更好的平台让我知道。或者一些阅读材料。我想知道是否可以使用线程通过线程添加多个数组。这会导致更快的功能。 通常我使用for循环添加两个数组(相同长度)的方式。但我认为,因为每条指令都按顺序运行,即第一个元素首先添加,第二个元素在第一个元素完成后开始。但是使用线程,我的程序在添加第一个元素后不需要等待添加第二个元素。这应该会带来更好的表现吗?

PS:我将数组视为向量。因此。 [1,2,3,4] + [1,3,5,7] = [2,4,8,11]

3 个答案:

答案 0 :(得分:1)

添加数组是什么意思?如同连接它们一样?类似的东西:[a,b,c,d] + [e,f,g] = [a,b,c,d,e,f,g]?

如果是这样,那么你可以使用多个线程来做到这一点。但是,这样做只有在谈论非常大的数组或大量数组时才有用。

始终存在与并发性相关的性能开销。

答案 1 :(得分:1)

是。您刚刚设计了介绍性parallel算法。 我刚从一本CUDA书中读到了一个像你这样的例子。 :-D

答案 2 :(得分:1)

你是对的,这可以并行完成。这也是一项相当简单的任务。这只是将数组分成相等的部分并将每个部分分配给一个线程的问题。对于使用CUDA或OpenCL的GPU来说,这也是一个合适的任务。

然而,这增加了复杂性,并且只有在阵列相当庞大时才能提供更好的性能。除非你确定这是你程序中的性能瓶颈,否则我不会费心去做。