C++ vs C用于分布式计算

grz*_*zkv 2 c c++ distributed-computing mpi

我即将开始一个科学计算的新项目,它将在一个使用8到32个CPU的计算机集群上运行.我将使用MPI来分配计算.最后一点是哪种语言更适合使用C或C++?我会做一些严肃的数字运算,我需要一个平滑且分布均匀的并行化.我没有使用MPI的经验,但我知道它比C++更适合C,即使使用了像boost :: MPI这样的库.考虑到性能至关重要,使用哪种语言更好?

注意:当然,可以在C++上编写C风格的代码,但毕竟不是C++.当我谈到C++时,我的意思是使用大量的OOP和泛型编程.

Dir*_*tel 12

您可以用任何语言编写慢速代码.MPI是一个消息传递库,所以它根本不关心是用C语言还是C++来调用它 - 使用更擅长的语言.

您应该通过分析和测量来确定.

C和C++之间语言大战比较甚至与大小,速度和内存使用有关.

最后,"编码时间"的重要性也被低估了.您可以使用C++比使用C语言更快地使用工作程序,因为您可以使用更多高级工具.或者你可能没有,所以我会尝试衡量.

  • +1用于测量.人们不应该声称"C++比C更快"或"C比C++快"或"Boost比法拉利更快"或"Jon Skeet比光更快"等等.这完全取决于你如何使用它们.请测量一下. (2认同)

Kon*_*lph 7

当我谈到C++时,我的意思是使用大量的OOP和泛型编程.

这可能是一个坏主意.C++主要不是面向对象的语言,并且将其用作"仅仅因为"并不是一种好方法.C++在泛型编程中的作用更大.

特别是如果性能对你很重要,那么使用C++,它比C更快,如果使用得当仍允许高抽象,但不要使用OOP.有关如何更好地使用C++的方法,请查看<algorithms>标准标题.