11 research outputs found

    Research on Deadlock Detection in MPICH Synchronization Communication Programs

    No full text
    MPI是分布式内存并行处理计算机上开发基于消息传递应用系统的事实标准,主要用于并行计算机和集群的高性能运算,MPICH是其重要实现。MPI程序可能发生死锁,而且调试困难,国际上主要采用运行时动态调试方法。但是,这些方法的致命缺陷是发现死锁后,死锁造成的损失已无可挽回;况且,它们无法用于全节点空间上。为解决这些问题,针对MPICH点对点同步通信程序,本文提出了一种静态方法。 根据静态方法程序建模的需要,开发了一种基于JavaCC技术的编译器前端工具,该工具对MPICH程序进行编译产生程序语法树。 提出一种MPICH同步通信程序的建模方法,并设计出一种模型构造器遍历语法树来构造模型。根据程序性质,模型构造器可构造出三种模型:无参数模型,一次参数化模型和二次参数化模型。无参数模型不含任何参数;一次参数化模型含有一个并行节点ID的参数;二次参数化模型含有并行节点ID以及并行节点数量两个参数。构造出一种优化算法将全节点空间上的一次参数化模型转化为无参数模型之后进行死锁判定;对二次参数化模型,采用穷举方法转化为无参数模型后进行死锁判定。 针对非对称条件程序死锁性质的不确定性,提出对称条件假设。根据该假设,无参数模型被转化为循环嵌套模型之后再进行死锁判定。 为提高循环嵌套模型死锁判定效率,提出比例方程组概念。设计出建立并求解比例方程组的线性时空复杂度算法。比例方程组无解有两种情况:比例方程组包含第一类或者第二类比例冲突。提出比例冲突相关的方法,在常数时间内通过分析循环模型中产生冲突的几个循环的循环次数是否满足死锁条件来判断死锁。在比例方程组有解的情况下,给出了一种算法截取该模型的常数个循环片断进行死锁判定。为对循环片断进行死锁判定,开发了一种线性时空复杂度算法将片断顺序化后进行死锁判定。 为进一步提高算法效率,对Java哈希表类库进行了优化,使该库能够完全避免由于存取比例数据而产生的哈希碰撞。 理论证明,实验表明,该方法能够在运行前,最坏情况下以线性时空复杂度,判定点对点MPICH同步通信程序在全节点空间的死锁性质。Mainly used in high performance computing on parallel machines and clusters, MPI is a facto standard for developing message-passing based applications in parallel-processing computers with distributed memory. MPICH is an important MPI implementation. MPI programs may have deadlocks but debugging is very difficult. Run-time dynamic methods are mostly adopted worldwide. However, they have a deadly deficiency that loss by deadlock is unavoidable when deadlocks are found. Moreover, they can not be used in whole-node space. Aiming at deadlock detection in MPICH point-to-point synchronous communication programs, a static method is originally presented to solve these problems in this paper. To meet requirements of program modeling for static methods, a JavaCC-based compiler front end is developed to compile MPICH programs and to build their syntax trees. A method for modeling MPICH synchronization communication programs is put forward and a model builder is designed to traverse the syntax tree to produce models. According to program property, three kinds of models may be built: 0-parameter model, one-parameter model and two-parameter model. 0-parameter model has no parameter. One-parameter model has a parameter called parallel node ID. Besides ID two-parameter model has another parameter called parallel node amount. An optimized algorithm is constructed to translate one-parameter models into 0-parameter ones for deadlock detection. For two-parameter models an exhaustive process is employed to executing such translation. Conditional symmetry hypothesis is proposed to avoid uncertainty in deadlock detection in programs with asymmetric conditions. Based on this hypothesis, 0-parameter model will be turned into loop nested model before deadlock detection. In order to improve efficiency in deadlock detection in loop nested model, ratio equation group (REG) concept is given and an algorithm with linear time-space complexity is devised to build REG from the model and to resolve it. There are two cases where REG has no solution: the first-class conflict and second-class conflict hidden in REG. A method on ratio conflicts is brought forward to decide a deadlock in constant time by checking if loop times of conflicting loops of the model meet certain conditions. If there is a solution to REG, an algorithm is advanced to slice the model into several loop sections for deadlock detection. An algorithm with linear time-space complexity is created to transform the sections into a sequential form and then to detect deadlocks in this form. To improve efficiency further in these algorithms for deadlock detection, the Java hash table class library is optimized so that hash conflicts by proportional data access can be completely cleared. Both theory reasoning and experiments show that, with a linear time-space complexity under worst cases, the method can decide what deadlock properties a point-to-point MPICH synchronous communication program has throughout whole-node space before the program goes into running

    Deadlock Detection in Basic Models of MPI Synchronization Communication Programs

    No full text
    本文提出了MPI程序的同步通信模型及三个基本简化模型,给出了判定这些基本模型是否死锁的方法和定理并予以了严格证明.简化模型的死锁检测理论和方法是真实MPI程序死锁检测的必要基础.这些方法基于程序静态分析,必要时进行运行时检测,它们对两种简化模型可以在程序编译前确定是否死锁,对另外一种模型,在编译前可静态确定部分死锁,运行中可确定其他死锁.我们的理论可以证明MPI程序死锁检测主流算法的正确性,其方法可以减少它们对客户源代码或MPI profiling接口的修改量,从而大大降低死锁检测开销,并可在运行前判定死锁

    Prime number sequence based performance improvement in Java Hashtable

    No full text
    分析了Java哈希表的实现特点并给出了导致其性能恶化的一种数据模式.针对这种数据模式的特点,提出了基于素数序列的哈希表优化方法,从而几乎完全避免了该模式下哈希表的性能恶化.实验与理论结果表明:对提出的模式数据,优化方法产生的Hash碰撞比JDK中的方法下降接近100%,而且对随机数据下的Java哈希表性能也有改善

    Improved K-Means Based Multi-Threshold Energy Detection Method

    No full text
    由于实际无线通信环境的复杂性,导致无线频谱资源利用率不高.传统能量检测法难以准确设定能量门限,导致频谱感知效率较低.针对上述问题,在传统能量检测法的基础上,提出改进K-means算法的多门限能量检测法.上述方法在能量检测前,首先对历史实验数据进行聚类分析,获取能量检测值与信道质量的经验关系,以及信道质量在多个能量检测值区间上的概率分布,然后依概率选择通信信道,进行精细感知.基于实际数据的仿真结果表明,改进方法相比传统的能量检测法,感知效率提高约66%.Due to the complexity of communication environments,it is difficult for traditional energy methods to set accurate energy thresholds that will lead to low spectrum sensing efficiency. Aiming at this problem,based on traditional energy detection,a multi - threshold method with probability mined by an improved K - means algorithm was proposed. This method firstly obtained the empirical relations between energy value and channel quality through cluster analysis of historical experimental data before energy detection. Furthermore,the probability distribution of channel quality over energy value range was obtained so that we can select channels with different probability for further refined spectrum sensing. Based on actual experimental data, simulations were performed. The results show that the spectrum sensing efficiency of this method can be improved about 66% than that of traditional energy detection

    Static Detection Algorithm of Deadlock in MPI Synchronization Communication Sequential Model

    No full text
    静态检测MPI程序同步通信死锁比较困难,通常需要建立程序模型.顺序模型是其他所有复杂模型的基础.通过一种映射方法将顺序模型转化为字符串集合,将死锁检测问题转化为等价的多队列字符申匹配问题,从而设计并实现了一种MPI同步通信顺序模型的静态死锁检测算法.该算法的性能优于通常的环检测方法,并能适应动态消息流

    全节点空间MPI同步通信死锁检测

    No full text
    针对全节点空间上MPI同步通信程序死锁检测的现有穷举方法的弱点,提出了该场景中MPI程序的两种参数化模型:一次参数化模型和二次参数化模型。通过分析一次参数化模型的一类不变式的性质,给出了该模型的死锁检测算法。提出了同构节点空间的一系列概念和性质并由此设计出该算法的几种优化方法,以加快某些特定程序模型死锁检测的过程。仿真实验表明该算法及其优化方法比现有方法的性能提高若干数量级

    比例方程组与MPI同步通信静态死锁检测

    No full text
    介绍了一种MPI程序死锁检测的静态方法以及该方法所处理的程序模型.为实现该方法,提出了比例方程组(一种特殊线性方程组)的概念并设计了求解方程组最简解的线性时空复杂度的高效算法.算法由一个四遍扫描过程与一个主控程序构成.主控程序用来处理并行计算节点计算机构成的划分.四遍扫描过程采用深度优先搜索方法确定方程组中各变元之间的比例关系.通过该算法所获得的最简解,任意多个变元之间的比例关系能在常数时间内获得.证明了该算法的正确性,并采用Java语言实现了该算法的标准程序库.该程序库目前已运行于MPI同步通信静态死锁检测的软件框架中

    research on ultra-short wave wireless network planning method

    No full text
    为改进超短波无线网络的构建方式,研究在给定若干必要网络节点的条件下,增加机动节点构成最优网络的方法。为平衡网络的建设成本、可靠性和通信质量的关系,设计一个分层优化模型,并提出分层多目标优化近似算法求解该模型,根据目标函数的优先层次求得满足约束条件的近似最优解。仿真结果表明,该算法能找到与最优解近似甚至相同的解。与GLiD算法相比,其规划的网络成本更低,可靠性和通信质量更好。In order to improve the traditional way of ultra-short wave wireless network construction, this paper studies how to form the optimal network by adding mobile nodes to a group of necessary nodes. In order to achieve the balance of network construction cost, reliability and communication quality, it designs a hierarchical optimization model. To solve this model, it proposes a hierarchical multi-objective optimization approximation algorithm. According to the priority levels of objective functions, the algorithm can achieve the approximate optimal solution which meets constraints. Simulation results show that this algorithm can effectively achieve the approximate or even the same solution as the optimal solution. Compared with the GLiD algorithm, this algorithm can plan a better network with less construction cost, higher reliability and better communication quality

    a libmini-based real-time algorithm for dynamic terrain rendering

    No full text
    为了减少地形动态变化时的地形计算时间,满足动态地形实时可视化的需要,在地形渲染库libMini的基础上,依据地形动态变化的局部性特点,以及库中LOD(Level ofDetail)算法的具体实现方式,运用局部更新的思想,提出了一种动态地形实时计算和渲染算法.算法避免了在地形动态变化时进行大量重复计算,使得在地形动态变化时所需的计算量大大减少,达到实时渲染要求.实验表明,算法使得局部地形动态变化时地形计算和渲染的时间从秒级降低到毫秒级,可以满足实时渲染要求
    corecore