论文部分内容阅读
现代计算机技术极大地促进了计算科学的发展。在实践中,由于受到物理器件极限速度和技术水平的限制,使得单处理机远远满足不了现代许多领域中具有挑战性的大规模计算课题对计算资源的需求,因此对高性能计算进行研究是很有必要的。 设计高效的并行程序是实现高性能计算的关键,常用的并行编程工具有MPI、PVM、Linda等,其中消息传递接口MPI(Message Passing Interface)更以其移植性好、功能强大、效率高等优点而成为目前最重要的并行编程工具。 并行编程的目的就是为了解决超大容量的数据处理,提高运算速度,本文对提高并行系统有效速度的主要因素Cache利用率(CUR)进行了探讨和分析,并对下标复位和负载平衡问题进行更深一步的研究。 在硬件方面,当前的计算机大都采用存储器分层技术,相对于内存和硬盘,cache的速度最高,容量较小,因此提高cache的利用率CUR(Cache using ratio),对提高整个计算性能至关重要。本文利用并行程序设计技巧,把主要的计算分布到cache中,充分利用cache的高速处理能力,提高并行程序中计算机的有效浮点速度。 在并行计算中,主要是各种线性模型的计算,其中矩阵与矩阵的相乘的CUR最高,但并非所有的计算都是对矩阵进行处理,为了提高cache利用率,可以把对其它对象的处理转化为对矩阵的处理,运算完成后,再把结果转化为回来。在这种转化中,怎样确保结果数据回到原来正确的位置,这就是矩阵下标复位的问题。本文提出了大矩阵分成小矩阵后下标复位的算法,并给出了相应的程序。 在下标复位算法中,若分解的小矩阵个数与处理器的个数之比不是整数,则每个处理器执行的任务数不一样,这样有些处理器处于等待状态,一些一直在计算。此外,处理不同的任务所需的CPU时间也 是不同的,若能在程序中动态地调整任务数,使各个处理器的处理时间基本平衡,就可以大大提高系统性能,这就是负载平衡问题的另一个方面。本文针对这两种负载分配问题,给出了两种调整负载平衡的方法:平均权重法和均权法,可以解决一维负载平衡。 本文针对基于抑 的井行程序设计技术进行研究,首先介绍了MPI出现的背景,并行计算机的体系结构及并行计算模型。 其次;分析了进行并行程序设计的基本方法,MPI利用急迫协议和约定协议进行数据发送的,利用惭I提供的阻塞和非阻塞通信的例程进行并行计算和通信,使用文件视图可以访问非连续存放的数据。 然后介绍了并行处理的最新发展惭J,主要包括三大新特征:并行 1/0、远程内存操作和动态进程管理,详细研究了并行 I/0的使用,使用三种文件指针来进行非连续访存和 collec上ive/0操作;并行1/0提供两种派生数据类型,可以很有效的访问存储在文件种的数据;同时并行U0把访存模式分层,提高collective yO操作执行效率。 最后;本人针对基本线性计算模型的cache利用率CUR(C。IcheU叫g R缸b)进行了分析与实验比较,同时也对获取程序的浮点运算速度的方法进行了讨论;在并行计算中,主要是各种线性模型的计算,其中矩阵与矩阵的相乘的CUR最高,但并非所有的计算都是对9卜?进行处理,为了提高c。che利用率,可以把对其它对象的处理转化为对矩阵的处理,运算完成后,再把结果转化为回来。在这种转化中,怎样确保结果数据口到原来正确的位青,这就是矩阵下杯复位的问题。本文提出了关于大矩阵分解成小矩阵后的下标恢复原位的算法,并给出了相应的程序;处理不同的任务所需的n 时间也是不同的,若能在程序中动态地调整任务数,使各个处理器的处理时间基本平衡,就可以大大提高系统性能,这是负载平衡问题。针对并行程序设计时的负载平衡问题给出了两种解决方法:平均权重法和多层均权法。