【发布时间】:2013-11-14 04:50:51
【问题描述】:
是否有任何工具可以为我重写二进制文件以使用 GPU、SSE 指令或多线程?我有一个单线程程序,有很多空闲周期,但我没有源代码。
【问题讨论】:
标签: multithreading optimization compiler-construction gpu
是否有任何工具可以为我重写二进制文件以使用 GPU、SSE 指令或多线程?我有一个单线程程序,有很多空闲周期,但我没有源代码。
【问题讨论】:
标签: multithreading optimization compiler-construction gpu
此任务没有通用工具,因为并行化代码需要理解它,除了循环等琐碎的情况。
有些工具可以在源代码级别进行操作,以实现或多或少的微不足道的并行化,但是一旦编译代码,您就会丢失很多语义信息。
您可以尝试通过生成多个进程在更高级别上并行化它。
例如如果此二进制文件采用参数 n 并且其执行时间与 n 成线性关系,那么生成 p 进程最多可以将您的运行时间除以p.
当然,你应该确保这个程序不会做与并行化不兼容的事情,因为你可能真的把事情搞砸了:想象这个程序使用一个文件来存储临时数据,运行两个实例可能会损坏文件。
因此,在尝试运行并行实例之前,请谨慎确定二进制文件的范围:文件、数据库、系统资源(互斥体、信号量...)。 如果它使用位于同一文件夹中的文件,那么您也必须在 p 文件夹中复制二进制文件。
【讨论】: