精华内容
参与话题
问答
  • 简单搭建分布式计算

    万次阅读 2018-12-11 11:50:02
    #主机控制代码 import multiprocessing import multiprocessing.managers import random,time from multiprocessing import Queue 任务队列 task_queue=Queue() 结果队列 ...def return_t...

    #主机控制代码

    import multiprocessing
    import multiprocessing.managers
    import random,time
    from multiprocessing import Queue
    # 任务队列
    task_queue=Queue()
    # 结果队列
    result_queue=Queue()
    
    # 提供给从机调用后得到队列中的数据
    # 就是接口
    def return_task():
    	return task_queue
    def return_result():
    	return result_queue
    class QueueManager(multiprocessing.managers.BaseManager):
    	pass
    if __name__=="__main__":
    	# 开启分布式支持
    	multiprocessing.freeze_support()
    	# 注册可以访问队列并得到结果的函数
    	QueueManager.register('get_task',callable=return_task)
    	QueueManager.register('get_result',callable=return_result)
    	manager=QueueManager(address=('192.168.72.135',8888),authkey='password'.encode('utf-8'))
    	manager.start()
    	task=manager.get_task()
    	result=manager.get_result()
    	for i in range(1000):
    		print('task add data')
    		#将任务放入队列
    		task.put(i)
    		print('watting for ____')
    	for i in range(1000):
    	       #将结果从队列中取出
    		res=result.get()
    		print('get_data',res)
    	manager.shutdown()
    
    ×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××
    ×××××××××××××××××××××
    
    import multiprocessing
    import multiprocessing.managers
    import random,time
    from multiprocessing import Queue
    
    class QueueManager(multiprocessing.managers.BaseManager):
    	pass
    if __name__=="__main__":
    	# 开启分布式支持
    	multiprocessing.freeze_support()
    	# 注册可以访问队列并得到结果的函数
    	QueueManager.register('get_task')
    	QueueManager.register('get_result')
    	manager=QueueManager(address=('192.168.72.135',8888),authkey='password'.encode('utf-8'))
    	manager.connect()
    	task=manager.get_task()
    	result=manager.get_result()
    	for i in range(1000):
    		try:
    		#从队列中取出任务
    			data=task.get()
    			print('client_get',data)
    #处理计算任务将结果放入队列中			result.put('client'+str((data+10)))
    		except:
    			pass
    

    上面是单一任务可开启多个从机来处理数据由于每个从机取出任务后该任务就会在队列中消失
    所以每个任务只能给一个从机处理所以不会造成任务重复

    另外还可以定义不同算法的从机,但在此时也因该定义不同算法的主机来控制接受数据
    所以有一个命令主机程序负责控制不同算法队列 该任务队列是将控制不同算法的输入队列的开启和控制每个从机的不同算法的开启 在自己本地执行接到的某一算法处理程序

    在这里插入图

    控制程序和算法程序除了端口和加入队列的数据不同都是一样的
    算法程序被控制程序启动 无论是主机上还是从机上
    只不过是主机上是当控制程序的命令加入队列后就立即启动了所有加入队列被控制的算法程序
    待每个从机从控制队列中拿到命令那个算法由自己执行后便开启了响应的算法
    每个从机都有所有的算法处理程序无论是接到处理什么的任务都可以处理
    且每个从机都拥有控制从机程序从控制队列中获取任务
    每个算法程序独立一个端口独立一个队列对应一个独立的从机程序
    

    队列的多样性使得 此方法 更加强大 能将多任务多机合作进行白百分百的发挥
    效率一般高效

    展开全文
  • 分布式计算

    2019-12-02 14:06:03
    一、什么是分布式计算?   分布式计算是一门计算机科学,主要研究对象是分布式系统。在介绍分布式计算概念前,首先简单了解一下什么是分布式系统。简单地说,一个分布式系统是由若干通过网络互联的计算机组成的软...

    一、什么是分布式计算?

      分布式计算是一门计算机科学,主要研究对象是分布式系统。在介绍分布式计算概念前,首先简单了解一下什么是分布式系统。简单地说,一个分布式系统是由若干通过网络互联的计算机组成的软硬件系统,且这些计算机互相配合以完成一个共同的目标(往往这个共同的目标称为“项目”)。
       分布式计算指在分布式系统上执行的计算。分布式计算是将一个大型计算任务分成很多部分分别交给其他的计算机处理,并将所有的计算结果合并为原问题的解决方案。这里与并行计算不同的是,并行计算是使用多个处理器并行执行单个计算。

    二、分布式计算的优缺点

    1.优点:
    超大规模
    虚拟化
    高可靠性
    通用性
    高可伸缩性
    按需服务
    极其廉价
    容错性
    2.缺点·:
    多点故障(一台或多台计算机的故障,或一条或多条网络链路的故障,都会导致分布式系统出现问题)
    安全性(分布式系统为非授权用户的攻击提供了更多机会)

    三、分布式计算的相关计算形式

      与分布式计算类似的计算形式有很多,例如单机计算、并行计算、网络计算、网格计算和云计算等。

    单机计算:是最简单的计算形式,即利用澹台计算机不与任何网络互连,只能使用本计算机系统内的的所有资源。一台计算机在任何时刻只能被一个用户使用。用户在该系统上执行应用程序,不能访问其他计算机上的任何资源。
    并行计算:是指在并行计算机上所做的计算,即采用多个处理器来执行单个指令。
    网络计算:是把网络连接起来的个各种自治资源和系统组合起来,以实现资源共享、协同工作和联合计算。
    网格计算:是指利用互联网把地理上广泛分布的各种资源(计算、存储、带宽、软件、数据、信息、知识等)连成一个逻辑整体,就像一台超级计算机一样,为用户提供一体化信息和应用服务(计算、存储、访问等)。
    云计算:是分布式计算、并行计算、效用计算、 网络存储、虚拟化、负载均衡、热备冗余等传统计算机和网络技术发展融合的产物。
    云计算的提出
    提出者:Google工程师,比希利亚,27岁。
    出发点:推广Google超级强大的计算资源,招贤纳士 。
    结果:蜂拥而至,名噪一时,被视为“云”的起源。

    四、分布式系统的特征

    可靠性:指一个分布式系统在它的某一个或多个硬件的软件组件造成故障时,仍能提供服务的能力。
    可扩展性:指一个系统为了支持持续增长的任务数量可以不断扩展的能力。
    可用性:指一个系统尽可能地限制系统因故障而暂停的能力。
    高效性:指一个分布式系统通过分散的计算资源来实现任务执行的高效率。

    展开全文
  • Fourinone分布式计算框架

    热门讨论 2011-08-29 15:21:33
    FourInOne(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我也看了老外写的其他开源框架,也对分布式计算进行了长时间的思考,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
  • 淘宝Fourinone(中文名字“四不像”)是一个四合一分布式计算框架,在写这个框架之前,我对分布式计算进行了长时间的思考,也看了老外写的其他开源框架,当我们把复杂的hadoop当作一门学科学习时,似乎忘记了我们想...
  • 分布式计算研究的集中主要技术探讨,如网格计算、移动Agent,Veb service

空空如也

1 2 3 4 5 ... 20
收藏数 37,734
精华内容 15,093
关键字:

分布式计算