文献笔记(十五)
一、基本信息
标题:基于负载平衡的并行C语言的设计与实现
时间:2007年4月
出版源:吉林大学
领域分类:分布式系统
作者:张璐 专业:计算机系统结构 工程硕士
二、研究背景
问题定义:基于负载平衡的并行 C 语言
难点:关键技术的实现
相关工作: 分布式系统,并行,负载平衡,多线程,远程过程调用
三、研究内容
-
并行计算技术及并行语言设计的研究
-
分布式系统下,负载平衡技术研究
- 信息策略
- 转移策略
- 位置策略
- 选择策略
- 接受策略
- 决定策略
-
分布式系统下,多线程及远程过程调用的研究及使用
线程的创建当一个程序开始时,将会创建一个主线程,其它线程由函数pthread_create 来创建。该函数定义如下:
include<pthread.h> int pthread_create(pthread_t *tid , const pthread_attr_t *attr , void (start_routine)(void*) , void *arg);
/**参数 tid 用于返回新创建线程的线程号; start_routine 是线程函数指针,线程从这个函数开始独立地运行;arg 是传递给线程函数的参数。由于 start_routine 是一个指向参数类型为 void,返回值为 void的指针,所以如果需要传递或返回多个参数时,可以使用强制类型转化*/
-
基于负载平衡的并行 C 语言的设计
三层结构体模型
-
客户端(Client)
-
负载平衡服务器(Load Balancing Sever)
-
计算节点服务器(Computing Sever)
- 基于负载平衡的并行 C 语言的实现
用户在使用基于负载平衡的并行 C 语言编写并行应用程序时,要注意如下几点:
- 正确地理解和使用此并行 C 语言的标识语句;
- 将一个大的任务划分为若干个子任务,应保证并行处理的子任务不相关,不存在对共享变量的互斥访问,同时尽量保证子任务粒度均衡;
- 谨慎使用静态变量,传给子任务功能函数的参数若为静态变量,应保证各静态变量不相同,即保证线程是安全的
四、结论
- 分布式系统具有强大计算能力,充分利用分布式系统中的资源更好的进行并行计算的问题,分布式系统中资源的负载是否平衡是关系到并行效果的一个极为关键的因素
- 将多线程与 RPC 技术结合起来,用多线程实现客户端任务的并发、RPC 实现任务在分布式系统中各服务节点上的分布及并行执行。
- 任务的计算量越大、划分为并行化处理的子任务越适宜,效果越显著
参考文献
[1] 陈国良,《并行计算——结构●算法●编程》,高等教育出版社,1999.10,p45-58,p112-135。
[2] 美 RajkumarBuyya 著,郑纬民 等译,《高性能集群计算:结构与系统(第一卷)》,电子工业出版社,2001.6,p65-89。
[3] 美 RajkumarBuyya 著,郑纬民 等译,《高性能集群计算:编程与应用(第二卷)》,电子工业出版社,2001.7,p232-245。
[4] BARRYW, MICHAEL A 著,并行程序设计 [M] 陆鑫达译,机械工业出版社,2002,p25-45。
[5] 徐高潮,胡亮,鞠九滨,《分布计算系统》,高等教育出版社,2004,p130-158。
[6] 蒋江,异构集群系统中给予进程迁移机制的负载平衡算法的研究,国防科技大学博士论文,2002,p20-29。
[7] 陈锡明,基于 NOW 的任务调度和负载平衡方法研究,电子科技大学博士论文,2000,p46-52。
[8] 高翔,负载平衡技术及其应用,计算机工程与科学,2003,p2-3。
[9] Wei Shu,Runtime Incremental Parallel Scheduling(RIPS) on Distributed Memory Computers,IEEE Transactions On Parallel And Distributed Systems,Vol.7,No.6,June 1996,p637-649。
[10] 陈华平,郭国良,分布式动态负载平衡调度的一个通用模型,软件学报,1998,9(1),p25-29。
[11] 傅强,郑纬民,一种适用于机群系统的任务动态调度方法,软件学报,1999,10(1),p20-23。
[12] Ousterhout J. Scheduling techniques for concurrent systems ,Proceedings of the 3rd International Conference on Distributed Computing Systems,1992,p22-30。
[13] Min-You Wu,Parallel Incremental Scheduling,Parallel Processing Letters,1995。
[14] 林宇,郭凌云 编著,《Linux 网络编程》,人民邮电出版社,2000.10,p35-42,p66-78,p124-158。
[15] W.Richard Stevens 著,施振川,周利民,孙宏晖 等译,《UNIX 网络编程 第 1 卷:套接口 API 和 X/Open 传输接口 API》,清华大学出版社,1999,p182-202。
[16] Peter A. Dinda. Online Prediction of the Running Time of Tasks [J]. 2002,p225-236。
[17] Peter A. Dinda, David R. O'Hallaron. Host load prediction using linear models [J].2000,p265-280。