gpt4 book ai didi

c++ - 图像处理中的并发设计

转载 作者:行者123 更新时间:2023-12-02 10:05:17 26 4
gpt4 key购买 nike

我是本主题的新手,我需要为包含以下任务的程序设计并发性:

  • 从数据库加载图像(100毫秒)
  • 查找图像的一些元数据(50毫秒)
  • 将图像转换为灰度。 (100ms)
  • 查找灰度图像中的所有对象。 (600毫秒)
  • 裁剪包含对象的图像部分。 (100毫秒/对象)
  • 将数据(原始图像,元数据和新裁剪的图像)保存在数据库中(100毫秒)

  • 如何设计程序以并发方式运行?

    我发现第2步与第3、4、5、6步无关,因此可以并行运行,如下所示:
    1->2     -> 6
    3->4->5

    但是,由于任务2只有50毫秒,而任务6需要完成所有任务2、3、4、5才能执行。如何指定任务2需要“等待”其他任务?

    要同时运行,此问题的合理模式是什么?什么样的可能的问题会出现?
    我正在考虑这样的“管道模式”。但不确定是否有更有效的模式
    1->2     -> 6
    3->4->5
    1->2 -> 6
    3->4->5
    1->2 -> 6
    3->4->5
    ...

    最佳答案

    您可以将工作负载分解为任务,它们之间具有依赖性。并使用Intel Task Scheduler执行并自动并行化您的工作负载。参见Tutorial : Task Based Programming

    为了获得更多的见识,我不建议您足够观看Plain Threads are the GOTO of todays computing - Hartmut Kaiser - Keynote Meeting C++ 2014

    关于c++ - 图像处理中的并发设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60498222/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com