计算机机群系统并行任务i0处理的连接均衡方法

文档序号:6420490阅读:195来源:国知局
专利名称:计算机机群系统并行任务i0处理的连接均衡方法
技术领域
本发明涉及一种计算机机群的负载均衡方法,尤其是一种应用于计算机机群并行任务IO处理的登录结点的连接均衡方法,属于计算机机群技术领域。
背景技术
机群系统是一组相互独立的、通过高速网络互联的计算机,并以单一系统的模式加以管理,即充分利用机群中的每一台计算机的资源,实现复杂运算的并行处理。随着科学和网络的发展,人们对计算机运算速度和处理能力的要求的提高,机群中的节点规模越来越大,机群中运行的并行任务的规模也越来越大,机群中并行任务的IO处理性能和扩展性也变得尤为重要。
机群系统除了能够提供强大的处理能力之外,它的另外一个重要的好处就是单一系统映像。也就是说,用户可以通过登录到机群中的登录结点,通过使用机群系统软件,如同使用一台机器那样方便。当用户需要运行一个并行任务时,只需要指明任务需要的进程数目或者结点列表,其他的就好像在本地运行一个串行任务一样方便,任务的输入和输出都将通过登录结点的终端来进行。这样极大地方便了用户的使用,提高了用户的工作效率。
随着机群技术的发展,已经有多种并行任务开发语言,例如MPI、PVM等消息传递语言,供用户使用。用户可以利用他们提供的通讯机制和接口,方便地编写并行程序。由于系统的单一系统映像的需要,加载这些并行程序时必须要处理好并行进程的输入和输出,将各个并行进程的输入输出重新定向到用户终端。
目前的机群系统都是由几个登录结点和多个计算结点组成,用户在登录结点上提交并行任务后,机群系统软件会在本地启动三个IO处理进程,称之为进程0、进程1、进程2,进程0负责通过socket连接接收用户终端的输入,传给各个计算结点上的并行进程的标准输入,进程1和进程2通过socket连接接收各个并行进程的标准输出和标准错误输出,传给用户终端的标准输出和标准错误输出。
socket通信机制如下每一台通讯的主机都有一个本网络环境中唯一的IP地址,一台主机上往往有多个通讯程序存在,每个这样的程序都要占用一个通讯端口。因此,一个I P地址,一个通讯端口,就能确定一个通讯程序的位置(某个IP上占用某个端口的程序)。在现有的模式下,相互通信的socket网络程序中,一方称为客户程序(client),另一方称为服务程序(server),服务程序总是被动地等待连接,服务程序一启动,初始化完毕就进入等待连接状态;而客户程序启动后,向远程服务程序发出连接请求,服务程序收到请求后,按照一定的规则建立连接,连接完成后,两个程序之间就建立了一个虚拟的数据通讯链路,这些程序可以直接从自己打开的套接口读入和写出数据,而不用关心实际的数据链路。
机群系统使用IO重定向机制解决各个并行进程和用户终端的输入输出处理问题。IO重定向机制可以使用已经建立的socket网络连接,将应用程序的标准输入输出重定向到网络连接,这样,用户进程的标准输入实际上是重定向的socket连接中读取,而用户进程的标准输出和标准错误输出写入重定向的socket连接。
在并行任务的IO处理机制中,利用socket通信机制和IO重定向机制,系统通常为一个并行作业生成三个IO处理进程,分别建立一个网络通信服务程序,等待各个并行进程的连接,处理用户终端的标准输入和各个并行进程的标准输出和标准错误输出。这种IO处理机制的结构如图1所示。
当一个并行任务在各个结点上加载并行进程前,首先启动三个IO处理进程,标准输入、标准输出和标准错误输出处理进程。这三个分别绑定并侦听三个未用的socket端口,等待用户进程的连接。然后,加载用户的并行进程时,通过一定方法得到用户任务的IO处理进程的地址、端口信息,建立到三个IO处理进程的连接,并将标准输入、标准输出和标准错误输出重定向到建立的三个连接。
当用户终端有输入时,标准输入处理进程读取输入信息,将输入信息通过用户并行进程先前建立的连接,送给各个并行进程。反之,当各个用户进程有输出时,标准输出和标准错误输出处理进程从各个并行进程先前建立的连接中读取输出信息,将这些信息输出到用户终端。
从以上可以看出,对于每一个并行进程,为了处理IO,需要建立3个与IO处理进程的socket连接。如果机群有n个计算结点,则一共需要占用3n+3个文件描述符。对于一个机群来说,机群中各个并行任务的进程数总和与机群的规模有关,一般情况下,为机群的结点数与每个结点上允许运行的进程个数之积。假设每个结点上允许运行的进程个数为p,机群中结点数为n,则机群中所有并行任务进程数总和为n*p。当机群满负荷运转时,登录结点上需要建立3*n*p个连接处理IO。
这样的IO处理机制对于结点数规模较少的机群来说不会有什么问题。当随着机群结点数的增多,机群的结点规模扩大时,机群中结点数和任务数的增多,导致登录结点上的IO处理进程增多,以及系统中的socket连接的增多。由于对于每个登录结点的操作系统而言,允许同时打开的文件个数和socket通信机制对线程个数都有限制,因此,现有的机制会产生登录结点上的进程资源和文件描述符资源紧张问题,严重影响系统的稳定性和可扩展性。

发明内容
本发明所要解决的技术问题在于提出一种计算机机群系统并行任务IO处理的连接均衡方法能够解决机群规模扩大出现的登录结点进程资源和文件描述符资源紧张问题引起的扩展性问题,支持机群规模的任意扩展,结点的操作系统可以是任意操作系统。
一种计算机机群系统并行任务IO处理的连接均衡方法,当用户发出并行任务请求时,对并行任务的处理,包括如下步骤步骤一、登录结点向并行任务加载到的计算结点发出请求,并将并行任务信息放入到IO处理表;步骤二、计算结点收到加载并行任务的请求后,建立与登录结点的暂态连接,并将连接信息写入IO处理表,取代与该任务的直接连接;步骤三、当用户有标准输入需要发送到计算结点的并行进程时,则登录结点查询IO处理表,获取登录结点到计算结点的连接信息,将标准输入信息发送到计算结点,由计算结点输入并行进程;步骤四、当并行进程有输出需要发送给登录结点的用户,则计算结点查询IO处理表,获取计算结点到登录结点的连接信息,将输出信息发送到登录结点,由登录结点输出给用户;步骤五、并行进程结束,删除IO处理表中与本次任务有关的一切连接信息。
本发明通过socket连接的均衡方法,使得处理并行任务的IO时在机群登录结点上占用较少的系统资源,极大提高大规模机群系统的可扩展性;解决了随着机群结点规模的扩大,传统的并行任务IO处理机制由于在登录结点上占用了较多的系统资源,影响了整个机群系统的可扩展性的问题。


图1是现有机群中并行任务IO处理的socket连接处理机制结构示意图;图2是本发明机群中并行任务IO处理的socket连接处理机制结构示意图;
图3是本发明并行作业加载时的IO处理通道建立的流程图;图4是本发明并行作业运行期间的标准输入处理的流程图;图5是本发明并行作业运行期间的标准输出处理的流程图。
具体实施例方式
本发明提供了一种可扩展的、可用于大规模机群的并行任务IO处理的连接均衡方法,解决机群规模扩大出现的登录结点进程资源和文件描述符资源紧张问题引起的扩展性问题,支持机群规模的任意扩展和支持任意操作系统。
本发明的设计思想是在现有的socket连接和IO重定向机制下,通过较少的占用登录结点的系统资源,尽可能地减少登录结点与各个计算结点之间的socket连接,同时又能有效地处理并行任务的IO请求,满足用户运行大规模并行任务的需要。
本发明所述的机群socket连接均衡方法,当用户发出并行任务请求时,对并行任务标准输入输出的的处理,包括如下步骤步骤一、登录结点向并行任务加载到的计算结点发出请求,并将并行任务信息放入到IO处理表;步骤二、计算结点收到加载并行任务的请求后,建立与登录结点的暂态连接,并将连接信息写入IO处理表,取代与该任务的直接连接;步骤三、当用户有标准输入需要发送到计算结点的并行进程时,则登录结点查询IO处理表,获取登录结点到计算结点的连接信息,将标准输入信息发送到计算结点,由计算结点输入并行进程;步骤四、当并行进程有输出需要发送给登录结点的用户,则计算结点查询IO处理表,获取计算结点到登录结点的连接信息,将输出信息发送到登录结点,由登录结点输出给用户;步骤五、并行进程结束,删除IO处理表中与本次任务有关的一切连接信息。
所述的并行进程的输出,包括并行进程的标准输出和并行进程的标准错误输出。
在步骤一和步骤二中,登录结点与用户之间和计算结点和并行进程之间仍需要采用普通的socket通信机制或者管道等其他通信机制,但是这种通信是结点内部的通信,并不是结点间的通信;本发明通过在登录结点和计算结点之间建立暂态性的socket连接,使得对于登录结点而言,进程资源和文件描述符动态可用,改变了以往一个进程自始至终占据资源的状态,极大的提高了机群的可扩展性。
登录结点针对每一个并行任务建立一个用户IO处理进程io_agent,与用户进行交互。计算结点针对每一个并行进程建立一个计算结点IO处理进程io_comp,与并行进程进行交互。
由于在登录结点需要支持多个用户同时进行不同的并行任务,为了减少连接数,本发明可以在登录结点上运行一个IO处理服务进程,称为io_server;io_server与该结点所有的用户IO处理进程io_agent和所有运行该结点的并行任务的计算结点IO处理进程io_comp通信;获得用户的标准输入,通过查找IO处理表,将标准输入发送到相应的计算结点IO处理进程io_comp;获得并行进程的输出,通过查找IO处理表,将输出发送到相应的用户IO处理进程io_agent。
io_serve r和io_agent之间可以通过管道、TCP/UDP的socket等进程间通信方式通信,也可通过本地UNIX域的socket通信,根据所采用的系统的不同来设置。
io_server和io_comp可以通过暂时性的tcp类型的socket连接;也可以采用其他的暂时性连接,如基于udp的socket连接。由于基于udp的socket连接本身就是一种暂态连接,这里不再说明。对于tcp类型的socket连接,可以通过定期查看每个连接的最后通信时间,将超过一定时间为进行通信的连接关闭。而在进行通信之前,即有数据要发送时,io_server或io_comp通过检查IO处理表,得到数据发送的目的地(io_comp或io_server地址),检查连接状态,如果连接关闭,则重新建立连接;如果连接可用,则直接进行通信。通过这种暂态连接,达到在每一时刻内减少连接的目的。
本发明的计算机机群系统并行任务IO处理的连接均衡方法,所述的步骤一,如图3所示,包括步骤10、用户提出并行任务处理请求,作业启动;步骤11、作业启动io_agent,进行IO重定向到io_agent;步骤12、io_agent建立与io_server的连接,并提供作业相关信息;步骤13、io_server记录作业相关信息到IO处理表。
所述的步骤12中的io_server记录的作业相关信息至少包括任务号、io_agent端口号或UNIX域SOCKET路径和任务运行的结点集,根据通信方式的不同,来记录相关的信息,使通过IO处理表查询到该信息后,该信息所给出的连接可用。
本发明的计算机机群系统并行任务IO处理的连接均衡方法,所述的步骤二,如图3所示,包括步骤20、登录接点通知各个计算结点加载并行进程;步骤21、用户并行进程连接本地io_comp,提供作业信息和io_server信息,并进行IO重定向到与io_comp的连接;步骤22、计算结点io_comp记录作业相关信息到IO处理表;步骤2 3、作业加载的IO处理通道建立完成。
所述的步骤21中的io_comp记录的作业相关信息至少包括任务号、并行进程号、并行进程与io_comp的连接信息和io_server的地址信息,根据选择的暂态连接的不同,记录相关信息,使通过IO处理表查询到该信息后,该信息所给出的连接可用。
当一个并行任务开始加载时,首先在登录结点上启动一个用户的IO处理进程,称为io_agent,建立与该登录结点上的io_server的socket连接,将用户终端的标准输入发给io_server,将io_server来的标准输出和标准错误输出写到用户终端。io_server接收到io_agent的连接请求,建立连接后,将接收的任务号的信息和连接的信息以及任务的计算结点集信息记录到IO处理表中。
同时,当并行任务在各个计算结点上的并行进程开始加载时,首先并行进程建立到本地io_comp的三个socket连接,并进行IO重定向。io_comp接收到用户并行进程的连接请求,建立连接后,将接收的任务号及进程的信息、连接的信息和io_server的地址信息记录到IO处理表中。
用户的标准输入输入到并行进程的流程图如图4所示,包括步骤30、用户终端有标准输入,io_agent发送给io_server;步骤31、io_server接收到io_agent的输入,根据IO处理表记录的信息,发送到相应的计算结点的io_cmp;步骤32、io_comp接收到io_server的输入,根据IO处理表记录的作业相关信息写入相关socket连接;步骤33、作业进程读取输入信息。
并行进程的输出输出到用户终端的流程图,如图5所示,包括步骤40、用户作业进程有输出,io_comp根据IO处理表记录的作业相关信息发送给io_server;步骤41、io_server接收到io_comp的输入,根据IO处理表记录的信息,发送到相应的io_agent;步骤42、io_agent接收到io_server的输入,输出到用户终端。
当io_server接收到并行任务的标准输入时,根据任务号查找IO处理表,将输入信息发给相关的计算结点上的io_comp。当io_server接收到计算结点上的io_comp发送的输出信息时,根据其中的任务号查找IO处理表,将输出信息发送到用户IO处理进程io_agent。
当计算结点上的io_comp接收到io_server的标准输入信息时,根据任务号查找IO处理表,将输入信息发给相关的并行进程与io_comp的输入连接。当从并行进程接收到输出信息时,根据进程信息查找到任务号、io_server信息,将输出信息发给io_server。
只有计算结点上运行了一个或多个登录结点上发起的并行任务的某个进程时,io_comp才主动建立与io_server的连接;一旦该结点上没有登录结点上发起的并行任务的进程,即并行任务结束,则io_comp主动关闭与io_server的连接。
本发明所属并行任务IO处理的连接均衡方法,从整个机群的角度来说,建立的socket连接不比传统的IO处理机制少,但是,这种机制分散了socket连接,将许多socket连接分布到计算结点上完成,真正在登录结点上建立的socket连接大大地减少了,为任务数和计算结点数之和。由于增加的socket数据通道都是本地连接,远程的连接数比原机制减少了许多,这样可以极大提高系统的可扩展性。
最后所应说明的是以上实施例仅用以说明而非限制本发明的技术方案,尽管参照上述实施例对本发明进行了详细说明,本领域的普通技术人员应当理解依然可以对本发明进行修改或者等同替换,而不脱离本发明的精神和范围的任何修改或局部替换,其均应涵盖在本发明的权利要求范围当中。
权利要求
1.一种计算机机群系统并行任务输入输出处理的连接均衡方法,其特征在于当用户发出并行任务请求时,对并行任务的输入输出处理,包括如下步骤步骤一、登录结点向并行任务加载到的计算结点发出请求,并将并行任务信息放入到IO处理表;步骤二、计算结点收到加载并行任务的请求后,建立与登录结点的暂态连接,并将连接信息写入IO处理表,取代与该任务的直接连接;步骤三、当用户有标准输入需要发送到计算结点的并行进程时,则登录结点查询IO处理表,获取登录结点到计算结点的连接信息,将标准输入信息发送到计算结点,由计算结点输入并行进程;步骤四、当并行进程有输出需要发送给登录结点的用户,则计算结点查询IO处理表,获取计算结点到登录结点的连接信息,将输出信息发送到登录结点,由登录结点输出给用户;步骤五、并行进程结束,删除IO处理表中与本次任务有关的一切连接信息。
2.根据权利要求1所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的步骤一中,登录结点针对每一个并行任务建立一个用户IO处理进程io_agent,与用户进行交互。
3.根据权利要求1或2所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的步骤二中,每个计算结点有一个计算结点IO处理进程io_comp,进行并行进程IO处理。每一个并行进程建立与它的三个本地连接,并将IO重定向到这三个连接。
4.根据权利要求3所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的登录结点运行一个IO服务进程io_server,io_server与该结点所有的用户IO处理进程io_agent和所有运行该结点的并行任务的计算结点IO处理进程io_comp通信;获得用户的标准输入,通过查找IO处理表,将标准输入发送到相应的计算结点IO处理进程io_comp;获得并行进程的输出,通过查找IO处理表,将输出发送到相应的用户IO处理进程io_agent。
5.根据权利要求1或4所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的并行进程的输出,包括并行进程的标准输出和并行进程的标准错误输出。
6.根据权利要求4所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的步骤一,包括步骤10、用户提出并行任务处理请求,作业启动;步骤11、作业启动io_agent,进行IO重定向到io_agent;步骤12、io_agent建立与io_server的连接,并提供作业相关信息;步骤13、io_server记录作业相关信息到IO处理表。
7.根据权利要求6所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于步骤12中的所述的作业相关信息至少包括任务号、io_agent端口号或UNIX域路径和任务运行的结点集。
8.根据权利要求4、6或7所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的步骤二,包括步骤20、登录接点通知各个计算结点加载并行进程;步骤21、用户并行进程连接本地io_comp,提供作业信息和io_server信息,并进行IO重定向到与io_comp的连接;步骤22、计算结点io_comp记录作业相关信息到IO处理表;步骤23、作业加载的IO处理通道建立完成。
9.根据权利要求8所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于步骤21中所述的作业相关信息至少包括任务号、并行进程号、并行进程与io_comp的连接信息和io_server的地址信息。
10.根据权利要求4或6-9任一所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的步骤三,包括步骤30、用户终端有标准输入,io_agent发送给io_server;步骤31、io_server接收到io_agent的输入,根据IO处理表记录的信息,发送到相应的计算结点的io_cmp;步骤32、io_comp接收到io_server的输入,根据IO处理表记录的作业相关信息写入相关socket连接;步骤33、作业进程读取输入信息。
11.根据权利要求4或6-9任一所述的计算机机群系统并行任务IO处理的连接均衡方法,其特征在于所述的步骤三,包括步骤40、用户作业进程有输出,io_comp根据IO处理表记录的作业相关信息发送给io_server;步骤41、io_server接收到io_comp的输入,根据IO处理表记录的信息,发送到相应的io_agent;步骤42、io_agent接收到io_server的输入,输出到用户终端。
全文摘要
本发明公开了一种计算机机群系统并行任务IO处理的连接均衡方法,包括登录结点向并行任务加载到的计算结点发出请求,将并行任务信息放入到IO处理表;计算结点建立与登录结点的暂态连接,并将连接信息写入IO处理表,取代与该任务的直接连接;并行进程结束,删除IO处理表中与本次任务有关的一切连接信息。本发明通过socket连接的均衡方法,使得处理并行任务的IO时在机群登录结点上占用较少的系统资源,极大提高大规模机群系统的可扩展性;解决了随着机群结点规模的扩大,传统的并行任务IO处理机制由于在登录结点上占用了较多的系统资源,影响了整个机群系统的可扩展性的问题。
文档编号G06F15/163GK1617127SQ20031011360
公开日2005年5月18日 申请日期2003年11月13日 优先权日2003年11月13日
发明者叶庆华, 张喜青, 赵玉萍, 柳书广, 肖利民 申请人:联想(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1