首页> 外文会议>International conference on Aspect-oriented software development >Using AspectJ to separate concerns in parallel scientific Java code
【24h】

Using AspectJ to separate concerns in parallel scientific Java code

机译:使用AspectJ将Scientific Java代码中的分开问题

获取原文

摘要

Scientific software frequently demands high performance in order to execute complex models in acceptable time. A major means of obtaining high performance is via parallel execution on multi-processor systems. However, traditional methods of programming for parallel execution can lead to substantial code-tangling where the needs of the mathematical model crosscut with the concern of parallel execution.Aspect-Oriented Programming is an attractive technology for solving the problem of code-tangling in high performance parallel scientific software. The underlying mathematical model and the parallelism can be treated as separate concerns and programmed accordingly. Their elements of code can then be woven together to produce the final application. This paper investigates the extent to which AspectJ technology can be used to achieve the desired separation of concerns in programs from the Java Grande Forum benchmark suite, a set of test applications for evaluation of the performance of Java in the context of numerical computation. The paper analyses three different benchmark programs and classifies the degrees of difficulty in separating concerns within them in a form suitable for AspectJ. This leads to an assessment of the influence of the design of a numerical application on the ability of AspectJ to solve this kind of code-tangling problem. It is concluded that: (1) scientific software is rarely produced in true object-oriented style; and (2) the inherent loop structure of many scientific algorithms is incompatible with the join point philosophy of AspectJ.Since AspectJ cannot intercept the iterations of for-loops (which are at the heart of high-performance computing), various object-oriented models are proposed for describing (embarrassingly parallel) rectangular double-nested forloops that make it possible to use AspectJ for encapsulating parallelisation in an aspect. Finally, a test-case using these models is presented, together with performance results obtained on various Java Virtual Machines.
机译:科学软件经常要求高性能,以便在可接受的时间内执行复杂的模型。获得高性能的主要方法是通过在多处理器系统上并行执行。然而,用于并行执行的传统编程方法可以导致大量的纠结,其中数学模型跨越与并行执行的关注的需求。导向的编程是一种有吸引力的技术,用于解决高性能的纠正问题问题并行科学软件。底层数学模型和并行性可以被视为单独的问题并相应地编程。然后,它们的代码元素可以编织在一起以产生最终应用。本文调查了AspectJ技术可用于实现Java Grande论坛基准套件中计划中的所需分离,这是一组测试应用程序,用于评估Java在数值计算的上下文中。本文分析了三个不同的基准程序,并在适合于Aspectj的形式中对其分离难度的难度进行分析。这导致评估了对数字应用的影响对AspectJ的能力来解决这种码态问题。得出结论是:(1)科学软件很少以真正的面向对象风格生产; (2)许多科学算法的固有循环结构与AspectJ.Since AspectJ的连接点哲学不兼容,无法拦截循环的迭代(这是在高性能计算的核心),各种面向对象的模型提出用于描述(令人尴尬的平行)矩形双嵌套的轮廓,使得可以在一个方面使用ASPANCEJ以封装并行化。最后,呈现使用这些模型的测试用例,以及在各种Java虚拟机上获得的性能结果。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号