我有一个程序,希望更多地提高运行时性能。
let a = 1;
let b = 2;
let c = a + b;
let d = c + 2;
let e = 3;
let f = c + d;
let g = a + e;
步骤1:因为a,b和e是独立的,所以我想并行地执行它们(不同的核心)。
步骤2:由于c依赖于a,而b;g依赖于a和e,但c和g是相互独立的,因此在步骤1之后执行c和g,但并行执行。
步骤3:因为d依赖于c,所以它们在步骤2之后执行。
步骤4:因为f依赖于c和d,所以它在步骤3之后执行。
我们能用C来实现这一目标吗?或者任何编程语言都支持这一点吗?
作为一名主要与高级编程语言打交道的软件开发人员,我不确定我可以做些什么来适当地关注即将出现的多核计算机。我写的大多是普通的、要求不高的应用程序,然而,我认为知道我是否需要改变任何编程范例甚至是语言来掌握未来是很重要的。
因此,我的问题是:
How to deal with increasing multicore presence in day-by-day hacking?
我似乎找不到直接的答案。使用几个搜索引擎给了我非常模糊的结果,或者只回答了一半的问题。
因此,要详细说明的是,当您编写一个程序并对其进行编译/解释时,计算机是按时间顺序顺序读取每一行,还是默认情况下跳过?
示例:使用C风格的源代码,因为它是最先想到的东西。
printf("I'm the first line of your program! Yay!");
printf("I'm the second, woo!");
printf("And I'm the third, yay!");
上面可以看到有三行代码,当运行时