我有X个内核并行完成唯一的工作,但是它们的输出需要按顺序打印。
Object {
Data data
int order
}
我已经尝试将对象完成并行工作后放到最小的堆中,但是,即使这是一个很大的瓶颈。
有什么办法可以并行完成工作并保证打印顺序?我的问题有一个已知术语吗?其他人以前遇到过吗?
Q:我的问题是否有已知的term?
是,有:: a con·tra·dic·tion | [ ˌkän-trə-ˈdik-shən ]
计算机科学,从系统理论中借用了术语[[[[contradiction的定义 …2a:主张或暗示某事物的真实性和虚假性的命题,陈述或短语//…矛盾的两个部分都不可能是真实的…-托马斯·霍布斯2b:各部分彼此矛盾的陈述或短语//圆角正方形在术语上是矛盾的3a:逻辑不一致3b:一种内在因素,行动或主张相互矛盾或矛盾的情况来源:Merriam-Webster
{ PARALLEL | SERIAL | CONCURRENT }
,并尊重每种此类操作的独特性(且绝不重叠),其中:]][[PARALLEL]
a]] >>开始and b) 被执行和 c]被完成[[同时,即所有元素都一次进入/退出[PARALLEL]
节和
[SERIAL]
工作单元的编排意味着,所有工作单元都以一个静态的,已知的,特定的顺序进行处理,以这样的顺序启动一个或多个工作单元。 (已知)-在上一个完成工作之后的下一个-即one-after-another,其他情况除外。如果资源和系统条件允许(遵守调度程序优先级),而在[CONCURRENT]
工作单元编排允许启动多个工作单元,从而导致执行顺序未知和执行时间未知完成,因为前者和后者都取决于未知的外部性(系统条件和(非)资源的可用性,这是/将需要特定工作单元的详细说明)[SERIAL]
OR-PRIOR的已知,固有嵌入的含义(因为它已预先连接到工作处理流程代码),在
[CONCURRENT]
[PARALLEL]
,因为所有开始/执行/完成在同一时间-因此,以[PARALLEL]
方式执行的所有工作单元都没有其他机会,而是同时第一和最后一次。Q:有什么办法可以并行完成并保证打印顺序?:以前是否有人遇到过?No,除非您有意或无意违反了
[PARALLEL]
编排规则,并将re [[SERIAL]
-iser)逻辑重新输入到工作初始化中,以强制执行任何此类希望的排序,这是未知的,对于最初的[PARALLEL]
工作单元的编排来说,自然性就不那么自然了[[(这是python中的常见做法-使用GIL垄断者灌输的步进-作为该步骤的示例]Q
是。每个学期都在StackOverflow上再次出现此问题或类似假定的问题。