【问题标题】:Intel Xeon Phi - running multiple single-threaded executables英特尔至强融核 - 运行多个单线程可执行文件
【发布时间】:2015-10-01 07:34:45
【问题描述】:

我正在尝试找出是否可以使用英特尔至强融核协处理器来“并行化”以下问题:

假设我有 2000 个文件需要由单线程可执行文件处理。对于每个文件,可执行文件读取它,执行它的操作并将其输出到相应的输出文件,然后退出。

例如:

FILES=/path/to/*
for f in $FILES
do
    # take action on each file
    ./executable $f outFileCorrespondingTo_f
done

这些工具没有针对多线程执行或循环文件进行编码,我们目前也不希望更改其代码中的任何内容。它们是用 C 语言编写的,带有一些外部库。

我的问题是:

  1. 这种“脚本循环”能否在 Xeon Phi 的本机操作系统上运行,使其并行调用可执行文件,以便它们在其所有内核上同时运行?够“通用”吗?

  2. 文件本身很小,所以它的 8GB 内存足以在运行时存储数据,但不能将所有输出保存在设备上,所以我需要在主机上输出.所以我的第二个问题是:这种内存交换是否可能“在外部”?

即没有编码到工具中,而是由主机操作系统和设备管理,用于可执行文件的每次执行。

  1. 如果可能,它能否以任何方式提供性能提升,或者内存和线程分配瓶颈是否过于密集?基本上每次执行都需要几秒钟,具体取决于输入文件的长度,但我很有信心这比传输文件所需的时间长几个数量级。

【问题讨论】:

  • 关于并发运行多个进程的性能可能会导致大量的 L2 缓存争用/抖动。良好的 L2 使用通常对于在 KNC 上获得良好的性能非常重要。不过,这取决于工作量,所以 YMMV。

标签: c++ concurrency xeon-phi


【解决方案1】:

至强融核协处理器运行功能非常齐全的 Linux 操作系统版本,因此您在 Linux 机器上使用的大部分功能也可能在至强融核上运行。

现在,对于您的具体问题,我想GNU Parallel 应该只允许您一口气做您想做的事。简单地说,您必须将文件系统安装在卡上,以便您可以直接访问文件,但这只是 Xeon Phi 节点的标准配置。请注意,这将在主机和协处理器之间的 PCIe 链路上产生一些流量,用于文件传输。

关于性能,这很难说:Xeon Phi 内核的较低单线程性能以及传输时间肯定表明该领域大受欢迎,但您可以从设备中提取的并行度水平可能非常很好地克服这一点,具体取决于您的工作负载的计算密集程度。最好的答案是让你试一试......

【讨论】:

  • 不过就是这样,我们目前没有拥有一台,我正在尝试确定这项投资是否值得。谢谢!
【解决方案2】:

这是对 Gilles 给出的答案的补充。

是的,Xeon Phi 应该能够在基本操作级别上做你想做的事情。

即便如此,出于几个原因,我认为它是错误的平台

  • 至强融核上的每个核心都是奔腾核心。尽管它得到了增强(4 线程/核心、512 位矢量引擎等),但它仍然是 Pentium。这意味着它将标量代码作为奔腾运行。您的任务听起来像是一大堆并行运行的串行进程。因此,每个进程都会像在 Pentium 上运行一样运行。
  • 要实现卓越的性能,您需要能够很好地并行化(读作 OpenMP、轻量级线程和线程池)和矢量化(利用 512 位矢量引擎)的代码。如果没有这两个增强功能,您将在 Pentium 上运行,并且支持大量 Pentium。
  • 通过 PCIe 总线移动数据很慢。如果您要传输大量文件,这可能会更慢,尽管您可以通过隐藏延迟(取决于您的应用程序)来稍微减少争用。如果您在启动时使用 244 个文件读取请求来访问 PCIe 总线,那将是相当多的争用。即使在稳定状态下,听起来您在任何给定时间都会读取超过 20 个文件(考虑到我们将标量代码作为 Pentium 执行,我怀疑更多)。

现在 KNL 架构可能更适合您的需求,但这还没有推出。

如果您仍然认为 Xeon Phi 可能适合您想要做的事情,您可以咨询Xeon Phi Intel forum 专家。如果您的应用程序是专有/敏感的,您可以私信询问英特尔专家。

【讨论】:

  • 如果我可以通过运行 60 个奔腾而不是一个至强来获得 5-10 倍的加速,那仍然是一个巨大的进步。考虑到我们的时间框架,将工具本身与 openMP 并行化并不是一种选择。
猜你喜欢
  • 1970-01-01
  • 2013-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多