首页> 外文会议>International symposium on search based software engineering >Optimizing Threads Schedule Alignments to Expose the Interference Bug Pattern
【24h】

Optimizing Threads Schedule Alignments to Expose the Interference Bug Pattern

机译:优化线程计划对齐方式以暴露干扰错误模式

获取原文

摘要

Managing and controlling interference conditions in multi-threaded programs has been an issue of worry for application developers for a long time. Typically, when write events from two concurrent threads to the same shared variable are not properly protected, an occurrence of the interference bug pattern could be exposed. We propose a mathematical formulation and its resolution to maximize the possibility of exposing occurrences of the interference bug pattern. We formulate and solve the issue as an optimization problem that gives us (1) the optimal position to inject a delay in the execution flow of a thread and (2) the optimal duration for this delay to align at least two different write events in a multi-threaded program. To run the injected threads and calculate the thread execution times for validating the results, we use a virtual platform modelling a perfectly parallel system. All the effects due to the operating system's scheduler or the latencies of hardware components are reduced to zero, exposing only the interactions between threads. To the best of our knowledge, no previous work has formalized the alignment of memory access events to expose occurrences of the interference bug pattern. We use three different algorithms (random, stochastic hill climbing, and simulated annealing) to solve the optimization problem and compare their performance. We carry out experiments on four small synthetic programs and three real-world applications with varying numbers of threads and read/write executions. Our results show that the possibility of exposing interference bug pattern can be significantly enhanced, and that metaheuristics (hill climbing and simulated annealing) provide much better results than a random algorithm.
机译:长期以来,在多线程程序中管理和控制干扰条件一直是应用程序开发人员所担心的问题。通常,如果没有正确保护从两个并发线程到同一共享变量的写入事件,则可能会暴露出干扰错误模式。我们提出一种数学公式及其解决方案,以最大程度地暴露出发生干扰的错误模式的可能性。我们将此问题公式化并解决为一个优化问题,该优化问题使我们(1)在线程的执行流中注入延迟的最佳位置,以及(2)该延迟的最佳持续时间,以在一个线程中对齐至少两个不同的写事件。多线程程序。为了运行注入的线程并计算线程执行时间以验证结果,我们使用虚拟平台建模完美的并行系统。由于操作系统的调度程序或硬件组件的延迟而导致的所有影响都将减少为零,从而仅暴露线程之间的交互。据我们所知,以前没有工作将内存访问事件的对齐方式正式化以暴露干扰错误模式的发生。我们使用三种不同的算法(随机,随机爬山和模拟退火)来解决优化问题并比较其性能。我们对四个小型合成程序和三个实际应用程序(具有不同数量的线程和读/写执行)进行了实验。我们的结果表明,可以显着提高暴露干扰错误模式的可能性,并且与启发式算法(爬坡和模拟退火)相比,元启发法提供的结果要好于随机算法。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号