精华内容
下载资源
问答
  • 并发计算 VS 并行计算

    千次阅读 2017-01-21 14:07:14
    上一篇文章中,我们学习了如何在CUDA中隐藏数据传输,而其中用到的主要技术就是并发计算。这时你可能会问,这个专栏不是CUDA并行计算吗?怎么又说什么并发计算呢?其实,这里所说的“CUDA并行计算”并

    关于CUDA并行计算的所有博客,我已迁移至segmentfault社区-CUDA编程专栏,这里是本文的链接:https://segmentfault.com/a/1190000008186637

    写在前面

    上一篇文章中,我们学习了如何在CUDA中隐藏数据传输,而其中用到的主要技术就是并发计算。这时你可能会问,这个专栏不是CUDA并行计算吗?怎么又说什么并发计算呢?其实,这里所说的“CUDA并行计算”并不是纯粹的并行计算,而是并行计算与并发计算相结合的一种技术。那么这两者的区别又是什么呢?我觉得是时候讲一下两者的区别与联系了,否则会对之后的学习产生误导。

    区别

    我在网上看到很多讲并发计算与并行计算区别的文章,感觉很多讲得不是很抽象就是不全面,因此我决定自己好好总结一下。闲话少说,先看一张图。

    methods

    仔细看一下这张图,先有个大概印象再继续往下读。

    loading … …

    看完上面的图之后,这是我总结的几点:

    • 并发计算可以基于单处理器或者多处理器,基于单处理器时多个任务分时执行,轮流使用处理器;并行计算必须基于多处理器,多个任务同时使用多个处理器
    • 并发计算可以同时执行多个不同的任务;并行计算一般是同时执行多个相同的任务

    NOTE:为了更好地比较并行与并发计算,我加入了串行计算。

    • 从专注程度上来看,三者的排名如下:

    串行计算->并行计算->并发计算

    串行计算最老实也最死板,任何时候只做一件事,雷打不动,这件完成才能做下一件事;并行计算相比就没有那么专注了,它可以同时做多个相同的事情;并发计算就更没有那么专注了,它可以同时做多个不同的事情。

    联系

    并行计算与并发计算关系密切。我们在操作系统课程中所学到的并发大多是基于单处理器的,进程交替执行,表现出一种同时执行的外部特征。这种并发计算无法实现真正的加速效果。

    并行计算(纯粹的)通常是将一个较大的问题分为较小的多个子问题,然后同时处理这些子问题,类似于算法中的分治法。这种执行方式虽然可以获得较好的加速效果,但是还可以获得更好的加速效果。

    在基于多核的计算中,常常将并发计算与并行计算相结合,这样可以获得比并行计算更好的加速效果。在专栏的上一篇文章中,我们应用的就是这个技术。

    combine

    总结

    这篇文章主要介绍了并行计算与并发计算的区别与联系。如果要深入地学习并发计算,可以参考操作系统的相关书籍,比如比较经典的《操作系统精髓与设计原理》。在掌握了二者的区别与联系之后,我们会继续学习CUDA并行计算。

    参考资料

    1. 维基百科-Concurrent_computing
    2. 维基百科-Parallel_computing
    3. 操作系统精髓与设计原理 第六版, [美]William Stallings, 机械工业出版社
    展开全文
  • 假设有AB两个任务,则串行、并行并发区别如图1所示。 串行 AB两个任务运行在一个CPU线程上,在A任务执行完之前不可以执行B。即,在整个程序的运行过程中,仅存在一个运行上下文,即一个调用栈一个堆。程序会...

    原文转自:从串行到并行,从并行到分布式

    1. 概念

    假设有AB两个任务,则串行、并行、并发的区别如图1所示。

    串行

    A和B两个任务运行在一个CPU线程上,在A任务执行完之前不可以执行B。即,在整个程序的运行过程中,仅存在一个运行上下文,即一个调用栈一个堆。程序会按顺序执行每个指令。

    并行

    并行性指两个或两个以上事件或活动在同一时刻发生。在多道程序环境下,并行性使多个程序同一时刻可在不同CPU上同时执行。比如,A和B两个任务可以同时运行在不同的CPU线程上,效率较高,但受限于CPU线程数,如果任务数量超过了CPU线程数,那么每个线程上的任务仍然是顺序执行的。

    并发

    并发指多个线程在宏观(相对于较长的时间区间而言)上表现为同时执行,而实际上是轮流穿插着执行,并发的实质是一个物理CPU在若干道程序之间多路复用,其目的是提高有限物理资源的运行效率。 并发与并行串行并不是互斥的概念,如果是在一个CPU线程上启用并发,那么自然就还是串行的,而如果在多个线程上启用并发,那么程序的执行就可以是既并发又并行的。

    而分布式和并行的区别如下:

    分布式

    分布式在并行处理的基础上,强调任务正在执行的物理设备,如处理器、内存等等硬件,在物理上是分开的。而并行计算是指在一台计算机上的计算,在物理上不分开。

    2. 例子

    假设有A,B两个任务,任务A需要计算1-100000之间所有质数的和,任务B需要计算100001-200000之间所有质数的和

    则采用串行的方法设计的程序如下:

    public class Main {
        //判断是否为质数
        private static boolean isPrime(int n) {
            if(n < 2) return false;
            if(n == 2) return true;
            if(n%2==0) return false;
            for(int i = 3; i < n; i += 2)
                if(n%i == 0) return false;
            return true;
        }
        //串行计算
        private static void serial() {
            long time1 = System.currentTimeMillis(), time2,time3;
            long count = 0;
            for(int i=1;i<=100000;++i){
                if(isPrime(i)) count+=i;
            }
            time2=System.currentTimeMillis();
            System.out.println("1-100000之间质数和为"+count+" 耗时:"+(time2- time1) + "毫秒");
            count = 0;
            for(int i=100001;i<=200000;++i){
                if(isPrime(i))
                    count+=i;
            }
            time3 = System.currentTimeMillis();
            System.out.println("100001-200000之间质数和为"+count+" 耗时:"+(time3 - time2) + "毫秒");
            System.out.println("总耗时:"+ (time3 - time1) + "毫秒");
        }
        //主函数
        public static void main(String[] args) {
            serial();
        }
    }

    在串行计算的程序中,只有一个CPU线程,且该线程按顺序执行AB两个任务。程序运行结果如下:

    采用并发的方法设计的程序如下:

    public class Main{
        private static boolean isPrime(int n) {
            if(n < 2) return false;
            if(n == 2) return true;
            if(n%2==0) return false;
            for(int i = 3; i < n; i += 2)
                if(n%i == 0) return false;
            return true;
        }
        public static void main(String[] args) {
            serialConcurrency();
        }
        private static void serialConcurrency() {
            long time = System.currentTimeMillis();
            //任务切换标识,1代表A任务,2代表B任务
            int task = 1;
            //计数器
            long count1 = 0, count2 = 0;
            int i=1,j=100001;
            while (true)
            {
                if(task == 1 && i++<=100000) {
                    if(isPrime(i)) count1+=i;
                    task = 2;
                }
                else if(task == 2 && j++<=200000) {
                    if(isPrime(j)) count2+=j;
                    task = 1;
                }
                else{
                    break;
                }
            }
            System.out.println("1-100000之间质数和为"+count1);
            System.out.println("100001-200000之间质数和为"+count2);
            System.out.println("总耗时:"+(System.currentTimeMillis() - time) + "毫秒");
        }
    }

    在并发计算的程序中,同样只有一个CPU线程,但是该线程会在AB两个任务之间进行切换,可以发现,并发计算的总耗时反而大于串行计算,这是因为CPU在任务切换过程中需要消耗一定时间。程序运行结果如下:

    采用并行的方法设计的程序如下:

    public class Main {
        public static boolean isPrime(int n) {
            if(n < 2) return false;
            if(n == 2) return true;
            if(n%2==0) return false;
            for(int i = 3; i < n; i += 2)
                if(n%i == 0) return false;
            return true;
        }
        public static void main(String[] args) throws InterruptedException {
            long time1 = System.currentTimeMillis(),time2;
            Task task1 = new Task(1,100000);
            Task task2 = new Task(100001,200000);
            Thread thread1 = new Thread(task1);
            Thread thread2 = new Thread(task2);
            thread1.start();
            thread2.start();
            while (thread1.isAlive() || thread2.isAlive()){
                Thread.sleep(1);
            }
            time2 = System.currentTimeMillis();
            System.out.println("总耗时:"+(time2 - time1)+"毫秒");
        }
    }
    class Task implements Runnable{
        private int start;
        private int end;
        Task(int start, int end) {
            this.start = start;
            this.end = end;
        }
        public void run() {
            long time = System.currentTimeMillis();
            long count = 0;
            for(int i=start;i<=end;++i){
                if(Main.isPrime(i)) count+=i;
            }
            System.out.println(String.format("%d-%d之间质数和为%d,耗时:%d毫秒",start,end,count,(System.currentTimeMillis()- time)));
        }
    }

     

    在并行计算的程序中,AB任务各占用一个CPU线程,AB任务同时执行,总共耗费的时间约等于AB任务的最长耗时,程序运行结果如下:

    3.总结

    由上表可知并行的总耗时是最小的,效率最高(如果AB两个任务耗时更接近,则并行计算的效率将更高)。但由于并行计算受限于CPU线程数,当计算量超出单台计算机的计算能力时,人们就开始考虑使用多台计算机同时处理一个任务,分布式计算应用而生。分布式计算将任务分解成许多小的部分,分配给多台计算机进行处理,从而整体上节约了计算时间。Hadoop的MapReduce就是一种分布式计算框架,我们之后会对MapReduce进行详细的探讨。

    展开全文
  • 多线程并发和并行区别

    千次阅读 2020-09-13 14:35:34
     那么并行和并发又有什么区别?究竟改如何选择?滥用时又会有什么影响?   这些问题我分以下几篇文章进行详细说明:   1. 多线程并发和并行区别   2. parallelStream()并行滥用的后果   3

    背景

     对于java开发从业人员来说,并发编程是绕不开的话题,juc并发包下提供了一系列多线程场景解决方案。
     随着jdk1.8的普及,多线程处理问题,除了使用使用线程池(ExecutorService),很多人选择了parallelStream() 并行流,底层使用forkjoin实现并行处理。
     那么并行和并发又有什么区别?究竟改如何选择?滥用时又会有什么影响?
      这些问题我分以下几篇文章进行详细说明:
      1. 多线程并发和并行的区别 (本文)
      2. parallelStream()并行滥用的后果
      3. forkjoin和forkjoinpool讲解
      4. 线程池正确用法

    并发和并行共同点

    • 都利用多线程技术
    • 目的都是提高CPU的使用率

    并发和并行区别

    侧重点不同

    • 并发(concurrency):强调一个处理器同时处理多个任务,并不是正在同时运行。
    • 并行(parallelism):强调多个处理器或者是多核的处理器同时处理多个不同的任务,同时运行多段代码
      在这里插入图片描述

    使用场景不同

    • io密集场景
      场景应用程序开发,提供http接口、数据库查询、微服务调用都是io请求,io等等时几乎不消耗cpu,这是为了提供cup使用率,建议使用多线程并发,线程数可以远大于cpu核数。
    • cup密集场景
      对应大量的加减乘除运算、md5、hash等运算操作,需要持续使用cpu,需要让多核cpu并行运算,适合使用forkjoin并行计算。
      技术场景多线程不足,使用多线程技术,也能提高性能,但是线程设置过大会浪费cpu线程切换的时间,如果线程任务分配不均匀,会导致有的cpu忙碌有的cpu空闲

    技术栈不同

    • 并发编程
      jdk1就支持多线程Thread
      jdk5加入Thread pool和juc
      这些都是对多线程的支持,多线程代码可以单核cpu和多核cpu机器上,使用多线程可以在io并发高时,有效利用cpu资源。
    • 并行编程
      jdk7加入fork-join库
      jdk8加人parallelstream
      这些是对并行计算的支持,目的是同时使用多核cpu进行高效计算
    展开全文
  • 并发和并行区别

    2017-11-05 14:21:27
    并发和并行又有区别并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。  在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个...

     并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。

        在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

    ①程序与计算不再一一对应,一个程序副本可以有多个计算
    ②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。
    ③并发程序在执行中是走走停停,断续推进的。

        在网络服务器上,并发是指同一时刻能处理的连接数,比如,服务器能建立1000个TCP连接,即服务器同时维护了1000个socket,这个服务器的并发量就是1000,但是服务器可能只有单核或者8核,16核等,总之对这1000个socket连接的处理也是分时来做的。每个socket服务器处理的时间如果是1s,那么该服务器1s内可以处理完1000个请求,如果每个socket处理100ms的话,那么该服务器1s内可以处理10000个请求。


        在这里我们先抛出一些概念,如果这些概念都弄清楚了,并发和并行基本就清楚了。

        会话:在我们用电脑工作时,打开的一个窗口或一个Web页面,我们可以把它叫做一个“会话”,扩展到web服务器上,要维护很多个用户的web页面访问,我们可以认为服务器管理了多个“会话”。

        并发连接数:网站有时候报错:“HTTP Error 503. The service is unavailable”。但刷一两下又正常,估计很可能是超过网站的最大并发连接数了。并发连接指网络流量管理设备或代理服务器对其业务信息流的处理能力,是能够同时处理的点对点连接的最大数目,它反映出设备对多个连接的访问控制能力和连接状态跟踪能力,这个参数的大小直接影响到设备所能支持的最大信息点数。

        并发可以理解为服务器最多维护多少个会话数,并行则不一样,它关系的是有多少个会话是在同时进行,假如有两台服务器(进程),可能并行的数量是2,而并发的数量是1000。我们还可以对比下吞吐量和带宽的概念。

       吞吐量与带宽的区分:吞吐量和带宽是很容易搞混的一个词,两者的单位都是Mbps。先来看两者对应的英语,吞吐量:throughput;带宽:Max net bitrate。当讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码在计算机网络中又称为线速。可以说以太网的带宽是10Mbps。但是需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。通常更倾向于用“吞吐量”一词来表示一个系统的测试性能。这样,因为实现受各种低效率因素的影响,所以由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发送数据。

       带宽可以理解成是并行,即同时可以有10M 个bit(0,1)在线路中传输。而吞吐量类似并发,指主机每秒可以处理2M个bit。比喻有些不是很恰当,但仔细体会下,有些类似之处。

     并发和并行从宏观上来讲都是同时处理多路请求的概念。但并发和并行又有区别,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。

        在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序在处理机上运行。

    ①程序与计算不再一一对应,一个程序副本可以有多个计算
    ②并发程序之间有相互制约关系,直接制约体现为一个程序需要另一个程序的计算结果,间接制约体现为多个程序竞争某一资源,如处理机、缓冲区等。
    ③并发程序在执行中是走走停停,断续推进的。

        在网络服务器上,并发是指同一时刻能处理的连接数,比如,服务器能建立1000个TCP连接,即服务器同时维护了1000个socket,这个服务器的并发量就是1000,但是服务器可能只有单核或者8核,16核等,总之对这1000个socket连接的处理也是分时来做的。每个socket服务器处理的时间如果是1s,那么该服务器1s内可以处理完1000个请求,如果每个socket处理100ms的话,那么该服务器1s内可以处理10000个请求。


        在这里我们先抛出一些概念,如果这些概念都弄清楚了,并发和并行基本就清楚了。

        会话:在我们用电脑工作时,打开的一个窗口或一个Web页面,我们可以把它叫做一个“会话”,扩展到web服务器上,要维护很多个用户的web页面访问,我们可以认为服务器管理了多个“会话”。

        并发连接数:网站有时候报错:“HTTP Error 503. The service is unavailable”。但刷一两下又正常,估计很可能是超过网站的最大并发连接数了。并发连接指网络流量管理设备或代理服务器对其业务信息流的处理能力,是能够同时处理的点对点连接的最大数目,它反映出设备对多个连接的访问控制能力和连接状态跟踪能力,这个参数的大小直接影响到设备所能支持的最大信息点数。

        并发可以理解为服务器最多维护多少个会话数,并行则不一样,它关系的是有多少个会话是在同时进行,假如有两台服务器(进程),可能并行的数量是2,而并发的数量是1000。我们还可以对比下吞吐量和带宽的概念。

       吞吐量与带宽的区分:吞吐量和带宽是很容易搞混的一个词,两者的单位都是Mbps。先来看两者对应的英语,吞吐量:throughput;带宽:Max net bitrate。当讨论通信链路的带宽时,一般是指链路上每秒所能传送的比特数,它取决于链路时钟速率和信道编码在计算机网络中又称为线速。可以说以太网的带宽是10Mbps。但是需要区分链路上的可用带宽(带宽)与实际链路中每秒所能传送的比特数(吞吐量)。通常更倾向于用“吞吐量”一词来表示一个系统的测试性能。这样,因为实现受各种低效率因素的影响,所以由一段带宽为10Mbps的链路连接的一对节点可能只达到2Mbps的吞吐量。这样就意味着,一个主机上的应用能够以2Mbps的速度向另外的一个主机发送数据。

       带宽可以理解成是并行,即同时可以有10M 个bit(0,1)在线路中传输。而吞吐量类似并发,指主机每秒可以处理2M个bit。比喻有些不是很恰当,但仔细体会下,有些类似之处。



    并发当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。
    并行:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并行(Parallel)。
    区别:并发和并行是即相似又有区别的两个概念,并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在多道程序环境下,并发性是指在一段时间内宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。倘若在计算机系统中有多个处理机,则这些可以并发执行的程序便可被分配到多个处理机上,实现并行执行,即利用每个处理机来处理一个可并发执行的程序,这样,多个程序便可以同时执行。


    展开全文
  • 多进程 进程就是正在进行的一个程序或者任务,而负责执行任务的是CPU,执行任务的地方是内存。与程序相比,程序只是一堆代码而已,而程序运行时的过程才是进程;另外同一个程序执行两次就是两个...并行计算才是真...
  • 并行计算&并发计算

    千次阅读 2017-03-16 12:38:09
    1. 概念 ...Parallel computing(并行计算) is a type of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can of
  • 并发和并行

    千次阅读 2018-08-28 09:39:13
    是针对多处理器维度说的,每个处理器都有独自计算的能力,多个处理器同时计算就是并行 并发 是针对单处理器的维度说的,每个处理器在同时处理多个任务,其实准确的说,并不是同时执行,只是多个任务直接切换的特别快,快...
  • Java-并发和并行区别

    千次阅读 2016-07-22 11:28:37
    并发和并行又有区别并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔内发生。在操作系统中,并发是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是...
  • 并行计算和并行计算机体系结构

    千次阅读 2017-12-27 09:39:59
    什么是并行计算 为什么用并行计算 谁在用并行计算 硬件提供了哪些支持 软件提供了哪些支持 总结 参考资料关于并行,你知道多少?思考多少?听到“并行”这个词汇,我最先想到的是在多车道上飞驰的汽车,它们是并行...
  • 并发并行区别

    千次阅读 2014-03-18 19:12:07
    实验室一直在搞什么并发模型并行计算什么的!!!!  并发和并行的区别:一个处理器同时处理多个任务多个处理器或者是多核的处理器同时处理多个不同的任务。 并发和并行的区别就是一个处理器同时处理多个任务...
  • 摘要:并发并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行是指同时发生的两个并发事件,具有并发的含义,而并发则不一定并行,也亦是说并发事件之间不一定要同一...
  • 详解并发和并行意义

    万次阅读 多人点赞 2017-12-20 10:28:52
    很多人不是特别明白并发编程和并行编程的区别所在,有很多人很容易搞混淆,觉得二者近似相等,本文将用几个浅显易懂的例子,来说明一下什么是并发和并行。 1、任务与多任务  关于什么是进程,什么是线程,这里不...
  • 并行和并发,同步异步的区别

    千次阅读 2018-12-08 01:17:17
    老是忘记并发和并行,同步异步之间的区别,今天写篇博客,加深印象。 并发 &amp; 并行  并发:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间...
  • 面试必考的:并发和并行有什么区别

    千次阅读 多人点赞 2019-04-30 10:02:55
    本文公众号来源:漫话编程 作者:漫话编程并发和并行不知道你们在面试的时候有没有被问过,反正我之前是被问过的。在学习多线程的时候我也曾经解释过并行和并发区别:入门Java...
  • 并发 concurrent 与并行 parallel 的区别

    千次阅读 2017-06-02 10:19:07
    并行并行处理(Parallel Processing)是计算机系统中能同时执行两个或更多个处理的一种计算方法。并行处理可同时工作于同一程序的不同方面。并行处理的主要目的是节省大型复杂问题的解决时间。为使用并行处理,...
  • 并发和并行,异步与多线程区别

    万次阅读 多人点赞 2018-05-12 08:48:03
    1、并发和并行区别可由上图形象指出两者的区别:1)定义:并发:在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行,但任一个时刻点上只有一个程序...
  • 并行计算并行计算是相对于串行计算来说的。可分为时间上的并行空间上的并行。 时间上的并行就是指流水线技术,而空间上的并行则是指用多个处理器并发的执行计算。并行计算的目的就是提供单处理器无法提供的性能...
  • 并行计算(Parallel Computing)    并行计算或称平行计算是相对于串行计算来说的。并行计算(Parallel Computing)是指同时使用多种计算资源解决计算问题的过程。为执行并行计算,计算资源应包括一台配有多处理...
  • Java多线程--并发和并行区别

    万次阅读 2016-04-10 22:45:56
    所有的并发处理都有排队等候,唤醒,执行至少三个这样的步骤.所以并发肯定是宏观概念,在微观上他们都是序列... 并发并行是两个既相似而又不相同的概念:并发性,又称共行性,是指能处理多个同时性活动的能力;并行
  • 并行计算、分布式计算、网格计算与云计算都属于高性能计算(High Performance Computing,HPC)的范畴,主要目的在于对大数据的分析与处理,但它们却存在很多差异。电子海图云服务是基于高性能计算的理论技术、通过...
  • 并行并发区别

    2016-11-14 14:36:45
    并行并发区别 并发(concurrent)和并行(parallel)是两个相似但又有区别的概念。并行是指多个事件在同一时刻发生,而并发是指多个事件在同一时间段发生。在多道程序环境下,并
  • 并行程序设计 目前并行程序设计的状况是:①并行软件的发展落后于并行硬件;②串行系统的应用软件相比,现今...②串行程序设计仅有一个普遍被接受的冯*诺依曼模型,而并行计算模型虽有好多,但没有一个被共同认可;

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 134,393
精华内容 53,757
关键字:

并发计算和并行计算区别