Thread pooling is a common programming idiom in which a fixed set of worker threads are maintained to execute tasks concurrently. The workers repeatedly pick tasks and execute them to completion. Each task is sequential, with possibly recursive code, and tasks communicate over shared memory. Executing a task can lead to more new tasks being spawned. We consider the safety verification problem for thread-pooled programs. We parameterize the problem with two parameters: the size of the thread pool as well as the number of context switches for each task. The size of the thread pool determines the number of workers running concurrently. The number of context switches determines how many times a worker can be swapped out while executing a single task - like many verification problems for multithreaded recursive programs, the context bounding is important for decidability. We show that the safety verification problem for thread-pooled, context-bounded, Boolean programs is EXPSPACE-complete, even if the size of the thread pool and the context bound are given in binary. Our main result, the EXPSPACE upper bound, is derived using a sequence of new succinct encoding techniques of independent language-theoretic interest. In particular, we show a polynomial-time construction of downward closures of languages accepted by succinct pushdown automata as doubly succinct nondeterministic finite automata. While there are explicit doubly exponential lower bounds on the size of nondeterministic finite automata accepting the downward closure, our result shows these automata can be compressed. We show that thread pooling significantly reduces computational power: in contrast, if only the context bound is provided in binary, but there is no thread pooling, the safety verification problem becomes 3EXPSPACE-complete.


翻译:线索共享是一个常见的程序编程模式, 固定的工人线条在其中保留固定的一组线条以同时执行任务。 工人反复选择任务, 并执行任务完成。 每个任务都是顺序的, 可能有递归代码, 任务会通过共享的内存进行交流。 执行任务可以导致更多新的任务 。 我们考虑线索共享程序的安全核查问题 。 我们用两个参数来比较问题 : 线索库的大小以及每个任务的背景开关的数量。 线索库的大小决定同时运行的工人数量。 上线库的大小决定着一个任务的数量。 上下文交换器的数量决定了一个工人可以换掉多少次而执行一个单一的任务 - 就像多读的递归代码程序的许多核查问题, 以及任务在共享的记忆中传递到更多新的直线化的自动递归线性递归码 。 我们通过直线线库的大小和上下文框来显示一个不直线的比值。 我们的主要结果, EXPACE 上框是用一个新的直径直径直径直径直的自动递递递缩的自动递缩的自动递化语言的直径直径直径直径直路路路。 。 我们通过直的直径直径直径直的直的直的自动直线的自动递化的自动递化的自动递算算法的自动直线路算算法, 。

0
下载
关闭预览

相关内容

【KDD2021】图神经网络,NUS- Xavier Bresson教授
专知会员服务
63+阅读 · 2021年8月20日
专知会员服务
60+阅读 · 2020年3月19日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
灾难性遗忘问题新视角:迁移-干扰平衡
CreateAMind
17+阅读 · 2019年7月6日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【推荐】RNN/LSTM时序预测
机器学习研究会
25+阅读 · 2017年9月8日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Arxiv
0+阅读 · 2022年1月21日
Arxiv
3+阅读 · 2021年11月1日
VIP会员
相关VIP内容
【KDD2021】图神经网络,NUS- Xavier Bresson教授
专知会员服务
63+阅读 · 2021年8月20日
专知会员服务
60+阅读 · 2020年3月19日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
相关资讯
灾难性遗忘问题新视角:迁移-干扰平衡
CreateAMind
17+阅读 · 2019年7月6日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
Transferring Knowledge across Learning Processes
CreateAMind
28+阅读 · 2019年5月18日
Call for Participation: Shared Tasks in NLPCC 2019
中国计算机学会
5+阅读 · 2019年3月22日
【TED】生命中的每一年的智慧
英语演讲视频每日一推
9+阅读 · 2019年1月29日
meta learning 17年:MAML SNAIL
CreateAMind
11+阅读 · 2019年1月2日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
【推荐】RNN/LSTM时序预测
机器学习研究会
25+阅读 · 2017年9月8日
【学习】Hierarchical Softmax
机器学习研究会
4+阅读 · 2017年8月6日
Top
微信扫码咨询专知VIP会员