Parallel processing 并行计算:从理论到实践

Parallel processing 并行计算:从理论到实践,parallel-processing,mpi,Parallel Processing,Mpi,我研究了如何为多处理器系统优化算法。现在,我将在主线中理解如何将这些算法转换为代码 我知道存在一些基于MPI的库,它们有助于开发可移植到不同类型系统的软件,但“可移植”这个词是正确的,它让我感到困惑:既然这是mpirun的一个选项,那么程序如何在运行时自动适应任意数量的处理器?软件如何决定合适的拓扑结构(网格、超立方体、树、环等)?程序员可以通过MPI指定首选拓扑。?使用固定数量的内核启动应用程序。因此,您无法在运行时自动适应任意数量的处理器 您可以根据集群的拓扑结构调整软件。这是非常先进的,当

我研究了如何为多处理器系统优化算法。现在,我将在主线中理解如何将这些算法转换为代码


我知道存在一些基于
MPI
的库,它们有助于开发可移植到不同类型系统的软件,但“可移植”这个词是正确的,它让我感到困惑:既然这是
mpirun
的一个选项,那么程序如何在运行时自动适应任意数量的处理器?软件如何决定合适的拓扑结构(网格、超立方体、树、环等)?程序员可以通过MPI指定首选拓扑。?

使用固定数量的内核启动应用程序。因此,您无法在运行时自动适应任意数量的处理器

您可以根据集群的拓扑结构调整软件。这是非常先进的,当然不是便携式的。只有当您拥有一个固定的集群并且正在努力实现最后一点性能时,这才有意义


最好的问候,Georg

如果你提到多核,听起来你说的是一台单核多核计算机,而不是一个计算服务器网络。如果您在网络上,可能需要MPI或某种群集类型的方法。但是,如果您在一台具有多个内核的计算机上,您可能不需要消息传递,而需要OpenMP、OpenCL(如果您有GPU)或线程。因此,在日常PC中,多核软件通常使用不同的线程获得,使用共享内存和分治或贪婪调度方法,是吗?在这种情况下,“可移植”意味着MPI几乎可以在任何供应商的任何系统上使用,并且源代码兼容。这基本上意味着您可以在任何地方编译任何MPI应用程序。其他问题仍然有效:)@MarkSetchell让我知道;)