[英]Intel Xeon Phi - running multiple single-threaded executables
我正在尝试确定是否可以使用Intel Xeon Phi协处理器来“并行化”以下问题:
假设我有2000个文件需要由单线程可执行文件处理。 对于每个文件,可执行文件都将其读取,执行其操作并将其输出到相应的输出文件中,然后退出。
例如:
FILES=/path/to/*
for f in $FILES
do
# take action on each file
./executable $f outFileCorrespondingTo_f
done
这些工具尚未编码用于多线程执行或遍历文件,我们现在也不希望更改其代码中的任何内容。 它们是用C编写的,带有一些外部库。
我的问题是:
是否可以在Xeon Phi的本机OS上运行这种“脚本循环”,以使其并行化对可执行文件的调用,从而使它们在其所有内核上并行运行? 足够“通用”吗?
文件本身很小,因此其8GB内存足以在运行时存储数据,而不是将所有输出保留在设备上,因此我需要在主机上输出。 因此,我的第二个问题是:这种内存交换是否可以“外部”进行?
也就是说,对于可执行文件的每次执行,都不会被编码到工具中,而是由主机OS和设备进行管理。
Xeon phi协处理器运行功能非常强大的Linux操作系统版本,因此您在Linux机器上习惯的大多数功能也可能在Xeon Phi上运行。
现在,对于您的特定问题,我想GNU Parallel应该让您喘口气。 简单来说,您必须将文件系统安装在卡上,以便可以直接访问文件,但这只是Xeon Phi节点的标准配置。 并且请注意,这将在主机和协处理器之间的PCIe链接上生成一些流量,以进行文件传输。
关于性能,这很难说:Xeon Phi内核的较低单线程性能以及传输时间无疑暗示了该领域的巨大成功,但是您可以从设备中提取的并行性水平可能会很好地克服这一问题。 ,具体取决于您的工作负载的计算强度。 最好的答案是您尝试一下...
这是Gilles给出的答案的补充。
是的,Xeon Phi应该能够在基本操作级别上完成您想要的操作。
即使如此,出于某些原因,我仍然认为这是错误的平台 。
现在,KNL架构可能更适合您的需求,但是还没有出来。
如果您仍然认为至强融核可能适合您想做的事情,可以咨询至强融核英特尔论坛专家。 如果您的应用程序是专有的/敏感的,您可以私下询问英特尔专家。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.