首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用并行编译器进行编译以便与Ruby一起使用?

使用并行编译器进行编译以便与Ruby一起使用?
EN

Stack Overflow用户
提问于 2013-01-25 11:29:56
回答 1查看 233关注 0票数 0

我有一个(半)理论问题。

有没有可能用并行的专用编译器编译C代码,比如OpenMP,CUDA,等等,为Ruby语言写一个C扩展,在分布式机器上运行得更好(理论上)?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-25 21:48:19

如果你的意思是,你能把并行C代码编译成Ruby扩展吗,我想你基本上应该能做到。例如,执行矩阵乘法的Ruby的数值扩展可以调用英特尔MKL的DGEMM例程,而MKL在内部与OpenMP并行化。

您应该注意的是,不要混入使用不同OpenMP运行时的相同程序扩展。以英特尔C/C++编译器和Oracle的Solaris Studio为例。它们中的每一个都有自己的OpenMP运行时实现。这些实现在很大程度上彼此不兼容,将它们混合在同一个可执行文件中(通过静态链接或在运行时动态加载模块)是对灾难的召唤。

另一件需要注意的事情是Ruby运行时是否是线程安全的,以及是否可以从多线程代码中调用它。如果不从OpenMP parallel区域内部调用Ruby运行时,那么这句话就不重要了。

由于只有一家CUDA供应商,因此当涉及到启用CUDA的扩展时,人们应该只关心版本不匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14514883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档