MPI与TensorF结合使用的意义

2024-05-13 01:07:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我来自一个高性能计算机的背景,我刚刚开始学习一般的机器学习,特别是TensorFlow。我最初很惊讶地发现,分布式TensorFlow被设计成默认与TCP/IP通信,尽管考虑到Google是什么以及它最常用的硬件类型,事后看来这是有意义的。

我感兴趣的是在集群上用MPI并行的方式测试TensorFlow。从我的角度来看,这应该是有利的,因为MPI在没有共享内存的机器上使用远程直接内存访问(RDMA),所以延迟应该低得多。

所以我的问题是,为什么在TensorFlow和机器学习越来越流行的情况下,这种方法似乎不更常见?延迟不是瓶颈吗?有没有什么典型的问题被解决了,使这种解决方案不切实际?以并行方式调用TensorFlow函数与在TensorFlow库中实现MPI调用之间是否可能存在任何有意义的区别?

谢谢


Tags: ip机器类型硬件tensorflow计算机google方式
2条回答

tensorflow似乎已经支持MPI,如https://github.com/tensorflow/tensorflow/tree/master/tensorflow/contrib/mpi所述 在https://arxiv.org/abs/1603.02339中还讨论了对tensorflow的MPI支持

一般来说,请记住,MPI最擅长发送/接收消息,但不擅长发送通知和根据事件采取行动。 最后但并非最不重要的是,在MPI实现中,对多线程应用程序(例如MPI_THREAD_MULTIPLE)的MPI支持并不总是生产就绪的。 这是两个一般性的陈述,我真的不知道它们是否与tensorflow相关。

根据Tensorflow git repo中的文档,实际上tf使用的是detault的gRPC库,它基于HTTP2协议,而不是TCP/IP协议,并且this paper应该会给您一些启示,希望这些信息有用。

相关问题 更多 >