SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Incremental	Recomputation:
Those	who	cannot	remember	the	past	are	
condemned	to	recompute it	
Bertram	Ludäscher
ludaesch@illinois.edu
Workshop:	Incremental	Re-computation:	
Provenance	and	beyond	
IRPb@ProvenanceWeek
2018-07-12..13	
Director,	Center	for	Informatics	Research	in	Science	&	Scholarship	(CIRSS)	
School	of	Information	Sciences	(iSchool@Illinois)
&	National	Center	for	Supercomputing	Applications	(NCSA)
&	Department	of	Computer	Science	(CS@Illinois)	
1
All-in-One	(Teaser	&	Summary)	
• Incremental	(re-)comp	~	Deltas ~	Derivatives
• Database	Queries
– Datalog evaluation:	Naïve	è Seminaïve è Magic	Sets
– Incremental	View	Maintenance	
• …	using	Provenance	Semirings!
• (Scientific)	Workflows	(Dataflow	Programming)	
– Make	
– …	SDF (Sychronous	Dataflow)	
– ...	PN (Process	Networks)		...	COMAD
• Bottom	Line:	
– MoP	=	MoC	+/- ∆	
– T	=	R	– I	+	M	
Ludäscher:	Incremental	Recomp 2
Computing	with	Deltas	…	
Ludäscher:	Incremental	Recomp 3
• Derivatives in	Calculus	(Product	Rule)
(F	*	G)’	=	F	*	G’ +		F’	*	G
• Delta	Computations	in	Datalog:
– R(…)	:- P(…),	Q(…)
– Naive Eval:	
• Bottom-up	fixpoint		
– Seminaive Eval:	
∆	R(...)	:- P(..),	∆	Q(...)
∆	R(...)	:- ∆	P(..),	Q(...)
– ...	and	more	(Magic	Sets,	...	)
Incremental	View	Maintenance	(DRed)
Ludäscher:	Incremental	Recomp
4
Ludäscher:	Incremental	Recomp
5
A	language	for	declaring	updates &	change:
Statelog:	Datalog +	States
Ludäscher:	Incremental	Recomp
6
Using	Provenance for	Profiling:
Comparing	(Abstract)	Execution	Traces
• Number	of	Facts:
DerivedFact(H) :-
g(_,_,out,H).
DerivedHeadCount(C) :-
C = count{
H : DerivedFact(H)
}.
• Number	of	Firings:
Firing(F) :- g(_,F,out,_).
FiringCount(C) :-
C = count{F : Firing(F)}.
e(a,b) 1
2
3
4
tc(a,b)
[1]
tc(a,c)
[2]
tc(a,d)
[3]
tc(a,e)
[4]
e(b,c) 1
2
3
tc(b,c)
[1]
tc(b,d)
[2]
tc(b,e)
[3]
e(c,d)
1
2
tc(c,d)
[1]
tc(c,e)
[2]
e(d,e) 1
tc(d,e)
[1]
3
tc(a,d)
[3]
3
3
tc(a,e)
[3]
3
tc(b,e)
[3]
3
4
4
e(a,b) 1
tc(a,b)
[1]
e(b,c) 1
tc(b,c)
[1]
e(c,d) 1
tc(c,d)
[1]
e(d,e) 1
tc(d,e)
[1]
2
2
2
tc(a,c)
[2]
tc(b,d)
[2]
tc(c,e)
[2]
7
Step	1:	Capturing	Rule	Firings (“F-trick”)
• Capture	rule	firings	and	keep	“witness	info”	(existential	variables)
– no	premature	projections	in	the	rule	head	please!
• Example. Instead	of	a	given rule	…
tc(X,Y) :- e(X,Z), tc(Z,Y).
…	we	rather	use	these	two rules,	keeping	witnesses Z	around:
fire2(X,Z,Y) :- e(X,Z), tc(Z,Y).
tc(X,Y) :- fire2(X,Z,Y).
Example	rule firings
8
Step	2:	Graph	Transformation	(“G-trick”)
• Reify provenance	atoms	&	firings	in	a	labeled	graph	g/3
• Example for	N	=	2	subgoals and 1	head	atom	…	
fire2(X,Z,Y) :- e(X,Z), tc(Z,Y). % two in-edges
tc(X,Y) :- fire2(X,Z,Y). % one out-edge
…	generates	N+1	“reification	rules”	(Skolems are	safe):
g( e(X,Z), in, ffire2(X,Z,Y) ) :- fire2(X,Z,Y).
g( tc(Z,Y), in, ffire2(X,Z,Y) ) :- fire2(X,Z,Y).
g( ffire2(X,Z,Y), out, tc(X,Y) ) :- fire2(X,Z,Y).
e(a,b)
fire2(a,b,d)
in
tc(a,d)
out
tc(b,d)
in
Example	instance generated	by	these	rules
9
Step	3:	Using	Statelog (“S-Trick”)
• Use	Statelog to	keep	record	of	firing rounds:	
– Add	state	(=stage)	argument to	provenance	rules	and	graph	relations
– EDB	facts	are	derived	in	state	0.
– Subsequently:	extract	earliest	round	for	firings	and	IDB	facts
• Example:
rin :	fr(S1,	X)	:- B1(S,	X1),	…	,	Bn(S,	Xn),		next(S,	S1).
rout :	H(S,	Y)		 :- fr(S,	X).
e(a,b) r1 [1]
r2 [3]
tc(a,b)
[1]e(b,c)
r2 [2]
tc(b,b)
[2]
e(c,b)
r1 [1]
r2 [3]
tc(c,b)
[1]
10
[r1]		tc(X,Y) :- e(X,Y)
[r2]		tc(X,Y) :- e(X,Z),	tc(Z,Y)
11
…	from	Queries/Datalog	to	...		
Workflows
Ludäscher:	Incremental	Recomp
12
Application	Example:	Protein	3D	Structure
Resonance Assignments
(a) Sequential
(b) Side-Chain
Identification of Secondary
Structural Elements
(a) Based on Chemical Shift
(b) Based on NOE Patterns
Determine Distance
Constraints
(a) From 2D/3D NOESY Spectra
(b) Calibrate Distance from Vol
Determine Torsion
Angle Constraints (f, y, c)
(a) Based on Chemical Shift
(b) Based on J-couplings
Structure Determination
(a) Torsion Angle Dynamics
(b) Simulated Annealing
High
Resolution
Structure
Iterative
Michael	Gryk:	We	cannot	assign	all	of	the	resonances	in	part	(1),	or	all	of	the	NOESY	
peaks	in	part	(3)	before	doing	step	(5). So	we	run	(5)	with	incomplete information	and	get	
a	preliminary answer. This	helps	rectify	ambiguities	in	steps	1-4	and	we	fix	that	data	and	
run	again. And	again. And	again. It	literally	can	take	dozens	of	attempts	before	we	get	
a	high-resolution	structure.
è Question	of	both	efficiency and	(months	or	years	later)	reproducibility
A	simpler example	…	
• Some	inputs	and/or	
params of	the	workflow	
change
è “smart	re-run”
• Similar	to	executing	Make
• …	on	a	DAG
– …	eg via	Datalog	to	compute	
subworkflow	to	be	re-executed		
(“rescue-DAG”)
• So	much	winning!	But	...	
Ludäscher:	Incremental	Recomp 14
https://openprovenance.org/provenance-challenge/WebHome.html
…	may	be	many
invocations	
(in	“Trace-land”)
What	looks	like	one	step	…	
(in “Workflow-land”)
Ludäscher:	Provenance	Back	&	Forth
15
What	is	the	granularity	of	steps?
Models of Computation (MoCs) can be much
more complex (streaming, state, collections, ...)
From Models of Computation to Models of Provenance
M.	Anand,	S.	Bowers,	
et	al.,	SSDBM’09
Fine-grained, Data & MoC-aware MoP
M. Anand, S. Bowers,
et al., SSDBM’09
When	workflows crash…
Use	incremental	recomputation
…	to	recover and	avoid	starting	from	zero	…
20 7/20/2011“Fault Tolerance through Provenance-based Recovery”
Example:	Checkpoint in	SDF
• Workflow	with	a	mix	of	stateful	and	
stateless	actors																																								.
Corresponding schedule of the workflow
with a fault during invocation B:2
21 7/20/2011“Fault Tolerance through Provenance-based Recovery”
Prototype	Implementation	in	Kepler
• Upon	recovery request:
– SDF	director	calls	the	recovery	engine	
• Recovery:
– Restore the	internal	state of	actors
– Replay successful	invocations using	input	tokens	from
provenance
– Restore content	of	all	queues	
– Repeat faulty invocations
– Return to	SDF	director	with	information	about	where	to	
resume
22 7/20/2011UC Davis: S. Koehler, T. McPhillips, S. Riddle, D. Zinn, B. Ludaescher
Execution	with	Failure
• Execution	of	the	
previous	workflow
• Checkpoints for
actor	B	and	D	but	
not for	C
• At	invocation	B:2	-
Crash
• Tokens	t4 and	t7 -
in	queue
• Token	t9 - to	be	
restored
• Token	t10 - to	be	
deleted
23 7/20/2011“Fault Tolerance through Provenance-based Recovery”
Stages	of	Checkpoint	Recovery
Provenance	Recording	Overhead
24 7/20/2011“Fault Tolerance through Provenance-based Recovery”
Without
provenance
Standard
provenance
Extended
provenance
Worst-case	scenario
If	you	already	capture	provenance	…	
You	might	as	well	do	it	right	J
25 7/20/2011“Fault Tolerance through Provenance-based Recovery”
Fault	Tolerance	Solutions	Compared
When	workflows are	slow	…
Use	provenance	
…	to	understand what’s	going	on…
Hamming Numbers in a Dataflow Network
Compute Hamming	numbers	H in	order,	where
H = 2i · 3j · 5k, where i, j, k ≥ 0
a.k.a.	regular	numbers or		5-smooth	numbers	(numbers	whose	prime	factors	are	<=	5).
27
X2
X3
X5
S2
S3
S5
Q1
Q2
Q3
M1
M2
Q4
Q5
Q6
Q7
Q8
1-Loop	Hamming	Workflow	in	Datalog
#maxint =	100
h(1).
h(Y)	:- h(X),	Y =	2*X.
h(Y)	:- h(X),	Y =	3*X.
h(Y)	:- h(X),	Y =	5*X.
Output:
{h(1),	h(2),	h(3),	h(4),	h(5),	h(6),	
h(8),	h(9),	h(10),	h(12),	h(15),	
h(16),	h(18),	h(20),	h(24),	h(25),	
h(27),	h(30),	h(32),	h(36),	h(40),	
h(45),	h(48),	h(50),	h(54),	h(60),	
h(64),	h(72),	h(75),	h(80),	h(81),	
h(90),	h(96),	h(100)}
28
X2
X3
X5
S2
S3
S5
Q1
Q2
Q3
M1
M2
Q4
Q5
Q6
Q7
Q8
3-Loop	Hamming	Workflow	in	Datalog
#maxint=100.
h2(1).
h2(Y)	:- h2(X),	Y =	2*X.
h23(Y)	:- h2(X).
h23(Y)	:- h23(X),	Y =	3*X.
h(Y)	:- h23(X).
h(Y)	:- h(X),	Y =	5*X.
Output:
{h2(1),	h2(2),	h2(4),	h2(8),	h2(16),	h2(32),	h2(64),	h23(1),	h23(2),	h23(3),	
h23(4),	h23(6),	h23(8),	h23(9),	h23(12),	h23(16),	h23(18),	h23(24),	h23(27),	
h23(32),	h23(36),	h23(48),	h23(54),	h23(64),	h23(72),	h23(81),	h23(96),	
h(1),	h(2),	h(3),	h(4),	h(5),	h(6),	h(8),	h(9),	h(10),	h(12),	h(15),	h(16),	h(18),	
h(20),	h(24),	h(25),	h(27),	h(30),	h(32),	h(36),	h(40),	h(45),	h(48),	h(50),	
h(54),	h(60),	h(64),	h(72),	h(75),	h(80),	h(81),	h(90),	h(96),	h(100)}
29
X2
X3
X5
S2
S3
S5
Q1
Q2
Q3
M1
M2
Q4
Q5
Q6
Q7
Q8
Hamming Workflow Provenance
1
2
3
5
4
6
10
9
15
25
8
12
20
18
30
50
27
45
75
16
24
40
36
60
100
125
54
90
150
32
48
80
72
120
200
81
135
225
250
108
180
300
375
64
96
160
144
240
400
162
270
450
500
216
360
600
625
243
405
675
750
128
192
320
288
480
800
324
540
900
1000 432
720
486
810
256
384
640
576
960
648
729
864
972
512
768
1
2
3
5
4
6
10
9
15
25
8
12
20
18
30
50
27
45
75
16
24
40
36
60
100
125
54
90
150
32
48
80
72
120
200
81
135
225
250
108
180
300
375
64
96
160
144
240
400
162
270
450
500
216
360
600
625
243
405
675
750
128
192
320
288
480
800
324
540
900
1000
432
720
486
810
256
384
640
576
960
648
729
864
972
512
768
1-Loop	variant	("Fish”) 3-Loop	variant	("Sail”)
30
Computational	/	Workflow	Thinking:	
The limits of my language are the limits of my world …
• Vanilla	Process	Network
• Functional	Programming	
Dataflow	Network
• XML	Transformation	
Network	
• Collection-oriented	
Modeling	&	Design	
framework	(COMAD)
– “Look	Ma:	No	Shims!”
A	Jupyter (&	Python)	MoC
Ludäscher:	Provenance	Back	&	Forth
32
https://dashboard.wholetale.org
module.__build_class__
module.__build_class__
simulate_data_collection
180 return
180 run_logger
201 return
201 new_image_file
230 parser
231 cassette_id
236 add_option
241 add_option
246 add_option
248 set_usage
251 parse_args
251 args
251 options
254 module.len
24 cassette_id
24 sample_score_cutoff
24 data_redundancy
24 calibration_image_file
30 exists
33 exists
32 filepath
34 module.remove
33 exists
32 filepath
34 module.remove
33 exists
32 filepath
34 module.remove
36 run_log
37 write
38 str(sample_score_cutoff)
38 write
38 str(sample_score_cutoff)
49 str.format
49 sample_spreadsheet_file
50 spreadsheet_rows
cassette_q55_spreadsheet.csv
50 spreadsheet_rows(sample_spreadsheet_file)
51 str.format 51 write
50 sample_name
50 sample_quality
61 calculate_strategy
61 rejected_sample
61 energies
61 accepted_sample
61 num_images
72 str.format
72 write
73 open
73 rejection_log
74 str.format
74 TextIOWrapper.write
50 spreadsheet_rows
50 spreadsheet_rows(sample_spreadsheet_file)
51 str.format
51 write
50 sample_name
50 sample_quality
61 calculate_strategy
61 rejected_sample
61 energies
61 accepted_sample
61 num_images
90 str.format
90 write
91 sample_id
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image
calibration.img
106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format 93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image
106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer 120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format 106 transform_image 106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format 93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image 106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image 106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image
106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
50 spreadsheet_rows
50 spreadsheet_rows(sample_spreadsheet_file)
51 str.format
51 write
50 sample_name
50 sample_quality
61 calculate_strategy
61 rejected_sample
61 energies
61 accepted_sample
61 num_images
90 str.format
90 write
91 sample_id
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image
106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file 120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image
106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file
120 module.writer 120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image 106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open 119 collection_log_file 120 module.writer 120 collection_log
121 writer.writerow
92 collect_next_image
92 collect_next_image(casset ... _{frame_number:03d}.raw')
93 str.format
93 write
92 energy
92 frame_number
92 intensity
92 raw_image_file
106 str.format
106 transform_image
106 corrected_image_file
106 total_intensity
106 pixel_count
107 str.format
107 write
118 average_intensity
119 open
119 collection_log_file 120 module.writer
120 collection_log
121 writer.writerow
92 collect_next_image
50 spreadsheet_rows
128 return
run/run_log.txt
run/rejected_samples.txt
run/raw/q55/DRT240/e10000/image_001.raw
run/data/DRT240/DRT240_10000eV_001.img
run/collected_images.csv
run/raw/q55/DRT240/e10000/image_002.raw
run/data/DRT240/DRT240_10000eV_002.img
run/raw/q55/DRT240/e11000/image_001.raw
run/data/DRT240/DRT240_11000eV_001.img
run/raw/q55/DRT240/e11000/image_002.raw
run/data/DRT240/DRT240_11000eV_002.img
run/raw/q55/DRT240/e12000/image_001.raw
run/data/DRT240/DRT240_12000eV_001.img
run/raw/q55/DRT240/e12000/image_002.raw
run/data/DRT240/DRT240_12000eV_002.img
run/raw/q55/DRT322/e10000/image_001.raw
run/data/DRT322/DRT322_10000eV_001.img
run/raw/q55/DRT322/e10000/image_002.raw
run/data/DRT322/DRT322_10000eV_002.img
run/raw/q55/DRT322/e11000/image_001.raw
run/data/DRT322/DRT322_11000eV_001.img
run/raw/q55/DRT322/e11000/image_002.raw
run/data/DRT322/DRT322_11000eV_002.img
NW:	Python Model of	
Computation	(MoC)
Ludäscher:	Provenance	Back	&	Forth
33
NW+YW:	
Workflow	Model	of	
Computation	(MoC)
From MoC to MoP via Observables
• Model	of	Computation	MoC
– specification/algorithm	to	compute	Outputs	=	MoC(Wf,Params,Inputs)
– a	director												or	scheduler	implements	MoC
– gives	rise	to	formal	notions	of
• computation (aka	run)	R	
– Formalisms	to	define	M?	
• Model	of	Provenance	MoP
– associate	with	a	MoC a	“default”	MoP (=	MoC ± Δ)	
– the	MoP is	a	“trimmed”	MoC
• T	=	R	– I	+	M	
– Trace	=	Run	– Ignored-observables	+	Modeled-observables
• Observables (of	a	MoC /	MoP)
– functional	observables (may influence	output	o)
• token	rate,	notions	of	firing,	…	
– non-functional	observables (not	part	of	M,	do	not influence o)
• token	timestamp,	size,	…	(unless	the	MoC cares	about	those)
All-in-One	(Summary)	
• Provenance	&	Incremental	Recomputation
– What	You	See	(Think/Model)	Is	What	You	Get!
– WYTIWYG	(“witty-wig”)
• These	assembly language	instructions	
• …	implementing	these	VM Instructions
• …	in	this	programming language
• ...	implementing	an	algorithm
• ...	that	schedules	a	workflows
• ...	that	applies	this	bioinformatics method
• …	to	test	this	scientific	hypothesis	....	
è Need	to	capture	provenance	at	the	“right	level”
– …	for	efficiency	
– ...	for	transparency	&	understanding	
• Bottom	Line:	MoP = MoC	+/- ∆	
– T	=	R	– I	+	M	
– Provenance	Trace (MoP	thing)	=	Run (MoC	thing)	– “nah..”	+	“yeah!”
Ludäscher:	Incremental	Recomp 35
Teaser	(for	Vasa	…)	
Incremental	computation	in	
…	Games
…	aka	Argumentation	Frameworks
Argumentation	Frameworks	
&	Game	Provenance
a
b
1
c
3
d e
f
1
g
3
m
h
1
k
l
oo
n
oo
oo
oo
2 2
2
Ludäscher:	Incremental	Recomp
37
• Query	evaluation	and	logic-
based	argumentation	can	be	
understood	as	a	game!		
• One	logic	rule	to	rule	them	all	…	
win(X)	:- move(X,Y),	not win(Y)
• node	color	=>	edge	color	
– good vs bad moves
• good	moves	=	natural,	new	
notion	of	provenance!
• Implement,	e.g.	using	Answer	
Set	Programming
Aside:	Games	~	Argumentation	Frameworks
win(X)	:- move(X,Y),	not win(Y)
def(X)	:- attacks(Y,X),	not def(Y)
Game	Provenance
W
bad Dbad
L
winning
bad
drawing
n/a
delaying
n/a
n/a
a
b
1
c
3
d e
f
1
g
3
m
h
1
k
l
oo
n
oo
oo
oo
2 2
2
Ludäscher:	Incremental	Recomp
38
Extracting	Provenance:
ü Why/how win(x)?									
• [x]	–G.(R.G)*–> [y]
ü Why-not win(x)?	
• [x]	–(R.G)*–>	[y]
• [x]		–(Y+)–>			[y]
Move	types

Más contenido relacionado

Similar a Incremental Recomputation: Those who cannot remember the past are condemned to recompute it

Studies of HPCC Systems from Machine Learning Perspectives
Studies of HPCC Systems from Machine Learning PerspectivesStudies of HPCC Systems from Machine Learning Perspectives
Studies of HPCC Systems from Machine Learning PerspectivesHPCC Systems
 
RAMSES: Robust Analytic Models for Science at Extreme Scales
RAMSES: Robust Analytic Models for Science at Extreme ScalesRAMSES: Robust Analytic Models for Science at Extreme Scales
RAMSES: Robust Analytic Models for Science at Extreme ScalesIan Foster
 
Distributed Computing with Apache Hadoop: Technology Overview
Distributed Computing with Apache Hadoop: Technology OverviewDistributed Computing with Apache Hadoop: Technology Overview
Distributed Computing with Apache Hadoop: Technology OverviewKonstantin V. Shvachko
 
GSLIS Research Showcase Presentation (Expanded)
GSLIS Research Showcase Presentation (Expanded)GSLIS Research Showcase Presentation (Expanded)
GSLIS Research Showcase Presentation (Expanded)Bertram Ludäscher
 
Kurator: Towards Data Curation for Mere Mortals
Kurator: Towards Data Curation for Mere MortalsKurator: Towards Data Curation for Mere Mortals
Kurator: Towards Data Curation for Mere MortalsBertram Ludäscher
 
Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...
Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...
Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...Lucidworks
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...Reynold Xin
 
Data Stream Analytics - Why they are important
Data Stream Analytics - Why they are importantData Stream Analytics - Why they are important
Data Stream Analytics - Why they are importantParis Carbone
 
Energy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshopEnergy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshopQuantUniversity
 
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...Databricks
 
Reliable, Remote Computation at All Scales
Reliable, Remote Computation at All ScalesReliable, Remote Computation at All Scales
Reliable, Remote Computation at All ScalesGlobus
 
WorDS of Data Science in the Presence of Heterogenous Computing Architectures
WorDS of Data Science in the Presence of Heterogenous Computing ArchitecturesWorDS of Data Science in the Presence of Heterogenous Computing Architectures
WorDS of Data Science in the Presence of Heterogenous Computing ArchitecturesIlkay Altintas, Ph.D.
 
OpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroomOpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroomFacultad de Informática UCM
 
Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...
Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...
Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...Databricks
 
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Lucas Jellema
 
Workflowsim escience12
Workflowsim escience12Workflowsim escience12
Workflowsim escience12Weiwei Chen
 
Resource Aware Scheduling for Hadoop [Final Presentation]
Resource Aware Scheduling for Hadoop [Final Presentation]Resource Aware Scheduling for Hadoop [Final Presentation]
Resource Aware Scheduling for Hadoop [Final Presentation]Lu Wei
 
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
 Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov... Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...Databricks
 

Similar a Incremental Recomputation: Those who cannot remember the past are condemned to recompute it (20)

Studies of HPCC Systems from Machine Learning Perspectives
Studies of HPCC Systems from Machine Learning PerspectivesStudies of HPCC Systems from Machine Learning Perspectives
Studies of HPCC Systems from Machine Learning Perspectives
 
RAMSES: Robust Analytic Models for Science at Extreme Scales
RAMSES: Robust Analytic Models for Science at Extreme ScalesRAMSES: Robust Analytic Models for Science at Extreme Scales
RAMSES: Robust Analytic Models for Science at Extreme Scales
 
Distributed Computing with Apache Hadoop: Technology Overview
Distributed Computing with Apache Hadoop: Technology OverviewDistributed Computing with Apache Hadoop: Technology Overview
Distributed Computing with Apache Hadoop: Technology Overview
 
GSLIS Research Showcase Presentation (Expanded)
GSLIS Research Showcase Presentation (Expanded)GSLIS Research Showcase Presentation (Expanded)
GSLIS Research Showcase Presentation (Expanded)
 
Kurator: Towards Data Curation for Mere Mortals
Kurator: Towards Data Curation for Mere MortalsKurator: Towards Data Curation for Mere Mortals
Kurator: Towards Data Curation for Mere Mortals
 
Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...
Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...
Cross Data Center Replication for the Enterprise: Presented by Adam Williams,...
 
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
(Berkeley CS186 guest lecture) Big Data Analytics Systems: What Goes Around C...
 
Data Stream Analytics - Why they are important
Data Stream Analytics - Why they are importantData Stream Analytics - Why they are important
Data Stream Analytics - Why they are important
 
Energy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshopEnergy analytics with Apache Spark workshop
Energy analytics with Apache Spark workshop
 
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
Using Deep Learning on Apache Spark to Diagnose Thoracic Pathology from Chest...
 
Reliable, Remote Computation at All Scales
Reliable, Remote Computation at All ScalesReliable, Remote Computation at All Scales
Reliable, Remote Computation at All Scales
 
WorDS of Data Science in the Presence of Heterogenous Computing Architectures
WorDS of Data Science in the Presence of Heterogenous Computing ArchitecturesWorDS of Data Science in the Presence of Heterogenous Computing Architectures
WorDS of Data Science in the Presence of Heterogenous Computing Architectures
 
OpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroomOpenMP tasking model: from the standard to the classroom
OpenMP tasking model: from the standard to the classroom
 
Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...
Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...
Not your Father's Database: Not Your Father’s Database: How to Use Apache® Sp...
 
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
Oracle OpenWorld 2016 Review - Focus on Data, BigData, Streaming Data, Machin...
 
Oow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BIOow2016 review-db-dev-bigdata-BI
Oow2016 review-db-dev-bigdata-BI
 
Cloud
CloudCloud
Cloud
 
Workflowsim escience12
Workflowsim escience12Workflowsim escience12
Workflowsim escience12
 
Resource Aware Scheduling for Hadoop [Final Presentation]
Resource Aware Scheduling for Hadoop [Final Presentation]Resource Aware Scheduling for Hadoop [Final Presentation]
Resource Aware Scheduling for Hadoop [Final Presentation]
 
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
 Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov... Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
Apache Spark for RDBMS Practitioners: How I Learned to Stop Worrying and Lov...
 

Más de Bertram Ludäscher

Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...Bertram Ludäscher
 
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion
Games, Queries, and Argumentation Frameworks: Time for a Family ReunionGames, Queries, and Argumentation Frameworks: Time for a Family Reunion
Games, Queries, and Argumentation Frameworks: Time for a Family ReunionBertram Ludäscher
 
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!Bertram Ludäscher
 
[Flashback] Integration of Active and Deductive Database Rules
[Flashback] Integration of Active and Deductive Database Rules[Flashback] Integration of Active and Deductive Database Rules
[Flashback] Integration of Active and Deductive Database RulesBertram Ludäscher
 
[Flashback] Statelog: Integration of Active & Deductive Database Rules
[Flashback] Statelog: Integration of Active & Deductive Database Rules[Flashback] Statelog: Integration of Active & Deductive Database Rules
[Flashback] Statelog: Integration of Active & Deductive Database RulesBertram Ludäscher
 
Answering More Questions with Provenance and Query Patterns
Answering More Questions with Provenance and Query PatternsAnswering More Questions with Provenance and Query Patterns
Answering More Questions with Provenance and Query PatternsBertram Ludäscher
 
Computational Reproducibility vs. Transparency: Is It FAIR Enough?
Computational Reproducibility vs. Transparency: Is It FAIR Enough?Computational Reproducibility vs. Transparency: Is It FAIR Enough?
Computational Reproducibility vs. Transparency: Is It FAIR Enough?Bertram Ludäscher
 
Which Model Does Not Belong: A Dialogue
Which Model Does Not Belong: A DialogueWhich Model Does Not Belong: A Dialogue
Which Model Does Not Belong: A DialogueBertram Ludäscher
 
From Workflows to Transparent Research Objects and Reproducible Science Tales
From Workflows to Transparent Research Objects and Reproducible Science TalesFrom Workflows to Transparent Research Objects and Reproducible Science Tales
From Workflows to Transparent Research Objects and Reproducible Science TalesBertram Ludäscher
 
From Research Objects to Reproducible Science Tales
From Research Objects to Reproducible Science TalesFrom Research Objects to Reproducible Science Tales
From Research Objects to Reproducible Science TalesBertram Ludäscher
 
Possible Worlds Explorer: Datalog & Answer Set Programming for the Rest of Us
Possible Worlds Explorer: Datalog & Answer Set Programming for the Rest of UsPossible Worlds Explorer: Datalog & Answer Set Programming for the Rest of Us
Possible Worlds Explorer: Datalog & Answer Set Programming for the Rest of UsBertram Ludäscher
 
Deduktive Datenbanken & Logische Programme: Eine kleine Zeitreise
Deduktive Datenbanken & Logische Programme: Eine kleine ZeitreiseDeduktive Datenbanken & Logische Programme: Eine kleine Zeitreise
Deduktive Datenbanken & Logische Programme: Eine kleine ZeitreiseBertram Ludäscher
 
[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...
[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...
[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...Bertram Ludäscher
 
Dissecting Reproducibility: A case study with ecological niche models in th...
Dissecting Reproducibility:  A case study with ecological niche models  in th...Dissecting Reproducibility:  A case study with ecological niche models  in th...
Dissecting Reproducibility: A case study with ecological niche models in th...Bertram Ludäscher
 
Validation and Inference of Schema-Level Workflow Data-Dependency Annotations
Validation and Inference of Schema-Level Workflow Data-Dependency AnnotationsValidation and Inference of Schema-Level Workflow Data-Dependency Annotations
Validation and Inference of Schema-Level Workflow Data-Dependency AnnotationsBertram Ludäscher
 
An ontology-driven framework for data transformation in scientific workflows
An ontology-driven framework for data transformation in scientific workflowsAn ontology-driven framework for data transformation in scientific workflows
An ontology-driven framework for data transformation in scientific workflowsBertram Ludäscher
 
Knowledge Representation & Reasoning and the Hierarchy-of-Hypotheses Approach
Knowledge Representation & Reasoning and the Hierarchy-of-Hypotheses ApproachKnowledge Representation & Reasoning and the Hierarchy-of-Hypotheses Approach
Knowledge Representation & Reasoning and the Hierarchy-of-Hypotheses ApproachBertram Ludäscher
 
Whole-Tale: The Experience of Research
Whole-Tale: The Experience of ResearchWhole-Tale: The Experience of Research
Whole-Tale: The Experience of ResearchBertram Ludäscher
 
ETC & Authors in the Driver's Seat
ETC & Authors in the Driver's SeatETC & Authors in the Driver's Seat
ETC & Authors in the Driver's SeatBertram Ludäscher
 
From Provenance Standards and Tools to Queries and Actionable Provenance
From Provenance Standards and Tools to Queries and Actionable ProvenanceFrom Provenance Standards and Tools to Queries and Actionable Provenance
From Provenance Standards and Tools to Queries and Actionable ProvenanceBertram Ludäscher
 

Más de Bertram Ludäscher (20)

Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...Reconciling Conflicting Data Curation Actions:  Transparency Through Argument...
Reconciling Conflicting Data Curation Actions: Transparency Through Argument...
 
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion
Games, Queries, and Argumentation Frameworks: Time for a Family ReunionGames, Queries, and Argumentation Frameworks: Time for a Family Reunion
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion
 
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!
Games, Queries, and Argumentation Frameworks: Time for a Family Reunion!
 
[Flashback] Integration of Active and Deductive Database Rules
[Flashback] Integration of Active and Deductive Database Rules[Flashback] Integration of Active and Deductive Database Rules
[Flashback] Integration of Active and Deductive Database Rules
 
[Flashback] Statelog: Integration of Active & Deductive Database Rules
[Flashback] Statelog: Integration of Active & Deductive Database Rules[Flashback] Statelog: Integration of Active & Deductive Database Rules
[Flashback] Statelog: Integration of Active & Deductive Database Rules
 
Answering More Questions with Provenance and Query Patterns
Answering More Questions with Provenance and Query PatternsAnswering More Questions with Provenance and Query Patterns
Answering More Questions with Provenance and Query Patterns
 
Computational Reproducibility vs. Transparency: Is It FAIR Enough?
Computational Reproducibility vs. Transparency: Is It FAIR Enough?Computational Reproducibility vs. Transparency: Is It FAIR Enough?
Computational Reproducibility vs. Transparency: Is It FAIR Enough?
 
Which Model Does Not Belong: A Dialogue
Which Model Does Not Belong: A DialogueWhich Model Does Not Belong: A Dialogue
Which Model Does Not Belong: A Dialogue
 
From Workflows to Transparent Research Objects and Reproducible Science Tales
From Workflows to Transparent Research Objects and Reproducible Science TalesFrom Workflows to Transparent Research Objects and Reproducible Science Tales
From Workflows to Transparent Research Objects and Reproducible Science Tales
 
From Research Objects to Reproducible Science Tales
From Research Objects to Reproducible Science TalesFrom Research Objects to Reproducible Science Tales
From Research Objects to Reproducible Science Tales
 
Possible Worlds Explorer: Datalog & Answer Set Programming for the Rest of Us
Possible Worlds Explorer: Datalog & Answer Set Programming for the Rest of UsPossible Worlds Explorer: Datalog & Answer Set Programming for the Rest of Us
Possible Worlds Explorer: Datalog & Answer Set Programming for the Rest of Us
 
Deduktive Datenbanken & Logische Programme: Eine kleine Zeitreise
Deduktive Datenbanken & Logische Programme: Eine kleine ZeitreiseDeduktive Datenbanken & Logische Programme: Eine kleine Zeitreise
Deduktive Datenbanken & Logische Programme: Eine kleine Zeitreise
 
[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...
[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...
[Flashback 2005] Managing Scientific Data: From Data Integration to Scientifi...
 
Dissecting Reproducibility: A case study with ecological niche models in th...
Dissecting Reproducibility:  A case study with ecological niche models  in th...Dissecting Reproducibility:  A case study with ecological niche models  in th...
Dissecting Reproducibility: A case study with ecological niche models in th...
 
Validation and Inference of Schema-Level Workflow Data-Dependency Annotations
Validation and Inference of Schema-Level Workflow Data-Dependency AnnotationsValidation and Inference of Schema-Level Workflow Data-Dependency Annotations
Validation and Inference of Schema-Level Workflow Data-Dependency Annotations
 
An ontology-driven framework for data transformation in scientific workflows
An ontology-driven framework for data transformation in scientific workflowsAn ontology-driven framework for data transformation in scientific workflows
An ontology-driven framework for data transformation in scientific workflows
 
Knowledge Representation & Reasoning and the Hierarchy-of-Hypotheses Approach
Knowledge Representation & Reasoning and the Hierarchy-of-Hypotheses ApproachKnowledge Representation & Reasoning and the Hierarchy-of-Hypotheses Approach
Knowledge Representation & Reasoning and the Hierarchy-of-Hypotheses Approach
 
Whole-Tale: The Experience of Research
Whole-Tale: The Experience of ResearchWhole-Tale: The Experience of Research
Whole-Tale: The Experience of Research
 
ETC & Authors in the Driver's Seat
ETC & Authors in the Driver's SeatETC & Authors in the Driver's Seat
ETC & Authors in the Driver's Seat
 
From Provenance Standards and Tools to Queries and Actionable Provenance
From Provenance Standards and Tools to Queries and Actionable ProvenanceFrom Provenance Standards and Tools to Queries and Actionable Provenance
From Provenance Standards and Tools to Queries and Actionable Provenance
 

Último

Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramMoniSankarHazra
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...amitlee9823
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Delhi Call girls
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...amitlee9823
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...amitlee9823
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangaloreamitlee9823
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Researchmichael115558
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...karishmasinghjnh
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...amitlee9823
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...ZurliaSoop
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Standamitlee9823
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxolyaivanovalion
 
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...amitlee9823
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightDelhi Call girls
 

Último (20)

Capstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics ProgramCapstone Project on IBM Data Analytics Program
Capstone Project on IBM Data Analytics Program
 
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
Vip Mumbai Call Girls Thane West Call On 9920725232 With Body to body massage...
 
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
Call Girls in Sarai Kale Khan Delhi 💯 Call Us 🔝9205541914 🔝( Delhi) Escorts S...
 
Predicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science ProjectPredicting Loan Approval: A Data Science Project
Predicting Loan Approval: A Data Science Project
 
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
Chintamani Call Girls: 🍓 7737669865 🍓 High Profile Model Escorts | Bangalore ...
 
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts ServiceCall Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
Call Girls In Shalimar Bagh ( Delhi) 9953330565 Escorts Service
 
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
Call Girls Indiranagar Just Call 👗 7737669865 👗 Top Class Call Girl Service B...
 
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service BangaloreCall Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
Call Girls Begur Just Call 👗 7737669865 👗 Top Class Call Girl Service Bangalore
 
Discover Why Less is More in B2B Research
Discover Why Less is More in B2B ResearchDiscover Why Less is More in B2B Research
Discover Why Less is More in B2B Research
 
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night StandCall Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Doddaballapur Road ☎ 7737669865 🥵 Book Your One night Stand
 
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
(NEHA) Call Girls Katra Call Now 8617697112 Katra Escorts 24x7
 
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
👉 Amritsar Call Girl 👉📞 6367187148 👉📞 Just📲 Call Ruhi Call Girl Phone No Amri...
 
Abortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get CytotecAbortion pills in Jeddah | +966572737505 | Get Cytotec
Abortion pills in Jeddah | +966572737505 | Get Cytotec
 
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night StandCall Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Bellandur ☎ 7737669865 🥵 Book Your One night Stand
 
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men  🔝Mathura🔝   Escorts...
➥🔝 7737669865 🔝▻ Mathura Call-girls in Women Seeking Men 🔝Mathura🔝 Escorts...
 
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Surabaya ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night StandCall Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
Call Girls In Hsr Layout ☎ 7737669865 🥵 Book Your One night Stand
 
Midocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFxMidocean dropshipping via API with DroFx
Midocean dropshipping via API with DroFx
 
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men  🔝mahisagar🔝   Esc...
➥🔝 7737669865 🔝▻ mahisagar Call-girls in Women Seeking Men 🔝mahisagar🔝 Esc...
 
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 nightCheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
Cheap Rate Call girls Sarita Vihar Delhi 9205541914 shot 1500 night
 

Incremental Recomputation: Those who cannot remember the past are condemned to recompute it

  • 2. All-in-One (Teaser & Summary) • Incremental (re-)comp ~ Deltas ~ Derivatives • Database Queries – Datalog evaluation: Naïve è Seminaïve è Magic Sets – Incremental View Maintenance • … using Provenance Semirings! • (Scientific) Workflows (Dataflow Programming) – Make – … SDF (Sychronous Dataflow) – ... PN (Process Networks) ... COMAD • Bottom Line: – MoP = MoC +/- ∆ – T = R – I + M Ludäscher: Incremental Recomp 2
  • 3. Computing with Deltas … Ludäscher: Incremental Recomp 3 • Derivatives in Calculus (Product Rule) (F * G)’ = F * G’ + F’ * G • Delta Computations in Datalog: – R(…) :- P(…), Q(…) – Naive Eval: • Bottom-up fixpoint – Seminaive Eval: ∆ R(...) :- P(..), ∆ Q(...) ∆ R(...) :- ∆ P(..), Q(...) – ... and more (Magic Sets, ... )
  • 7. Using Provenance for Profiling: Comparing (Abstract) Execution Traces • Number of Facts: DerivedFact(H) :- g(_,_,out,H). DerivedHeadCount(C) :- C = count{ H : DerivedFact(H) }. • Number of Firings: Firing(F) :- g(_,F,out,_). FiringCount(C) :- C = count{F : Firing(F)}. e(a,b) 1 2 3 4 tc(a,b) [1] tc(a,c) [2] tc(a,d) [3] tc(a,e) [4] e(b,c) 1 2 3 tc(b,c) [1] tc(b,d) [2] tc(b,e) [3] e(c,d) 1 2 tc(c,d) [1] tc(c,e) [2] e(d,e) 1 tc(d,e) [1] 3 tc(a,d) [3] 3 3 tc(a,e) [3] 3 tc(b,e) [3] 3 4 4 e(a,b) 1 tc(a,b) [1] e(b,c) 1 tc(b,c) [1] e(c,d) 1 tc(c,d) [1] e(d,e) 1 tc(d,e) [1] 2 2 2 tc(a,c) [2] tc(b,d) [2] tc(c,e) [2] 7
  • 8. Step 1: Capturing Rule Firings (“F-trick”) • Capture rule firings and keep “witness info” (existential variables) – no premature projections in the rule head please! • Example. Instead of a given rule … tc(X,Y) :- e(X,Z), tc(Z,Y). … we rather use these two rules, keeping witnesses Z around: fire2(X,Z,Y) :- e(X,Z), tc(Z,Y). tc(X,Y) :- fire2(X,Z,Y). Example rule firings 8
  • 9. Step 2: Graph Transformation (“G-trick”) • Reify provenance atoms & firings in a labeled graph g/3 • Example for N = 2 subgoals and 1 head atom … fire2(X,Z,Y) :- e(X,Z), tc(Z,Y). % two in-edges tc(X,Y) :- fire2(X,Z,Y). % one out-edge … generates N+1 “reification rules” (Skolems are safe): g( e(X,Z), in, ffire2(X,Z,Y) ) :- fire2(X,Z,Y). g( tc(Z,Y), in, ffire2(X,Z,Y) ) :- fire2(X,Z,Y). g( ffire2(X,Z,Y), out, tc(X,Y) ) :- fire2(X,Z,Y). e(a,b) fire2(a,b,d) in tc(a,d) out tc(b,d) in Example instance generated by these rules 9
  • 10. Step 3: Using Statelog (“S-Trick”) • Use Statelog to keep record of firing rounds: – Add state (=stage) argument to provenance rules and graph relations – EDB facts are derived in state 0. – Subsequently: extract earliest round for firings and IDB facts • Example: rin : fr(S1, X) :- B1(S, X1), … , Bn(S, Xn), next(S, S1). rout : H(S, Y) :- fr(S, X). e(a,b) r1 [1] r2 [3] tc(a,b) [1]e(b,c) r2 [2] tc(b,b) [2] e(c,b) r1 [1] r2 [3] tc(c,b) [1] 10
  • 11. [r1] tc(X,Y) :- e(X,Y) [r2] tc(X,Y) :- e(X,Z), tc(Z,Y) 11
  • 13. Application Example: Protein 3D Structure Resonance Assignments (a) Sequential (b) Side-Chain Identification of Secondary Structural Elements (a) Based on Chemical Shift (b) Based on NOE Patterns Determine Distance Constraints (a) From 2D/3D NOESY Spectra (b) Calibrate Distance from Vol Determine Torsion Angle Constraints (f, y, c) (a) Based on Chemical Shift (b) Based on J-couplings Structure Determination (a) Torsion Angle Dynamics (b) Simulated Annealing High Resolution Structure Iterative Michael Gryk: We cannot assign all of the resonances in part (1), or all of the NOESY peaks in part (3) before doing step (5). So we run (5) with incomplete information and get a preliminary answer. This helps rectify ambiguities in steps 1-4 and we fix that data and run again. And again. And again. It literally can take dozens of attempts before we get a high-resolution structure. è Question of both efficiency and (months or years later) reproducibility
  • 14. A simpler example … • Some inputs and/or params of the workflow change è “smart re-run” • Similar to executing Make • … on a DAG – … eg via Datalog to compute subworkflow to be re-executed (“rescue-DAG”) • So much winning! But ... Ludäscher: Incremental Recomp 14 https://openprovenance.org/provenance-challenge/WebHome.html
  • 16. Models of Computation (MoCs) can be much more complex (streaming, state, collections, ...)
  • 17. From Models of Computation to Models of Provenance M. Anand, S. Bowers, et al., SSDBM’09
  • 18. Fine-grained, Data & MoC-aware MoP M. Anand, S. Bowers, et al., SSDBM’09
  • 20. 20 7/20/2011“Fault Tolerance through Provenance-based Recovery” Example: Checkpoint in SDF • Workflow with a mix of stateful and stateless actors . Corresponding schedule of the workflow with a fault during invocation B:2
  • 21. 21 7/20/2011“Fault Tolerance through Provenance-based Recovery” Prototype Implementation in Kepler • Upon recovery request: – SDF director calls the recovery engine • Recovery: – Restore the internal state of actors – Replay successful invocations using input tokens from provenance – Restore content of all queues – Repeat faulty invocations – Return to SDF director with information about where to resume
  • 22. 22 7/20/2011UC Davis: S. Koehler, T. McPhillips, S. Riddle, D. Zinn, B. Ludaescher Execution with Failure • Execution of the previous workflow • Checkpoints for actor B and D but not for C • At invocation B:2 - Crash • Tokens t4 and t7 - in queue • Token t9 - to be restored • Token t10 - to be deleted
  • 23. 23 7/20/2011“Fault Tolerance through Provenance-based Recovery” Stages of Checkpoint Recovery
  • 24. Provenance Recording Overhead 24 7/20/2011“Fault Tolerance through Provenance-based Recovery” Without provenance Standard provenance Extended provenance Worst-case scenario If you already capture provenance … You might as well do it right J
  • 25. 25 7/20/2011“Fault Tolerance through Provenance-based Recovery” Fault Tolerance Solutions Compared
  • 27. Hamming Numbers in a Dataflow Network Compute Hamming numbers H in order, where H = 2i · 3j · 5k, where i, j, k ≥ 0 a.k.a. regular numbers or 5-smooth numbers (numbers whose prime factors are <= 5). 27 X2 X3 X5 S2 S3 S5 Q1 Q2 Q3 M1 M2 Q4 Q5 Q6 Q7 Q8
  • 28. 1-Loop Hamming Workflow in Datalog #maxint = 100 h(1). h(Y) :- h(X), Y = 2*X. h(Y) :- h(X), Y = 3*X. h(Y) :- h(X), Y = 5*X. Output: {h(1), h(2), h(3), h(4), h(5), h(6), h(8), h(9), h(10), h(12), h(15), h(16), h(18), h(20), h(24), h(25), h(27), h(30), h(32), h(36), h(40), h(45), h(48), h(50), h(54), h(60), h(64), h(72), h(75), h(80), h(81), h(90), h(96), h(100)} 28 X2 X3 X5 S2 S3 S5 Q1 Q2 Q3 M1 M2 Q4 Q5 Q6 Q7 Q8
  • 29. 3-Loop Hamming Workflow in Datalog #maxint=100. h2(1). h2(Y) :- h2(X), Y = 2*X. h23(Y) :- h2(X). h23(Y) :- h23(X), Y = 3*X. h(Y) :- h23(X). h(Y) :- h(X), Y = 5*X. Output: {h2(1), h2(2), h2(4), h2(8), h2(16), h2(32), h2(64), h23(1), h23(2), h23(3), h23(4), h23(6), h23(8), h23(9), h23(12), h23(16), h23(18), h23(24), h23(27), h23(32), h23(36), h23(48), h23(54), h23(64), h23(72), h23(81), h23(96), h(1), h(2), h(3), h(4), h(5), h(6), h(8), h(9), h(10), h(12), h(15), h(16), h(18), h(20), h(24), h(25), h(27), h(30), h(32), h(36), h(40), h(45), h(48), h(50), h(54), h(60), h(64), h(72), h(75), h(80), h(81), h(90), h(96), h(100)} 29 X2 X3 X5 S2 S3 S5 Q1 Q2 Q3 M1 M2 Q4 Q5 Q6 Q7 Q8
  • 30. Hamming Workflow Provenance 1 2 3 5 4 6 10 9 15 25 8 12 20 18 30 50 27 45 75 16 24 40 36 60 100 125 54 90 150 32 48 80 72 120 200 81 135 225 250 108 180 300 375 64 96 160 144 240 400 162 270 450 500 216 360 600 625 243 405 675 750 128 192 320 288 480 800 324 540 900 1000 432 720 486 810 256 384 640 576 960 648 729 864 972 512 768 1 2 3 5 4 6 10 9 15 25 8 12 20 18 30 50 27 45 75 16 24 40 36 60 100 125 54 90 150 32 48 80 72 120 200 81 135 225 250 108 180 300 375 64 96 160 144 240 400 162 270 450 500 216 360 600 625 243 405 675 750 128 192 320 288 480 800 324 540 900 1000 432 720 486 810 256 384 640 576 960 648 729 864 972 512 768 1-Loop variant ("Fish”) 3-Loop variant ("Sail”) 30
  • 31. Computational / Workflow Thinking: The limits of my language are the limits of my world … • Vanilla Process Network • Functional Programming Dataflow Network • XML Transformation Network • Collection-oriented Modeling & Design framework (COMAD) – “Look Ma: No Shims!”
  • 33. module.__build_class__ module.__build_class__ simulate_data_collection 180 return 180 run_logger 201 return 201 new_image_file 230 parser 231 cassette_id 236 add_option 241 add_option 246 add_option 248 set_usage 251 parse_args 251 args 251 options 254 module.len 24 cassette_id 24 sample_score_cutoff 24 data_redundancy 24 calibration_image_file 30 exists 33 exists 32 filepath 34 module.remove 33 exists 32 filepath 34 module.remove 33 exists 32 filepath 34 module.remove 36 run_log 37 write 38 str(sample_score_cutoff) 38 write 38 str(sample_score_cutoff) 49 str.format 49 sample_spreadsheet_file 50 spreadsheet_rows cassette_q55_spreadsheet.csv 50 spreadsheet_rows(sample_spreadsheet_file) 51 str.format 51 write 50 sample_name 50 sample_quality 61 calculate_strategy 61 rejected_sample 61 energies 61 accepted_sample 61 num_images 72 str.format 72 write 73 open 73 rejection_log 74 str.format 74 TextIOWrapper.write 50 spreadsheet_rows 50 spreadsheet_rows(sample_spreadsheet_file) 51 str.format 51 write 50 sample_name 50 sample_quality 61 calculate_strategy 61 rejected_sample 61 energies 61 accepted_sample 61 num_images 90 str.format 90 write 91 sample_id 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image calibration.img 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 50 spreadsheet_rows 50 spreadsheet_rows(sample_spreadsheet_file) 51 str.format 51 write 50 sample_name 50 sample_quality 61 calculate_strategy 61 rejected_sample 61 energies 61 accepted_sample 61 num_images 90 str.format 90 write 91 sample_id 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 92 collect_next_image(casset ... _{frame_number:03d}.raw') 93 str.format 93 write 92 energy 92 frame_number 92 intensity 92 raw_image_file 106 str.format 106 transform_image 106 corrected_image_file 106 total_intensity 106 pixel_count 107 str.format 107 write 118 average_intensity 119 open 119 collection_log_file 120 module.writer 120 collection_log 121 writer.writerow 92 collect_next_image 50 spreadsheet_rows 128 return run/run_log.txt run/rejected_samples.txt run/raw/q55/DRT240/e10000/image_001.raw run/data/DRT240/DRT240_10000eV_001.img run/collected_images.csv run/raw/q55/DRT240/e10000/image_002.raw run/data/DRT240/DRT240_10000eV_002.img run/raw/q55/DRT240/e11000/image_001.raw run/data/DRT240/DRT240_11000eV_001.img run/raw/q55/DRT240/e11000/image_002.raw run/data/DRT240/DRT240_11000eV_002.img run/raw/q55/DRT240/e12000/image_001.raw run/data/DRT240/DRT240_12000eV_001.img run/raw/q55/DRT240/e12000/image_002.raw run/data/DRT240/DRT240_12000eV_002.img run/raw/q55/DRT322/e10000/image_001.raw run/data/DRT322/DRT322_10000eV_001.img run/raw/q55/DRT322/e10000/image_002.raw run/data/DRT322/DRT322_10000eV_002.img run/raw/q55/DRT322/e11000/image_001.raw run/data/DRT322/DRT322_11000eV_001.img run/raw/q55/DRT322/e11000/image_002.raw run/data/DRT322/DRT322_11000eV_002.img NW: Python Model of Computation (MoC) Ludäscher: Provenance Back & Forth 33 NW+YW: Workflow Model of Computation (MoC)
  • 34. From MoC to MoP via Observables • Model of Computation MoC – specification/algorithm to compute Outputs = MoC(Wf,Params,Inputs) – a director or scheduler implements MoC – gives rise to formal notions of • computation (aka run) R – Formalisms to define M? • Model of Provenance MoP – associate with a MoC a “default” MoP (= MoC ± Δ) – the MoP is a “trimmed” MoC • T = R – I + M – Trace = Run – Ignored-observables + Modeled-observables • Observables (of a MoC / MoP) – functional observables (may influence output o) • token rate, notions of firing, … – non-functional observables (not part of M, do not influence o) • token timestamp, size, … (unless the MoC cares about those)
  • 35. All-in-One (Summary) • Provenance & Incremental Recomputation – What You See (Think/Model) Is What You Get! – WYTIWYG (“witty-wig”) • These assembly language instructions • … implementing these VM Instructions • … in this programming language • ... implementing an algorithm • ... that schedules a workflows • ... that applies this bioinformatics method • … to test this scientific hypothesis .... è Need to capture provenance at the “right level” – … for efficiency – ... for transparency & understanding • Bottom Line: MoP = MoC +/- ∆ – T = R – I + M – Provenance Trace (MoP thing) = Run (MoC thing) – “nah..” + “yeah!” Ludäscher: Incremental Recomp 35
  • 37. Argumentation Frameworks & Game Provenance a b 1 c 3 d e f 1 g 3 m h 1 k l oo n oo oo oo 2 2 2 Ludäscher: Incremental Recomp 37 • Query evaluation and logic- based argumentation can be understood as a game! • One logic rule to rule them all … win(X) :- move(X,Y), not win(Y) • node color => edge color – good vs bad moves • good moves = natural, new notion of provenance! • Implement, e.g. using Answer Set Programming Aside: Games ~ Argumentation Frameworks win(X) :- move(X,Y), not win(Y) def(X) :- attacks(Y,X), not def(Y)
  • 38. Game Provenance W bad Dbad L winning bad drawing n/a delaying n/a n/a a b 1 c 3 d e f 1 g 3 m h 1 k l oo n oo oo oo 2 2 2 Ludäscher: Incremental Recomp 38 Extracting Provenance: ü Why/how win(x)? • [x] –G.(R.G)*–> [y] ü Why-not win(x)? • [x] –(R.G)*–> [y] • [x] –(Y+)–> [y] Move types