并行计算概述

转载 2012年03月28日 15:54:15

并行计算概述

这篇日志介绍并行计算的极为基础的一部分,为那些准备接触熟悉并行计算的人准备。 其中的描述和理解,大部分是根据我个人非常有限的经验和研究。 所以,可能存在失误。欢迎所有的意见和更正。

  • 什么是传统的串行计算?
    通常,串行计算程序是运行在具有一个核心(或CPU)的单机上。 这种程序被编译和解释成一串独立的命令指示,然后被挨个执行。 换句话说,任何时候只有一个线程在执行。

  • 什么是并行计算?
    相对应的,并行计算程序运行在一个多核心(或CPU)的计算机、或者由多台计算机组成的网络上。 这种程序被编译成多个部分,每个部分又进一步转化为一系列指令。 不同部分的指令可以同时执行。 换句话说,在同一时间可以有多个线程在执行。

  • 并行计算为什么有用?
    显然,并行计算可以节省时间。 并行计算也增加了资源的利用率。 另外重要的一点是,并行计算可以帮助解决不能在一台计算机上通过串行计算来解决的问题,尤其当受到速度或内存的限制时。
  • 并行计算有多少种模式?
    据我所知,依据内存是如何利用的分为三种模式:
    1.共享内存:
    在这种模式下,所有的线程独立运作,但共享相同的内存资源。 例如,在一个多核心电脑上不同的线程共享内存里的矩阵、参数,等等。这种模式在今天通常称为Symmetric Multiprocessor (SMP)。 这种模式下典型的并行计算程序可以使用OpenMP实现(一个API的多平台共享存储并行编程)。(下面图中的不同的CPU也可以表示不同的线程。)

    2.分布式内存:
    在这种模式下,线程(或处理器)都有自己的本地内存。 例如,内存可能会分布在整个网络,但是单个计算机上的每个线程只能用本地分配给它的内存。 甚至在同一台计算机上的不同线程都有独立的内存位置。 在这种模式下不同的线程通常需要与其他线程沟通以获取和发送数据。 在这种模式下典型的并行计算程序可以通过MPI(消息传递接口)实现。

    3.混合分布式内存:
    在这种模式下,共享存储的单元通常是一个SMP节点。 在给定的SMP处理器上内存是通用共享的。 程序所需的总内存分布在多个SMP构成的网络上。 每个SMP只知道自己的内存- 而不包括其他的SMP内存。 因此,一个SMP和另一个SMP的网络通信是必须的。 这种模式下典型的并行计算程序可以通过同时使用OpenMP和MPI来实现。

相关文章推荐

并行计算__简单并行计算实例

本文出自:点击打开链接 计算从1~1E10的和 // paralle.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include #...

并行计算之HelloWorld

#include #include "mpi.h" int main(int argc, char* argv[]) { int myid, numprocs,namelen; ch...

C# 4.0 并行计算部分

一、简单使用         首先我们初始化一个List用于循环,这里我们循环10次。(后面的代码都会按这个标准进行循环) Code Program .Data = ...

Java 7 Fork/Join 并行计算框架概览

应用程序并行计算遇到的问题     当硬件处理能力不能按摩尔定律垂直发展的时候,选择了水平发展。多核处理器已广泛应用,未来处理器的核心数将进一步发布,甚至达到上百上千的数量。而现在很多的应用程序...

课程总结 -- CPU/GPU并行计算基础(CPU篇)

上学期选修了Prof. Tolga Soyata的“GPU Parallel Programming using C/C++”课程。本文纪录其中的基础要点和关键实现方式。通过本文大家可以了解到:1、如...

数学之路-vb.net并行计算(6)

Imports SystemImports System.ThreadingImports System.DiagnosticsImports System.Diagnostics.ThreadSta...

并行计算作业脚本的编写

并行应用程序需要使用mpirun或mpiexec来运行,但是北京蓝海彤翔科技有限公司集群不允许直接使用mpirun或mpiexec来运行您的并行程序,必须编写作业脚本,通过qsub来提交。   作业...

thread48 - 线程池在并行计算中案例

package com.neutron.t23; import java.util.ArrayList; import java.util.List; import java.util.concur...

关于《OPENCL异构并行计算》中卷积优化的分析

《OPENCL异构并行计算》中讲了如何利用OPENCL进行卷积运算,并给出了使用局部存储器优化的例子,这里对其进行简单分析
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)