1

是否有任何工具可以为我重写二进制文件以使用 GPU、SSE 指令或多线程?我有一个单线程程序并且有很多空闲周期,但我没有源代码。

4

1 回答 1

0

这个任务没有通用工具,因为并行化代码需要理解它,除了像循环这样的琐碎情况。

有一些工具可以在源代码级别操作以进行或多或少的微不足道的并行化,但是一旦编译代码,您就会丢失很多语义信息。

您可以尝试通过产生多个进程在更高级别上并行化它。

例如,如果此二进制文件采用参数n并且其执行时间与n成线性关系,那么生成p进程最多可以将您的运行时间除以p

当然,你应该确保这个程序不会做与并行化不兼容的事情,因为你可能真的把事情搞砸了:想象这个程序使用一个文件来存储临时数据,运行两个实例可能会损坏文件。

因此,在尝试运行并行实例之前,请谨慎确定二进制文件的范围:文件、数据库、系统资源(互斥体、信号量......)。如果它使用位于同一文件夹中的文件,那么您也必须在p文件夹中复制二进制文件。

于 2013-11-13T20:50:51.677 回答