-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathAI.html
166 lines (152 loc) · 8.39 KB
/
AI.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=endge, chrome=IE8" />
<meta name="viewport" content="initial-scale=1.0, width=device-width, user-scalable=no" />
<title>Anticipating Invariant — Titleless Sights</title>
<!--[if lte IE 8]><script type="text/javascript" src="http://james0zan.github.io/theme/js/html5shiv.js"></script><![endif]-->
<link rel="stylesheet" type="text/css" href="http://james0zan.github.io/theme/css/skeleton.css" />
<link rel="stylesheet" type="text/css" href="http://james0zan.github.io/theme/css/theme.css" />
<link rel="shortcut icon" type="image/png" href="http://james0zan.github.io/favicon.png" />
<!--[if lte IE 8]><link rel="shortcut icon" type="image/x-icon" href="http://james0zan.github.io/favicon.ico" /><![endif]-->
<link rel="alternate" type="application/atom+xml"
title="Titleless Sights — Flux Atom"
href="http://james0zan.github.io/feeds/atom.xml" />
<style>
li {
margin: 10px 0;
}
</style>
<meta name="author" content="Mingxing Zhang" />
<meta name="keywords" content="" />
<link rel="stylesheet" media="not print" type="text/css" href="http://james0zan.github.io/theme/css/pygments.css" />
</head>
<body>
<div id="page">
<header id="page-head">
<h1>
<a href="http://james0zan.github.io/index.html">Titleless Sights</a>
</h1>
</header>
<div id="page-body">
<article class="post" id="page-main" role="main">
<header class="post-header">
<h1>
<a rel="bookmark"
href="http://james0zan.github.io/AI.html.html"
title="Lien permanent vers «Anticipating Invariant»">
Anticipating Invariant
</a>
</h1>
<div class="meta">
<!-- includes/article_meta.html -->
On <time datetime="2014-03-03T00:00:00">Lun 03 Marzo 2014</time>
in <em><a href="http://james0zan.github.io/category/pages.html">Pages</a></em>
by <a href="http://james0zan.github.io/author/mingxing-zhang.html">Mingxing Zhang</a> </div>
</header>
<div class="post-content">
<div class="section" id="ai-in-brief">
<h2>AI in Brief</h2>
<p>Concurrency bugs (CBugs) are notoriously difficult to be eradicated in the testing phase because of their non-deterministic nature,
and the bug fixing procedure is also time-consuming and error-prone.</p>
<p>Thus, tolerating concurrency bugs in the production phase emerges as an attractive complementary approach.
But unfortunately, the existing tolerating tools are usually
1) constrained in types of bugs they can handle;
or 2) requiring roll-back mechanism, which can hitherto not be fully achieved efficiently without hardware supports.</p>
<p>In contrast, the Anticipating Invariant (AI) can anticipate CBugs before any irreversible changes have been made.
Based on it, we implemented a software-only tool to tolerate concurrency bugs on-the-fly.</p>
<p>The tool will restrict the program's interleaving space, such that it avoids AI-violating (i.e., potentially failure-triggering) interleavings during the production runs.
Since AI can detect the bugs beforehand, we are able to bypass the suspicious interleavings through stalling, instead of resorting to roll-back.</p>
<p>Experiments with 35 real-world concurrency bugs demonstrate that AI is capable of detecting and tolerating most types of concurrency bugs, including both atomicity and order violations.</p>
<p>We also evaluate AI with 6 representative parallel programs.
Results show that AI incurs negligible overhead (< 1%) for many nontrivial desktop and server applications.
And its slowdown on computation-intensive programs can be reduced to about 2x after using the bias instrumentation.</p>
<p>To the best of our knowledge, this is the first attempt to efficiently tolerate previously unknown order and atomicity violations at run time without using rollback.</p>
</div>
<div class="section" id="paper">
<h2>Paper</h2>
<ul class="simple">
<li><strong>Mingxing Zhang</strong>, Yongwei Wu, Shan Lu, Shanxiang Qi, Jinglei Ren and Weimin Zheng. <a class="reference external" href="http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=7412768">A Lightweight System for Detecting and Tolerating Concurrency Bugs</a>. <strong>TSE 2016</strong></li>
<li><strong>Mingxing Zhang</strong>, Yongwei Wu, Shan Lu, Shanxiang Qi, Jinglei Ren and Weimin Zheng. <a class="reference external" href="resource/fse14_zhang.pdf">AI: A Lightweight System for Tolerating Concurrency Bugs</a>. <strong>FSE '14</strong></li>
</ul>
<a href="http://fse22.gatech.edu/dpa"><font color="maroon"><span style="display:inline-block; width: 40px;"></span>Won SIGSOFT Distinguished Paper Award</font></a></div>
<div class="section" id="software">
<h2>Software</h2>
<p>You can download and try AI at <a class="reference external" href="https://github.com/james0zan/AI">here</a>.</p>
<p>In the package, we present:</p>
<ol class="arabic simple">
<li>the source code of our LLVM-based AI implementation;</li>
<li>several demos for demonstrating AI's ability of tolerating CBugs;</li>
<li>applications from different categories (desktop, server, HPC) for evaluating AI's overhead;</li>
<li>an example of the APIs' usage.</li>
</ol>
<p>Documentations, screencasts and some auxiliary scripts are also provided.</p>
</div>
</div>
<footer class="post-footer">
<div class="meta">
<!-- includes/article_meta.html -->
On <time datetime="2014-03-03T00:00:00">Lun 03 Marzo 2014</time>
in <em><a href="http://james0zan.github.io/category/pages.html">Pages</a></em>
by <a href="http://james0zan.github.io/author/mingxing-zhang.html">Mingxing Zhang</a> </div>
</footer>
</article> <!-- /#page-main -->
<aside id="page-side">
<!-- begin includes/sidebar.html -->
<nav>
<h3>Pages</h3>
<ul>
<li><a href="http://james0zan.github.io/index.html">Home</a></li>
<li><a href="http://james0zan.github.io/category/blog.html">Blog</a></li>
<li><a href="http://james0zan.github.io/category/bookmark.html">Bookmark</a></li>
</ul>
</nav>
<nav>
<h3>Projects</h3>
<ul>
<li><a href="http://james0zan.github.io/AI.html">AI</a></li>
</ul>
</nav>
<nav>
<h3>Meta</h3>
<ul>
<li><a href="http://james0zan.github.io/archives.html">Archives</a></li>
<li><a href="http://james0zan.github.io/tags.html">Tags</a></li>
</ul>
</nav>
<nav>
<h3>Contacts</h3>
<ul>
<li><a href="mailto:[email protected]">Gmail</a></li>
<li><a href="https://github.com/james0zan">Github</a></li>
<li><a href="http://www.linkedin.com/profile/view?id=80873276">Linkedin</a></li>
</ul>
<h3>Feeds</h3>
<ul>
<li><a href="http://james0zan.github.io/feeds/atom.xml">Atom</a></li>
<li><a href="http://james0zan.github.io/feeds/blog.atom.xml">Blog Feeds</a></li>
<li><a href="http://james0zan.github.io/feeds/bookmark.atom.xml">Bookmark Feeds</a></li>
</ul>
</nav>
<!-- end includes/sidebar.html --></aside> <!-- /#page-side -->
</div> <!-- /#page-body -->
<footer id="page-foot">
<p>
Powered by <a href="http://pelican.readthedocs.org">Pelican</a>; Theme from <a href="http://blog.1flow.net/">1flow team</a>.
</p>
<p><a id="github-link" href="https://github.com/james0zan/james0zan.github.io">Fork me on Github</a></p> </footer>
</div> <!-- /#page -->
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-40495434-1']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
</script>
</body>
</html>