从一个简单的实际例子看并行处理

在不使用并行处理之前

假如我有一个很大的tif图片

从一个简单的实际例子看并行处理_第1张图片

我想算一下这张图片中有多少的像素点是黑色的,我可能会这么做:

def cnt_black(filename):
    img = tf.imread(filename)
    width, height, channels = img.shape
    cnt = 0
    for i in range(width):
        for j in range(height):
            r, g, b = img[i, j, 0], img[i, j, 1], img[i, j, 2]
            if r == 0 and g == 0 and b == 0:
                c_num += 1
    return cnt

这么遍历耗时很久,等待程序出结果的时间中我的耐心要消耗光了!

现在我们了解到,并行处理或许可以减少我们等待的时间。

什么是并行处理,它的底层硬件依赖什么?所有人的电脑都可以上这个方法吗?

并行处理的定义介绍见另一篇博客(待更新)

底层硬件:CPU or GPU?

并行处理依赖于硬件的多核。一般我们说并行处理都是指的在cpu上进行并行,因为cpu一般是单核运算,需要你指明多核进行并行处理。

而GPU本身是针对并行计算优化的硬件,它可以同时处理大量数据,因此天然支持并

你可能感兴趣的:(八股,数据处理,算法)