问题标签 [speculative-execution]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
633 浏览

haskell - Haskell 推测性并行执行

我正在考虑利用并行性来解决我要解决的一个问题。问题大致是这样的:给定输入(点序列)找到最佳输出(由这些点组成的最大三角形、最长的线等)。在点序列中可以找到 3 种不同的“形状”,但是我只对具有“最佳分数”的那个感兴趣(通常是某种形式的“长度”乘以系数)。我们将形状称为 S1、S2、S3。

我有 2 种不同的算法来解决 S1 - 'S1a' 在 O(n 2 ) 中,'S1b' 大多表现更好,但最坏的情况大约是 O(n 4 )。

第一个问题:是否有一些简单的方法可以并行运行 S1a 和 S1b,使用先完成的一个并停止另一个?就我正在阅读文档而言,这可以使用一些 forkIO 进行编程,并在获得结果时终止线程 - 只是询问是否有更简单的东西?

第二个问题 - 更难:我这样调用优化函数:

valueOfSx 对每个形状都是特定的,并返回一个“分数”(或对分数的猜测)一个可能的解决方案。优化调用此函数以找出最佳解决方案。我感兴趣的是:

但是,如果我知道 S1 的结果,我可以丢弃所有较小的解决方案,从而在不存在更好解决方案的情况下使 s2 和 s3 更快地收敛(或者至少丢弃最差的解决方案,从而提高空间效率)。我现在正在做的是:

问题是:我能否以这样的方式并行运行例如 S2 和 S3,无论哪个先完成都会更新在另一个线程中运行的分数函数的“阈值”参数?某种意义上的东西:

0 投票
3 回答
5131 浏览

haskell - 为什么我们在 Haskell 中需要 'seq' 或 'pseq' 和 'par'?

我试图理解为什么我们需要标准示例代码的所有部分:

为什么以下内容还不够?

上面的表达式似乎非常具有描述性:尝试同时计算两者ab返回结果a+b。只是效率的原因:第二个版本会触发两次而不是一次?

下面的更简洁的版本怎么样?

为什么我们需要确保在原始标准代码中b进行评估?a+b

0 投票
3 回答
13327 浏览

cpu-architecture - 推测和预测的区别

在计算机体系结构中,

(分支)预测和推测有什么区别?

这些看起来非常相似,但我认为它们之间存在细微差别。

0 投票
1 回答
387 浏览

javascript - 如何防止 Firefox 推测加载 javascript 文件?

我在 HEAD 中有一些设置 cookie 的 javascript 代码。稍后在页面底部我加载另一个 javascript 文件。该文件由动态后端页面提供服务,该页面使用 cookie 来确定要返回的内容。

Firefox 出现了一个问题,因为它使用推测解析:它在 HEAD 中的 javascript 执行之前在页面末尾加载了 javascript 文件。由于在加载第二个 javascript 文件时 cookie 尚未设置,因此后端页面不会收到 cookie 值。

有什么办法可以防止 Firefox 过早加载第二个 javascript 文件?

0 投票
2 回答
1930 浏览

hadoop - Hadoop Reducer:如何使用推测执行输出到多个目录?

我有一个 reducer,它需要将结果输出到不同的目录,以便我们以后可以将输出用作 Hive 作为分区表的输入。(Hive 基于文件夹名称创建分区)。为了写出这些位置,我们目前没有使用任何 Hadoop 框架来完成这项工作,我们只是在“Hadoop 背后”的不同位置写出,可以这么说。换句话说,我们没有使用 hadoop 的 API 来输出这些文件。

我们遇到了mapred.reduce.tasks.speculative.executionset to的问题true。我理解是这种情况,因为同一任务的多个任务尝试正在写入同一位置。

有没有办法正确使用Hadoop的API从同一个reducer输出到几个不同的文件夹,这样我也可以使用mapred.reduce.tasks.speculative.execution=true?(我知道 MultipleOutputs,我不确定它是否支持推测执行。)

如果是这样,有没有办法做到这一点输出到 S3?

0 投票
2 回答
2130 浏览

java - 如何从 Java 关闭 hadoop 推测执行

在阅读了Hadoop 推测任务执行之后,我尝试使用新的 Java api 关闭推测执行,但它没有任何效果。

这是我的主要课程:

我的 MapReducer 是这样开始的:

但是当我查看日志时,我看到:

如果我理解,那么这意味着推测执行仍在进行中,否则如果我只有 16 个输入文件,为什么会有 26 个拆分。我弄错了吗?

注意:我相信我使用了新的 api,因为我在日志中看到了这些警告:

0 投票
2 回答
291 浏览

hadoop - Hadoop推测执行测试

我正在为我的硕士论文 Hadoop 1.1.2 研究 Hadoop。

我正在研究一种用于推测任务的新算法,因此在第一步中,我尝试在代码中应用一些更改。

可悲的是,同样使用 2 个节点,我无法导致推测执行。我在 DefaultTaskSelector 类(这是用于推测任务的类)中写了几行代码作为 Log,但是在初始化之后,FairScheduler 类永远不会调用这个类。

我也在配置文件(mapred-site...xml)中激活了“推测”选项,但什么也没有。

所以问题是:我怎样才能导致/强制投机执行?

问候

0 投票
1 回答
55 浏览

design-patterns - Mathematica 使用的编程模式的名称

从 Mathematica 7.0 开始,有 ParallelTry 函数 [1] 可以并行计算多个函数,返回收到的第一个结果。这类似于对不相交的数据结构进行并行搜索。另一个常见用例是针对给定问题运行多个算法并等待返回第一个结果。

问题是这种计算方式是否有一个好名字。我只能想到调用这种 Eureka 风格,其中找到结果的函数(任务)之一惊呼 Eureka!

[1] http://reference.wolfram.com/language/ref/ParallelTry.html

0 投票
4 回答
15368 浏览

hadoop - MapReduce 和 Yarn 的区别

我正在搜索有关散乱问题的 hadoop 和 mapreduce 以及此问题中的论文,
但昨天我发现有带有 Yarn 的 hadoop 2,
不幸的是,没有论文谈论 Yarn 中的散乱问题
所以我想知道两者之间有什么区别MapReduce 和 Yarn 在部分落后者?Yarn 有掉队的问题吗?
而当MRmaster向resource manager索取资源时,resource manager会给MRmaster所有它需要的资源还是根据集群计算能力?
非常感谢,,

0 投票
1 回答
54 浏览

cpu - 未执行的未定义 CPU 指令会导致错误?

现在我尝试动态调度代码,例如 SSE、AVX 等。在二进制文件中,将在执行时分派的所有代码都捆绑在一起。

我担心代码路径中未定义的 CPU 指令不会在 CPU 中执行,会通过推测执行或其他方式导致意外行为。

那么,我有两个问题。

  1. CPU通常会在推测执行中报错吗?
  2. 未执行的未定义 CPU 指令会导致错误吗?