我正在试图找出是否可以使用英特尔至强融合协处理器“并行化”以下问题:
假设我有2000个文件需要由单线程可执行文件处理。对于每个文件,可执行文件读取它,执行其操作并将其输出到相应的输出文件,然后退出。
例如:
FILES=/path/to/*
for f in $FILES
do
# take action on each file
./executable $f outFileCorrespondingTo_f
done
这些工具不是为了多线程执行或循环遍历文件而编码的,我们也不想在其代码中更改任何内容。它们是用C语言编写的,带有一些外部库。
我的问题是:
这种“脚本循环”是否可以在Xeon Phi的本机操作系统上运行,以便并行化对可执行文件的调用,以便它们在所有内核上同时运行?是否足够“通用”?
文件本身相当小,所以它的8GB内存足以在运行时存储数据,但不能保留设备上的所有输出,所以我需要在主机上输出。所以我的第二个问题是:这种内存交换是否可能“外部”?
即。对于每次执行可执行文件,都没有编码到工具中,而是由主机操作系统和设备管理。
答案 0 :(得分:0)
Xeon phi协处理器运行Linux操作系统的功能完备版本,因此您在Linux机器上习惯的大部分内容也可能适用于Xeon Phi。
现在,针对您的具体问题,我想GNU Parallel应该只允许您一口气做您想做的事。简单地说,您必须将文件系统安装在卡上,以便您可以直接访问文件,但这只是Xeon Phi节点的标准内容。请注意,这将在主机和协处理器之间的PCIe链路上产生一些流量以进行文件传输。
关于性能,这很难说:Xeon Phi核心的较低单线程性能以及传输时间肯定会在这个领域引起很大的冲击,但是你可以从设备中提取的并行性水平可能非常高很好地解决了这个问题,具体取决于您的工作量是如何计最好的答案是你尝试一下......
答案 1 :(得分:0)
这是吉尔斯给出的答案的补充。
是的,Xeon Phi应该能够在基本的操作级别上做你想做的事。
即便如此,出于某些原因,我认为这是错误的平台。
现在KNL架构可能更适合您的需求,但目前还没有。
如果你仍然认为Xeon Phi可能适合你想做的事情,你可以问Xeon Phi Intel forum专家。如果您的应用程序是专有/敏感的,您可以将英特尔专家作为私人消息。