区别是:1、共享存储与分布式存储的区别;2、分布式计算的区别;3、编程环境的区别。在多机分布式环境中,每台计算机都有自己独立的存储器,它的内存不共享;在多核环境中,内存是共享的,对全局数据的共享不存在数据搬迁的问题,但是存在锁保护的问题。
1、共享存储与分布式存储的区别
在多机分布式环境中,每台计算机都有自己独立的存储器,它的内存不共享,如果要进行全局的共享数据,必须依赖于计算机间的通信来完成。在多核环境中,内存是共享的,对全局数据的共享不存在数据搬迁的问题,但是存在锁保护的问题。
因此多核环境在存储方面主要是锁竞争,分布式系统主要的问题是在通信开销方面。
2、分布式计算的区别
分布式计算中多机分布环境和多核环境面临同样的问题:负载均衡。
多机分布环境的负载均衡包括计算负载均衡和存储负载均衡,通常会涉及到负载搬迁的问题,通信开销较大。
多核环境中因为负载搬迁只是相当于指针的移动代价较小,可以忽略。
3、编程环境的区别
多机分布环境中一般使用消息传递编程模型,使用消息传递数据,入MPI;
多核环境中使用共享存储编程环境,入OpenMP等,当然也可以使用消息传递数据。
延伸阅读:
什么是分布式编程?
分布式应用程序由三个主要逻辑部分构成:表示逻辑、业务逻辑和数据源逻辑。
表示逻辑:终端用户可以通过它操作权限内的可操作数据,对于用户来说这部分就是应用程序;
业务逻辑:是应用程序的中心,包括定义业务运行方式的业务规则;
数据源逻辑:用于保存将来可能用到的数据,这部分逻辑的功能绝大部分是由数据库实现的,但是我们仍然需要设计数据层以及操作数据所需要的语句。
设计任何应用程序的首要之处是将应用程序的各个部分逻辑划分为不同的层次,不能将不同部分的逻辑混在一起,层与层之间只能通过良好定义的接口与另一层交互。分布式设计要遵顼五个原则:保守分布;本地化相关内容;使用 Chunky 接口,而不是 Chatty 接口;优先选用无状态对象,而不是有状态对象;接口编程,而不是具体实现的编程。
文章标题:多核和分布式的编程和传统的编程语言有什么本质的不同,发布者:小编,转载请注明出处:https://worktile.com/kb/p/40718