关于异构并行分布式处理系统的构想

1、并行

    因为最近在上并行程序设计课的时候,老师谈到Unix可以进行多线程编程,具体还没来得及探究到底怎样的多线程,不过我想应该可以做到“指哪打哪”,也就是可以在多核处理器上,人工控制某个线程到某个内核中进行运算。当然,我觉得这个需要程序员需要有比较深厚的功底,最基本的是系统可以利用多核来为多个线程进行部署。

    以上说的是“单机”的并行,或者可以说是并发。那么扩展到集群,我想大家都了解Hadoop,本科毕业那会的论文也是搭建一个Hadoop平台,然后写个程序跑一下,具体也没太深入细究。当然,也有人提出(那本书好像是叫《分布式存储。。。》)hadoop主要是为大公司服务的,对于小规模集群可能并不适用,况且Hadoop只能运行在Linux机上,Windows机就不行了

    综上两个观点,一个是并行观点,另一个是异构的观点,先提出下面的多机多级并行框架:并行异构运算框架。

2、框架描述

    1、该框架肯定不能凌驾于操作系统之上,因为这个框架就是为了适应不同操作系统而产生的。我记得曾经有一位淘宝做数据挖掘的工程师给我们来讲座说过,我们PC机的计算资源利用率比较低,而很多企业可能利用其安装的软件来利用我们的计算资源。其实这个就是我要描述的框架的原型。通过软件客户端,部署额外的线程,与远端的主线程进行交互,实现多线程的并发并行,从而实现分布式计算。

    2、然后再来说说应该用什么语言,因为自己水平比较烂,所以其实更关心的是用什么语言。当然像Java这样的语言是最好,跨平台,运行效率又高,也不用太操心硬件层的调用,所有的机器都是一个妈产出,都不用针对不同机器再编译。

    但是我觉得C++或者C可能更合适。首先,本身这个框架是一个辅助工具,他不干实际的工作,只是一个协调调度,就好像企业,管理层不可能养太多人,而是几个人,甚至一个人,看似拿着很高的工资,但是一个人月薪2万和四个人月薪5钱,绝对不是等同的。量越大,消耗的资源就越多,所以作为一个辅助框架,应该需要更高的性能作为支撑。

    其次就是异构这个点,C++和C都有现行标准支持,虽然各个厂家在具体实现细节上有差异,但是目前我能想到这个框架应该就两个点:计算+通信。计算用C或C++,没问题,如果实在不行,用一个翻译层,将主线程、主进程的指令翻译成Slave机的指令。通信,我想就很好说了,不然我的Windows机和Linux机怎么能互相远程。

    经过上面的描述,大概框架就稍微有点轮廓了。

3、功能描述

    限于自己知识比较有限,所以能想到的功能确实不是很多。为了适应“通用”这个想法,我觉得给出的接口最好是越简单越好。既然是“计算+通信”,那么就不妨直接就把接口拆成两部分——计算部分和通信部分。

    计算部分当然是给出函数、参数、数据,通信部分就是给出Slave的位置。这里假设计算消耗 的时间要比通信的时间长,那么下一步就可以设计出下面这样一个流程:

  state  masterSendSlave(function pointer, argument, attribute, source,   address)

主线程首先执行上面的函数,其中attribute指出是是否将运行的程序、程序所需的数据发送给slave。function和argument为需要执行的程序。source为所需的数据资源。address为表示目标slave。如果slave接收到master的请求,将返回状态信息,即state。master通过state了解到谁可以干活,谁不可以干活,然后对slave进行管理。

    slave接收的信息中,包括一个虚拟线程号,用于唯一标识自己。slave检测自身条件是否符合运行,如果符合,则向master发送信息,告诉master我正在执行你的请求。    

    当slave执行请求结束后,向master发送完成信息。master将该线程注销,并作后期处理。

4、续

    目前这个框架只是初步想下,我觉得应该会有很牛的人早就想到这种方法了,毕竟过去计算机单核处理能力比较弱,对于大型计算,还是需要多核来做事。

    以上仅记录下思想,欢迎拍砖。

    

转载于:https://my.oschina.net/u/438386/blog/643477

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值