Graph: composable production systems in Clojure. Jason Wolfe Strange Loop 12
|
|
- Clarence Parker
- 5 years ago
- Views:
Transcription
1 Grah: comosable roduction systems in Clojure Jason Wolfe Strange Loo 12
2 Motivation Interesting software has: many comonents comlex web of deendencies Develoers want: simle, factored code easy testability tools for monitoring and debugging
3 Grah Grah is a simle, declarative way to exress system comosition A Grah is just a ma of functions that can deend on revious oututs Grahs are easy to create, reason about, test, and build uon i x {:x (fnk [i]...) :y (fnk [j x]...) :z (fnk [x y]...)} z j y inut {:i 1 :j 2} outut {:x 2 :y 5 :z 12}
4 Outline Prismatic Design Goals Grah: secs and comilation {:x (fnk [i]...) :y (fnk [j x]...) :z (fnk [x y]...)} Alications newsfeed generation roduction services resonse resonse
5 Prismatic Personalized, interest-based newsfeeds Build crawlers, toic models, grah analysis, story clustering,... Backend 99.9% Clojure Personalized ranked feeds in real-time (~200ms) getrismatic.com
6 Prismatic s roduction API service >100 comonents storage systems caches & indices ranking algorithms ec2-keys index snashots doc index Coordinate in intricate dance to serve feeds fast SQL feed-builder to news handlers server Relentlessly refactored env log store observer Still dozens of to-level comonents in comlex deendency network service-name ubsub logger service-info Parameters Remote Storage Caches, Indices Fns, Other Thread Pools udate index
7 The feed builder user query 20+ stes from query to ersonalized ranking, 20+ arameters Not a simle ieline resonse
8 The feed builder user query 20+ stes from query to ersonalized ranking, 20+ arameters Not a simle ieline > 10 feed tyes w/ slightly different stes, configurations resonse resonse
9 The feed builder user query 20+ stes from query to ersonalized ranking, 20+ arameters Not a simle ieline > 10 feed tyes w/ slightly different stes, configurations Suort for early stoing resonse resonse
10 Theme: comlexity of comosition Previous imlementations: defns with huge lets Unwieldy for large systems with comlex or olymorhic deendencies Hard to test, debug, and monitor resonse resonse
11 The monster let Tens of arameters, not comositional Mocks/olymorhic flow difficult Ad hoc monitoring & shutdown logic er item Core issue: structure of (de)comosition is locked u in an oaque function (defn start [{:keys [a,z]}] (let [s1 (store a...) s2 (store b...) db (sql-db c) t2 (cron s2 db...)... srv (server...)] (fn shutdown [] (.sto srv)... (.flush s1))))
12 Prismatic software engineering hilosohy Fine-grained, comosable abstractions (FCA) Libraries >> Frameworks Strive for simlicity, work with the language Grah is a FCA for comosition
13 Goal: declarative Declarative secifications fix monster let Exlicitly list comonents, deendencies Enable abstractions over comonents, reasoning about comosition Not new: Pregel, Dryad, Storm,...
14 Goal: simle Distill this idea to its simlest, most idiomatic exression a Grah sec is just a (Clojure) ma no XML files or interface hell Grahs are ordinary data maniulate them for free --> unexected alications It is better to have 100 functions oerate on one data structure than 10 functions on 10 data structures. - Alan Perlis
15 From let to Grah m xs n m2 (defn stats [{:keys [xs]}] (let [n (count xs) m (/ (sum xs) n) m2 (/ (sum sq xs) n) v (- m2 (* m m))] {:n n :m m :m2 m2 :v v})) v {:n (fn k [xs] (count xs)) :m (fn k [xs n] (/ (sum xs) n)) :m2 (fn k [xs n] (/ (sum sq xs) n)) :v (fn k [m m2] (- m2 (* m m)))}
16 Bring on the fnk fnk = keyword function Similar to {:keys []} destructuring nicer ot. arg. suort asserts that keys exist metadata about args Quite useful in itself Only macros in Grah (defnk foo [x y [s 1]] (+ x (* y s))) (= 8 (foo {:x 2 :y 3 :s 2})) (= 5 (foo {:x 2 :y 3})) (thrown? Ex. (foo {:x 2})) (= (meta foo) {:req-ks #{:x :y}} :ot-ks #{:s})
17 A Grah Secification A Grah is just a ma from keywords to fnks Required keys of each fnk secify grah relationshis Entire grah secifies a fnk to ma of results xs n {:n (fnk [xs] (count xs)) :m (fnk [xs n] (/ (sum xs) n)) :m2 (fnk [xs n] (/ (sum sq xs) n)) :v (fnk [m m2] (- m2 (* m m)))} m m2 v
18 A Grah Secification A Grah is just a ma from keywords to fnks Required keys of each fnk secify grah relationshis Entire grah secifies a fnk to ma of results xs n {:xs [ ]} {:n (fnk [xs] (count xs)) :m (fnk [xs n] (/ (sum xs) n)) :m2 (fnk [xs n] (/ (sum sq xs) n)) :v (fnk [m m2] (- m2 (* m m)))} m m2 v
19 A Grah Secification A Grah is just a ma from keywords to fnks Required keys of each fnk secify grah relationshis Entire grah secifies a fnk to ma of results xs n {:xs [ ]} {:n 4(fnk [xs] (count xs)) :m (fnk [xs n] (/ (sum xs) n)) :m2 (fnk [xs n] (/ (sum sq xs) n)) :v (fnk [m m2] (- m2 (* m m)))} m m2 v
20 A Grah Secification A Grah is just a ma from keywords to fnks Required keys of each fnk secify grah relationshis Entire grah secifies a fnk to ma of results xs n {:xs [ ]} {:n 4(fnk [xs] (count xs)) :m 3(fnk [xs n] (/ (sum xs) n)) :m2 (fnk [xs n] (/ (sum sq xs) n)) :v (fnk [m m2] (- m2 (* m m)))} m m2 v
21 A Grah Secification A Grah is just a ma from keywords to fnks Required keys of each fnk secify grah relationshis Entire grah secifies a fnk to ma of results xs n {:xs [ ]} {:n 4(fnk [xs] (count xs)) :m 3(fnk [xs n] (/ (sum xs) n)) :m (fnk [xs n] (/ (sum sq xs) n)) :v (fnk [m m2] (- m2 (* m m)))} m m2 v
22 A Grah Secification A Grah is just a ma from keywords to fnks Required keys of each fnk secify grah relationshis Entire grah secifies a fnk to ma of results xs n {:xs [ ]} {:n 4(fnk [xs] (count xs)) :m 3(fnk [xs n] (/ (sum xs) n)) :m (fnk [xs n] (/ (sum sq xs) n)) :v 3.5 (fnk [m m2] (- m2 (* m m)))} m m2 v
23 Comiling Grahs Comile grah to fnk that returns ma of oututs (def g {:n (fnk [xs]...) :m (fnk [xs n]...) :m2 (fnk [xs n]...) :v (fnk [m m2]...)}) (def stats (comile g)) (= (stats {:xs [ ]}) {:n 4 :m 3 :m :v 3.5)
24 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked (def g {:n (fnk [xs]...) :m (fnk [xs n]...) :m2 (fnk [xs n]...) :v (fnk [m m2]...)}) (def stats (comile g)) (= (thrown? (stats {:xs [ ]}) {:n (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
25 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked can return lazy ma (def g {:n (fnk [xs]...) :m (fnk [xs n]...) :m2 (fnk [xs n]...) :v (fnk [m m2]...)}) (def stats (comile (lazy-comile g)) g)) (thrown? (= (stats (:m (stats {:xs {:xs [1 2 [13 5]})) 6]}) {:n 3) (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
26 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked can return lazy ma can auto-arallelize (def g {:n (fnk [xs]...) :m (fnk [xs n]...) :m2 (fnk [xs n]...) :v (fnk [m m2]...)}) (def stats (comile (lazy-comile (ar-comile g)) g)) (thrown? (= (stats (:m (:v (stats {:xs {:xs [1 2 [13 5]})) 6]}) {:n 3) 3.5) (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
27 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked can return lazy ma can auto-arallelize (def g {:n 2(fnk [xs]...) :m (fnk [xs n]...) :m2 (fnk [xs n]...) :v (fnk [m m2]...)}) (def stats (comile (lazy-comile (ar-comile g)) g)) (thrown? (= (stats (:m (:v (stats {:xs {:xs [1 2 [13 5]})) 6]}) {:n 3) 3.5) (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
28 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked can return lazy ma can auto-arallelize (def g {:n 2(fnk [xs]...) :m 3(fnk [xs n]...) :m2 13 (fnk [xs n]...) :v (fnk [m m2]...)}) (def stats (comile (lazy-comile (ar-comile g)) g)) (thrown? (= (stats (:m (:v (stats {:xs {:xs [1 2 [13 5]})) 6]}) {:n 3) 3.5) (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
29 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked can return lazy ma can auto-arallelize (def g {:n 2(fnk [xs]...) :m 3(fnk [xs n]...) :m2 13 (fnk [xs n]...) :v 4(fnk [m m2]...)}) (def stats (comile (lazy-comile (ar-comile g)) g)) (thrown? (= (stats (:m (:v (stats {:xs {:xs [1 2 [13 5]})) 6]}) {:n 3) 3.5) (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
30 Comiling Grahs Comile grah to fnk that returns ma of oututs error checked can return lazy ma can auto-arallelize With more tooling, also comile grahs to roduction services Could comile to crossmachine toologies,... (def g {:n 2(fnk [xs]...) :m 3(fnk [xs n]...) :m2 13 (fnk [xs n]...) :v 4(fnk [m m2]...)}) (def stats (comile (lazy-comile (ar-comile g)) g)) (thrown? (= (stats (:m (:v (stats {:xs {:xs [1 2 [13 5]})) 6]}) {:n 3) 3.5) (Ex. 4 missing :m 3 :xs ) (stats :m {:x:v 1})) 3.5)
31 Before: feed builder Real-time ersonally ranked feeds 100-line fn exressed core comosition logic, ~20 arams several nested lets, escae hatches Comonent olymorhism (10 flavors of feeds) kludge of cases ball of multimethods rotocols + hacks resonse resonse
32 Feed builder in Grah Default arameters Grah with holes catures shared logic x y (def default-arams {:alha :hasers :stun}) resonse (def artial-grah {:query (fnk...)... :y (fnk [a x]..)... :res (fnk...)})
33 Feed builder in Grah Each feed tye secifies udated arameters missing/new grah nodes To make feed fn, just merge in udates comile resulting grah (def default-arams..) (def artial-grah..) (def toic-feed (comile-feed-fn {:alha 0.2} {:x (fnk...) :q (fnk...)})) (defn comile-feed-fn [arams nodes] (let [ (merge default-arams arams) g (comile (merge artial-grah nodes))] (fn feed [req] (g (merge req)))))
34 After: feed builder Simler, cleaner code Polymorhism is trivial (def toic-feed (comile-feed-fn {:alha 0.2} {:x (fnk...) :q (fnk...)})) (def home-feed (comile-feed-fn {:alha 0.4} {:x (fnk...) :r (fnk...) :s (fnk...)}))
35 After: feed builder Simler, cleaner code Polymorhism is trivial Early stoing for free via lazy comilation tt resonse
36 After: feed builder Simler, cleaner code Polymorhism is trivial Early stoing for free via lazy comilation tt (let [h (home-feed req)] (:tt h)) resonse
37 After: feed builder Simler, cleaner code Polymorhism is trivial Early stoing for free via lazy comilation v tt (let [h (home-feed req)] [(:tt h) (:v h)]) resonse
38 Also: easy to analyze Detect mis-wirings at grah comile time ositional constructor N N N N N N N N N N Avoid wrong # of args errors, arg ordering bugs N N N N N N N N Visualize grahs in 5 loc N N (defn edges [grah] (for [[k f] grah :let [{:keys [req-ks ot-ks]} (meta f)] arent (concat req-ks ot-ks)] [arent k]))
39 Also: easy to monitor Add monitoring and error reorting by maing over fnks Since a Grah is a Ma, can just use ma-vals node n avg ms errors :fetch :rank :client (defn observe-grah [g] (into {} (for [[k f] g] [k (with-meta (fn [m] (let [v (f m)] (rint k m v) v)) (meta f))])))
40 Examle 2: roduction API service (def ai-service (service {:service-name ai :backend-ort :server-threads 100} {:store1 (instance store {:tye :s3...}) :memo (fnk [store1] {:resource...})... :ai-server (...)}))
41 Service definitions Service definition = resource grah arameter ma + Crane reads arams for rovisioning, deloyment Grah = service code arameters are args cron jobs, handlers at leaves (def ai-service (service {:service-name ai :backend-ort :server-threads 100} {:store1 (instance store {:tye :s3...}) :memo (fnk [store1] {:resource...})... :ai-server (...)}))
42 Service definitions Service definition = resource grah arameter ma + Crane reads arams for rovisioning, deloyment Grah = service code arameters are args cron jobs, handlers at leaves (def ai-service (service {:service-name ai ec2-keys doc index index snashots :backend-ort :server-threads feed-builder 100} handlers server SQL {:store1 (instance store {:tye :s3...}) :memo observer log store (fnk [store1] service-name {:resource ubsub...}) logger service-info... Parameters Remote Storage Caches, Indices Fns, Other Thread Pools :ai-server (...)})) env udate index to news
43 Service built-ins arameters Parameters and grah nodes available by convention Interface with deloyment, other services, dashboard Smartly reconfigure with env -- test/staging/rod {:env :rod :instance-id i-123abc :ec2-keys... } resources {:nameserver... :observer... :ubsub... }
44 Nodes build Resources Resource = comonent e.g., database, cache, fn Plus metadata for shutdown, handlers,... Reresent as a ma Library of resources that work with builtins data stores rocessing queues recurring tasks... (defnk refreshing-atom [f eriod] (let [a (atom (f)) e (Exec/newExec)] (.schedatfixedrate e #(reset! a (f)) eriod) {:res a :shutdown #(.sd e)}))
45 Starting and Stoing Transform resource grah to ordinary grah ma over leaves, ull out :resource assoc new :shutdown key Run grah to start service, get clean shutdown hook (defn start-service [sec] ((->> (:grah sec) resource-transform comile) (:arameters sec))) (def ai (start-service ai-service)) ((:shutdown ai))
46 Sub-Comonents ec2-keys index snashots doc index feed-builder to news SQL handlers server env log store observer udate index service-name service-info logger ubsub Parameters Remote Storage Caches, Indices Fns, Other Thread Pools
47 Sub-Comonents ec2-keys index snashots doc index feed-builder to news SQL handlers server env log store observer udate index service-name service-info logger ubsub Parameters Remote Storage Caches, Indices Fns, Other Thread Pools
48 Sub-Comonents ec2-keys index snashots doc index feed-builder to news SQL handlers server env log store observer udate index service-name service-info logger ubsub Parameters Remote Storage Caches, Indices Fns, Other Thread Pools
49 Sub-Comonents Nodes can themselves be Grahs just nested mas Package comonents as sub-grahs Sub-grahs are transarent debugging monitoring imerfect abstractions (def write-back-cache {:store (instance store...) :write-queue (instance queue...) :eriodic-rune (instance task...)})
50 Easy system testing Old xxx-line lets were imossible to test With grah, just merge in mock node fnks no elaborate mocks objects or redefs automatic, safe shutdown (deftest home-feed-systest (test-service (assoc ai-service :doc-index (fnk [] {:res fake-idx}) :get-user (fnk [] {:res (constantly me)})) (is (= (titles (slur url)) [ doc1 doc2 ]))))
51 Summary Grah = way exress comlex comositions declaratively simly Widely alicable Simler code, better tooling Hoe to oen source soon (we re hiring!) resonse resonse
Why Prismatic Goes Faster With Clojure
Why Prismatic Goes Faster With Clojure One Slide Summary Fine-grained Monolithic 1. Composable > Frameworks Abstractions 2. lets you make FCA 3.
More informationShuigeng Zhou. May 18, 2016 School of Computer Science Fudan University
Query Processing Shuigeng Zhou May 18, 2016 School of Comuter Science Fudan University Overview Outline Measures of Query Cost Selection Oeration Sorting Join Oeration Other Oerations Evaluation of Exressions
More informationJune 27, 2014 EuroClojure 2014 Krakow, Poland. Components. Just Enough
June 27, 2014 EuroClojure 2014 Krakow, Poland Components Just Enough Structure @stuartsierra Presentation Business Logic DB SMS Email Presentation Thread Pool Business Logic Queues Public API Private API
More informationArgo Programming Guide
Argo Programming Guide Evangelia Kasaaki, asmus Bo Sørensen February 9, 2015 Coyright 2014 Technical University of Denmark This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International
More information1.5 Case Study. dynamic connectivity quick find quick union improvements applications
. Case Study dynamic connectivity quick find quick union imrovements alications Subtext of today s lecture (and this course) Stes to develoing a usable algorithm. Model the roblem. Find an algorithm to
More informationObject and Native Code Thread Mobility Among Heterogeneous Computers
Object and Native Code Thread Mobility Among Heterogeneous Comuters Bjarne Steensgaard Eric Jul Microsoft Research DIKU (Det. of Comuter Science) One Microsoft Way University of Coenhagen Redmond, WA 98052
More informationUsing Standard AADL for COMPASS
Using Standard AADL for COMPASS (noll@cs.rwth-aachen.de) AADL Standards Meeting Aachen, Germany; July 5 8, 06 Overview Introduction SLIM Language Udates COMPASS Develoment Roadma Fault Injections Parametric
More informationA Petri net-based Approach to QoS-aware Configuration for Web Services
A Petri net-based Aroach to QoS-aware Configuration for Web s PengCheng Xiong, YuShun Fan and MengChu Zhou, Fellow, IEEE Abstract With the develoment of enterrise-wide and cross-enterrise alication integration
More informationControl plane and data plane. Computing systems now. Glacial process of innovation made worse by standards process. Computing systems once upon a time
Classical work Architecture A A A Intro to SDN A A Oerating A Secialized Packet A A Oerating Secialized Packet A A A Oerating A Secialized Packet A A Oerating A Secialized Packet Oerating Secialized Packet
More informationAutonomic Physical Database Design - From Indexing to Multidimensional Clustering
Autonomic Physical Database Design - From Indexing to Multidimensional Clustering Stehan Baumann, Kai-Uwe Sattler Databases and Information Systems Grou Technische Universität Ilmenau, Ilmenau, Germany
More informationAUTOMATIC GENERATION OF HIGH THROUGHPUT ENERGY EFFICIENT STREAMING ARCHITECTURES FOR ARBITRARY FIXED PERMUTATIONS. Ren Chen and Viktor K.
inuts er clock cycle Streaming ermutation oututs er clock cycle AUTOMATIC GENERATION OF HIGH THROUGHPUT ENERGY EFFICIENT STREAMING ARCHITECTURES FOR ARBITRARY FIXED PERMUTATIONS Ren Chen and Viktor K.
More informationhas been retired This version of the software Sage Timberline Office Get Started Document Management 9.8 NOTICE
This version of the software has been retired Sage Timberline Office Get Started Document Management 9.8 NOTICE This document and the Sage Timberline Office software may be used only in accordance with
More informationLecture 18. Today, we will discuss developing algorithms for a basic model for parallel computing the Parallel Random Access Machine (PRAM) model.
U.C. Berkeley CS273: Parallel and Distributed Theory Lecture 18 Professor Satish Rao Lecturer: Satish Rao Last revised Scribe so far: Satish Rao (following revious lecture notes quite closely. Lecture
More informationAn Indexing Framework for Structured P2P Systems
An Indexing Framework for Structured P2P Systems Adina Crainiceanu Prakash Linga Ashwin Machanavajjhala Johannes Gehrke Carl Lagoze Jayavel Shanmugasundaram Deartment of Comuter Science, Cornell University
More information32. Common Concurrency Problems.
32. Common Concurrency Problems. Oerating System: Three Easy Pieces AOS@UC 1 Common Concurrency Problems More recent work focuses on studying other tyes of common concurrency bugs. w Take a brief look
More informationChapter 8: Adaptive Networks
Chater : Adative Networks Introduction (.1) Architecture (.2) Backroagation for Feedforward Networks (.3) Jyh-Shing Roger Jang et al., Neuro-Fuzzy and Soft Comuting: A Comutational Aroach to Learning and
More informationSimulating Ocean Currents. Simulating Galaxy Evolution
Simulating Ocean Currents (a) Cross sections (b) Satial discretization of a cross section Model as two-dimensional grids Discretize in sace and time finer satial and temoral resolution => greater accuracy
More informationCOMP Parallel Computing. BSP (1) Bulk-Synchronous Processing Model
COMP 6 - Parallel Comuting Lecture 6 November, 8 Bulk-Synchronous essing Model Models of arallel comutation Shared-memory model Imlicit communication algorithm design and analysis relatively simle but
More informationThe Anubis Service. Paul Murray Internet Systems and Storage Laboratory HP Laboratories Bristol HPL June 8, 2005*
The Anubis Service Paul Murray Internet Systems and Storage Laboratory HP Laboratories Bristol HPL-2005-72 June 8, 2005* timed model, state monitoring, failure detection, network artition Anubis is a fully
More informationSpace-efficient Region Filling in Raster Graphics
"The Visual Comuter: An International Journal of Comuter Grahics" (submitted July 13, 1992; revised December 7, 1992; acceted in Aril 16, 1993) Sace-efficient Region Filling in Raster Grahics Dominik Henrich
More informationRandomized algorithms: Two examples and Yao s Minimax Principle
Randomized algorithms: Two examles and Yao s Minimax Princile Maximum Satisfiability Consider the roblem Maximum Satisfiability (MAX-SAT). Bring your knowledge u-to-date on the Satisfiability roblem. Maximum
More informationEquality-Based Translation Validator for LLVM
Equality-Based Translation Validator for LLVM Michael Ste, Ross Tate, and Sorin Lerner University of California, San Diego {mste,rtate,lerner@cs.ucsd.edu Abstract. We udated our Peggy tool, reviously resented
More informationISO/IEC , the standard for Modula-2: Changes, Clarications and Additions. June 27, 1996
ISO/IEC 10514-1, the standard for Modula-2: Changes, Clarications and Additions M. Schonhacker Vienna University of Technology Austria schoenhacker@eiunix.tuwien.ac.at C. Pronk Delft University of Technology
More informationEfficient Processing of Top-k Dominating Queries on Multi-Dimensional Data
Efficient Processing of To-k Dominating Queries on Multi-Dimensional Data Man Lung Yiu Deartment of Comuter Science Aalborg University DK-922 Aalborg, Denmark mly@cs.aau.dk Nikos Mamoulis Deartment of
More informationIdentity-sensitive Points-to Analysis for the Dynamic Behavior of JavaScript Objects
Identity-sensitive Points-to Analysis for the Dynamic Behavior of JavaScrit Objects Shiyi Wei and Barbara G. Ryder Deartment of Comuter Science, Virginia Tech, Blacksburg, VA, USA. {wei,ryder}@cs.vt.edu
More informationIntroduction to Parallel Algorithms
CS 1762 Fall, 2011 1 Introduction to Parallel Algorithms Introduction to Parallel Algorithms ECE 1762 Algorithms and Data Structures Fall Semester, 2011 1 Preliminaries Since the early 1990s, there has
More informationInformation Flow Based Event Distribution Middleware
Information Flow Based Event Distribution Middleware Guruduth Banavar 1, Marc Kalan 1, Kelly Shaw 2, Robert E. Strom 1, Daniel C. Sturman 1, and Wei Tao 3 1 IBM T. J. Watson Research Center Hawthorne,
More informationPREDICTING LINKS IN LARGE COAUTHORSHIP NETWORKS
PREDICTING LINKS IN LARGE COAUTHORSHIP NETWORKS Kevin Miller, Vivian Lin, and Rui Zhang Grou ID: 5 1. INTRODUCTION The roblem we are trying to solve is redicting future links or recovering missing links
More informationAn empirical analysis of loopy belief propagation in three topologies: grids, small-world networks and random graphs
An emirical analysis of looy belief roagation in three toologies: grids, small-world networks and random grahs R. Santana, A. Mendiburu and J. A. Lozano Intelligent Systems Grou Deartment of Comuter Science
More informationSimulation Modelling Practice and Theory
Simulation Modelling Practice and Theory 19 (2011) 494 515 Contents lists available at ScienceDirect Simulation Modelling Practice and Theory journal homeage: www.elsevier.com/locate/simat Simulating and
More informationAN ANALYTICAL MODEL DESCRIBING THE RELATIONSHIPS BETWEEN LOGIC ARCHITECTURE AND FPGA DENSITY
AN ANALYTICAL MODEL DESCRIBING THE RELATIONSHIPS BETWEEN LOGIC ARCHITECTURE AND FPGA DENSITY Andrew Lam 1, Steven J.E. Wilton 1, Phili Leong 2, Wayne Luk 3 1 Elec. and Com. Engineering 2 Comuter Science
More informationA Metaheuristic Scheduler for Time Division Multiplexed Network-on-Chip
Downloaded from orbit.dtu.dk on: Jan 25, 2019 A Metaheuristic Scheduler for Time Division Multilexed Network-on-Chi Sørensen, Rasmus Bo; Sarsø, Jens; Pedersen, Mark Ruvald; Højgaard, Jasur Publication
More information7. Extensions and Annotations. Prof. Nagl, Informatik 3 (Software Engineering)
7. Extensions and Annotations 1 Extensions and Annotations Aims Further imortant asects yielding to extensions o / annotations to architectural languages: not urther isolated view but details o ex. architecture
More informationFast Distributed Process Creation with the XMOS XS1 Architecture
Communicating Process Architectures 20 P.H. Welch et al. (Eds.) IOS Press, 20 c 20 The authors and IOS Press. All rights reserved. Fast Distributed Process Creation with the XMOS XS Architecture James
More informationAttribute Grammars Fly First-Class
Attribute Grammars Fly First-Class How to do Asect Oriented Programming in Haskell Marcos Viera Instituto de Comutación Universidad de la Reública Montevideo, Uruguay mviera@fing.edu.uy S. Doaitse Swierstra
More informationGDP: Using Dataflow Properties to Accurately Estimate Interference-Free Performance at Runtime
GDP: Using Dataflow Proerties to Accurately Estimate Interference-Free Performance at Runtime Magnus Jahre Deartment of Comuter Science Norwegian University of Science and Technology (NTNU) Email: magnus.jahre@ntnu.no
More informationMitigating the Impact of Decompression Latency in L1 Compressed Data Caches via Prefetching
Mitigating the Imact of Decomression Latency in L1 Comressed Data Caches via Prefetching by Sean Rea A thesis resented to Lakehead University in artial fulfillment of the requirement for the degree of
More informationGENERIC PILOT AND FLIGHT CONTROL MODEL FOR USE IN SIMULATION STUDIES
AIAA Modeling and Simulation Technologies Conference and Exhibit 5-8 August 22, Monterey, California AIAA 22-4694 GENERIC PILOT AND FLIGHT CONTROL MODEL FOR USE IN SIMULATION STUDIES Eric N. Johnson *
More informationOperations on Singly (Simply) Linked Lists
LEC. 4 College of Information Technology / Software Deartment.. Data Structures / Second Class / 2016-2017 InsertFirst Oerations on Singly (Simly) Linked Lists The insertfirst() method of LinkList inserts
More informationIncremental Planning of Multi-layer Elastic Optical Networks
Incremental Planning of Multi-layer Elastic Otical Networks P. Paanikolaou, K. Christodoulooulos, and E. Varvarigos School of Electrical and Comuter Engineering, National Technical University of Athens,
More information36. I/O Devices. Operating System: Three Easy Pieces 1
36. I/O Devices Oerating System: Three Easy Pieces AOS@UC 1 I/O Devices I/O is critical to comuter system to interact with systems. Issue : w How should I/O be integrated into systems? w What are the general
More informationOMNI: An Efficient Overlay Multicast. Infrastructure for Real-time Applications
OMNI: An Efficient Overlay Multicast Infrastructure for Real-time Alications Suman Banerjee, Christoher Kommareddy, Koushik Kar, Bobby Bhattacharjee, Samir Khuller Abstract We consider an overlay architecture
More information33. Event-based Concurrency
33. Event-based Concurrency Oerating System: Three Easy Pieces AOS@UC 1 Event-based Concurrency A different style of concurrent rogramming without threads w Used in GUI-based alications, some tyes of internet
More informationA Deep Architecture for Matching Short Texts
A Dee Architecture for Matching Short Texts Zhengdong Lu Noah s Ark Lab Huawei Technologies Co. Ltd. Sha Tin, Hong Kong Lu.Zhengdong@huawei.com Hang Li Noah s Ark Lab Huawei Technologies Co. Ltd. Sha Tin,
More informationSPITFIRE: Scalable Parallel Algorithms for Test Set Partitioned Fault Simulation
To aear in IEEE VLSI Test Symosium, 1997 SITFIRE: Scalable arallel Algorithms for Test Set artitioned Fault Simulation Dili Krishnaswamy y Elizabeth M. Rudnick y Janak H. atel y rithviraj Banerjee z y
More informationMSO Exam January , 17:00 20:00
MSO 2014 2015 Exam January 26 2015, 17:00 20:00 Name: Student number: Please read the following instructions carefully: Fill in your name and student number above. Be reared to identify yourself with your
More informationBGP Path visibility issues.
BGP Path visibility issues Pierre.Francois@UCLouvain.be ToC ibgp draft-ietf-idr-add-aths Why doing Add-aths draft-ietf-idr-add-aths-guidelines (draft-uttaro-idr-add-aths-guidelines) Why only a small subset
More informationProtecting Mobile Agents against Malicious Host Attacks Using Threat Diagnostic AND/OR Tree
Protecting Mobile Agents against Malicious Host Attacks Using Threat Diagnostic AND/OR Tree Magdy Saeb, Meer Hamza, Ashraf Soliman. Arab Academy for Science, Technology & Maritime Transort Comuter Engineering
More informationGRANCLOUD: A REAL-TIME GRANULAR SYNTHESIS APPLICATION AND ITS IMPLEMENTATION IN THE INTERACTIVE COMPOSITION CREO. Terry Alan Lee, B.M.
GRANCLOUD: A REAL-TIME GRANULAR SYNTHESIS APPLICATION AND ITS IMPLEMENTATION IN THE INTERACTIVE COMPOSITION CREO Terry Alan Lee, B.M. Thesis Preared or the Degree o MASTER OF MUSIC UNIVERSITY OF NORTH
More informationImproving Trust Estimates in Planning Domains with Rare Failure Events
Imroving Trust Estimates in Planning Domains with Rare Failure Events Colin M. Potts and Kurt D. Krebsbach Det. of Mathematics and Comuter Science Lawrence University Aleton, Wisconsin 54911 USA {colin.m.otts,
More informationSource-to-Source Code Generation Based on Pattern Matching and Dynamic Programming
Source-to-Source Code Generation Based on Pattern Matching and Dynamic Programming Weimin Chen, Volker Turau TR-93-047 August, 1993 Abstract This aer introduces a new technique for source-to-source code
More information10 File System Mass Storage Structure Mass Storage Systems Mass Storage Structure Mass Storage Structure FILE SYSTEM 1
10 File System 1 We will examine this chater in three subtitles: Mass Storage Systems OERATING SYSTEMS FILE SYSTEM 1 File System Interface File System Imlementation 10.1.1 Mass Storage Structure 3 2 10.1
More informationSage Estimating. (formerly Sage Timberline Estimating) Options Guide
Sage Estimating (formerly Sage Timberline Estimating) Otions Guide This is a ublication of Sage Software, Inc. Document Number 1112ER 09/2012 2012 Sage Software, Inc. All rights reserved. Sage, the Sage
More informationDistributed Algorithms
Course Outline With grateful acknowledgement to Christos Karamanolis for much of the material Jeff Magee & Jeff Kramer Models of distributed comuting Synchronous message-assing distributed systems Algorithms
More informationA CLASS OF STRUCTURED LDPC CODES WITH LARGE GIRTH
A CLASS OF STRUCTURED LDPC CODES WITH LARGE GIRTH Jin Lu, José M. F. Moura, and Urs Niesen Deartment of Electrical and Comuter Engineering Carnegie Mellon University, Pittsburgh, PA 15213 jinlu, moura@ece.cmu.edu
More informationIMS Network Deployment Cost Optimization Based on Flow-Based Traffic Model
IMS Network Deloyment Cost Otimization Based on Flow-Based Traffic Model Jie Xiao, Changcheng Huang and James Yan Deartment of Systems and Comuter Engineering, Carleton University, Ottawa, Canada {jiexiao,
More informationSensitivity Analysis for an Optimal Routing Policy in an Ad Hoc Wireless Network
1 Sensitivity Analysis for an Otimal Routing Policy in an Ad Hoc Wireless Network Tara Javidi and Demosthenis Teneketzis Deartment of Electrical Engineering and Comuter Science University of Michigan Ann
More informationImplementations of Partial Document Ranking Using. Inverted Files. Wai Yee Peter Wong. Dik Lun Lee
Imlementations of Partial Document Ranking Using Inverted Files Wai Yee Peter Wong Dik Lun Lee Deartment of Comuter and Information Science, Ohio State University, 36 Neil Ave, Columbus, Ohio 4321, U.S.A.
More informationLeak Detection Modeling and Simulation for Oil Pipeline with Artificial Intelligence Method
ITB J. Eng. Sci. Vol. 39 B, No. 1, 007, 1-19 1 Leak Detection Modeling and Simulation for Oil Pieline with Artificial Intelligence Method Pudjo Sukarno 1, Kuntjoro Adji Sidarto, Amoranto Trisnobudi 3,
More informationPerformance and Area Tradeoffs in Space-Qualified FPGA-Based Time-of-Flight Systems
Performance and Area Tradeoffs in Sace-Qualified FPGA-Based Time-of-Flight Systems Whitney Hsiong 1, Steve Huntzicker 1, Kevin King 1, Austin Lee 1, Chen Lim 1, Jason Wang 1, Sarah Harris, Ph.D. 1, Jörg-Micha
More informationLecture 2: Fixed-Radius Near Neighbors and Geometric Basics
structure arises in many alications of geometry. The dual structure, called a Delaunay triangulation also has many interesting roerties. Figure 3: Voronoi diagram and Delaunay triangulation. Search: Geometric
More informationin Distributed Systems Department of Computer Science, Keio University into four forms according to asynchrony and real-time properties.
Asynchrony and Real-Time in Distributed Systems Mario Tokoro? and Ichiro Satoh?? Deartment of Comuter Science, Keio University 3-14-1, Hiyoshi, Kohoku-ku, Yokohama, 223, Jaan Tel: +81-45-56-115 Fax: +81-45-56-1151
More informationα i k (βi k ) Request ratio of rank-k chunks (a specific chunk) at node v i g i k Size of set Ck S i Cache size of node v i
ing Hierarchical Caches in Content-Centric Networs Zixiao Jia,PengZhang,JiweiHuang,ChuangLin, and John C. S. Lui Tsinghua National Laboratory for Information Science and Technology Det. of Comuter Science
More information2. Introduction to Operating Systems
2. Introduction to Oerating Systems Oerating System: Three Easy Pieces 1 What a haens when a rogram runs? A running rogram executes instructions. 1. The rocessor fetches an instruction from memory. 2.
More informationEfficient Parallel Hierarchical Clustering
Efficient Parallel Hierarchical Clustering Manoranjan Dash 1,SimonaPetrutiu, and Peter Scheuermann 1 Deartment of Information Systems, School of Comuter Engineering, Nanyang Technological University, Singaore
More informationCASCH - a Scheduling Algorithm for "High Level"-Synthesis
CASCH a Scheduling Algorithm for "High Level"Synthesis P. Gutberlet H. Krämer W. Rosenstiel Comuter Science Research Center at the University of Karlsruhe (FZI) HaidundNeuStr. 1014, 7500 Karlsruhe, F.R.G.
More informationCollective communication: theory, practice, and experience
CONCURRENCY AND COMPUTATION: PRACTICE AND EXPERIENCE Concurrency Comutat.: Pract. Exer. 2007; 19:1749 1783 Published online 5 July 2007 in Wiley InterScience (www.interscience.wiley.com)..1206 Collective
More informationCENTRAL AND PARALLEL PROJECTIONS OF REGULAR SURFACES: GEOMETRIC CONSTRUCTIONS USING 3D MODELING SOFTWARE
CENTRAL AND PARALLEL PROJECTIONS OF REGULAR SURFACES: GEOMETRIC CONSTRUCTIONS USING 3D MODELING SOFTWARE Petra Surynková Charles University in Prague, Faculty of Mathematics and Physics, Sokolovská 83,
More informationUnifying Explicit and Implicit Feedback for Top-N Recommendation
017 IEEE nd International Conference on Big Data Analysis Unifying Exlicit and Imlicit Feedback for To-N Recommendation Siing Liu, Xiaohan Tu and Renfa Li College of Comuter Science and Electronic Engineering
More informationA Parallel Algorithm for Constructing Obstacle-Avoiding Rectilinear Steiner Minimal Trees on Multi-Core Systems
A Parallel Algorithm for Constructing Obstacle-Avoiding Rectilinear Steiner Minimal Trees on Multi-Core Systems Cheng-Yuan Chang and I-Lun Tseng Deartment of Comuter Science and Engineering Yuan Ze University,
More informationOne-Node-Based Mobile Architecture for a Better QoS Control
One-ode-Based obile rchitecture for a Better Qo ontrol Khadija aoud, Philie Herbelin Orange Labs ssy Les oulineaux, rance {khadija.daoud, hilie.herbelin}@orange-ftgrou.com oël resi nstitut TELEO udparis
More informationThis is the peer reviewed version of the following article: Susín, A. and Ramírez, J.E. (2015). Segmentation-based skinning. Computer animation and
This is the eer reviewed version of the following article: Susín, A. and Ramírez, J.E. (). Segmentation-based skinning. Comuter animation and virtual worlds, (), 1 which has been ublished in final form
More informationStorage Allocation CSE 143. Pointers, Arrays, and Dynamic Storage Allocation. Pointer Variables. Pointers: Review. Pointers and Types
CSE 143 Pointers, Arrays, and Dynamic Storage Allocation [Chater 4,. 148-157, 172-177] Storage Allocation Storage (memory) is a linear array of cells (bytes) Objects of different tyes often reuire differing
More informationLazytest Better Living Through Protocols. Stuart Sierra. Clojure NYC April 15, 2010
Lazytest Better Living Through Protocols Stuart Sierra Clojure NYC April 15, 2010 @stuartsierra #clojure clojure.core: tests as metadata (defn add ([x y] (+ x y)) {:test (fn [] (assert (= 7 (add 3 4))))})
More informationVerification Options. To Store Or Not To Store? Inside the UPPAAL tool. Inactive (passive) Clock Reduction. Global Reduction
Inside the UPPAAL tool Data Structures DBM s (Difference Bounds Matrices) Canonical and Minimal Constraints Algorithms Reachability analysis Liveness checking Termination Verification Otions Verification
More information10. Parallel Methods for Data Sorting
10. Parallel Methods for Data Sorting 10. Parallel Methods for Data Sorting... 1 10.1. Parallelizing Princiles... 10.. Scaling Parallel Comutations... 10.3. Bubble Sort...3 10.3.1. Sequential Algorithm...3
More informationArchitecture-driven verfication of concurrent systems.*
National Research Council Canada Institute for Information Technology Conseil national de recherches Canada Institut de technologie de l information Architecture-driven verfication of concurrent systems.*
More informationObjectives. Part 1: Implement Friction Compensation.
ME 446 Laboratory # Inverse Dynamics Joint Control Reort is due at the beginning of your lab time the week of Aril 9 th. One reort er grou. Lab sessions will be held the weeks of March th, March 6 th,
More informationA New and Efficient Algorithm-Based Fault Tolerance Scheme for A Million Way Parallelism
A New and Efficient Algorithm-Based Fault Tolerance Scheme for A Million Way Parallelism Erlin Yao, Mingyu Chen, Rui Wang, Wenli Zhang, Guangming Tan Key Laboratory of Comuter System and Architecture Institute
More informationCS252 Graduate Computer Architecture Spring 2014 Lecture 6: Modern Out- of- Order Processors
CS252 Graduate Comuter Architecture Sring 2014 Lecture 6: Modern Out- of- Order Processors Krste Asanovic krste@eecs.berkeley.edu htt://inst.eecs.berkeley.edu/~cs252/s14 CS252, Sring 2014, Lecture 6 Last
More informationA Study of Protocols for Low-Latency Video Transport over the Internet
A Study of Protocols for Low-Latency Video Transort over the Internet Ciro A. Noronha, Ph.D. Cobalt Digital Santa Clara, CA ciro.noronha@cobaltdigital.com Juliana W. Noronha University of California, Davis
More informationParallel Algorithms for the Summed Area Table on the Asynchronous Hierarchical Memory Machine, with GPU implementations
Parallel Algorithms for the Summed Area Table on the Asynchronous Hierarchical Memory Machine, ith GPU imlementations Akihiko Kasagi, Koji Nakano, and Yasuaki Ito Deartment of Information Engineering Hiroshima
More informationArchitecture description languages for programmable embedded systems
Architecture descrition languages for rogrammable embedded systems P. Mishra and N. Dutt Abstract: Embedded systems resent a tremendous oortunity to customise designs by exloiting the alication behaviour.
More information521493S Computer Graphics Exercise 3 (Chapters 6-8)
521493S Comuter Grahics Exercise 3 (Chaters 6-8) 1 Most grahics systems and APIs use the simle lighting and reflection models that we introduced for olygon rendering Describe the ways in which each of
More informationImproved heuristics for the single machine scheduling problem with linear early and quadratic tardy penalties
Imroved heuristics for the single machine scheduling roblem with linear early and quadratic tardy enalties Jorge M. S. Valente* LIAAD INESC Porto LA, Faculdade de Economia, Universidade do Porto Postal
More informationSage Estimating (SQL) (formerly Sage Timberline Estimating) Installation and Administration Guide. Version 16.11
Sage Estimating (SQL) (formerly Sage Timberline Estimating) Installation and Administration Guide Version 16.11 This is a ublication of Sage Software, Inc. 2016 The Sage Grou lc or its licensors. All rights
More informationUsing Permuted States and Validated Simulation to Analyze Conflict Rates in Optimistic Replication
Using Permuted States and Validated Simulation to Analyze Conflict Rates in Otimistic Relication An-I A. Wang Comuter Science Deartment Florida State University Geoff H. Kuenning Comuter Science Deartment
More informationCS 428: Fall Introduction to. Geometric Transformations. Andrew Nealen, Rutgers, /15/2010 1
CS 428: Fall 21 Introduction to Comuter Grahics Geometric Transformations Andrew Nealen, Rutgers, 21 9/15/21 1 Toic overview Image formation and OenGL (last week) Modeling the image formation rocess OenGL
More informationRecord Route IP Traceback: Combating DoS Attacks and the Variants
Record Route IP Traceback: Combating DoS Attacks and the Variants Abdullah Yasin Nur, Mehmet Engin Tozal University of Louisiana at Lafayette, Lafayette, LA, US ayasinnur@louisiana.edu, metozal@louisiana.edu
More informationModels for Advancing PRAM and Other Algorithms into Parallel Programs for a PRAM-On-Chip Platform
Models for Advancing PRAM and Other Algorithms into Parallel Programs for a PRAM-On-Chi Platform Uzi Vishkin George C. Caragea Bryant Lee Aril 2006 University of Maryland, College Park, MD 20740 UMIACS-TR
More informationSource level Unrolling of Loops Containing Pointers and Array References
Source level Unrolling of Loos Containing Pointers and Array References Yosi Ben Asher Jawad Haj-Yihia CS deartment, Haifa University, Israel. yosi@cs.haifa.ac.il, jawad.haj-yihia@intel.com Abstract We
More information43. Log-structured File Systems
43. Log-structured File Systems Oerating System: Three Easy Pieces AOS@UC 1 LFS: Log-structured File System Proosed by Stanford back in 91 Motivated by: w DRAM Memory sizes where growing. w Large ga between
More informationComplexity Issues on Designing Tridiagonal Solvers on 2-Dimensional Mesh Interconnection Networks
Journal of Comuting and Information Technology - CIT 8, 2000, 1, 1 12 1 Comlexity Issues on Designing Tridiagonal Solvers on 2-Dimensional Mesh Interconnection Networks Eunice E. Santos Deartment of Electrical
More informationBGP Add-Paths. Hundreds of proposals hiding behind one...
BGP Add-Paths Hundreds of roosals hiding behind one... Pierre.Francois@UCLouvain.be ToC draft-ietf-idr-add-aths Why doing Add-aths draft-ietf-idr-add-aths-guidelines (draft-uttaro-idr-add-aths-guidelines)
More informationStatistical Detection for Network Flooding Attacks
Statistical Detection for Network Flooding Attacks C. S. Chao, Y. S. Chen, and A.C. Liu Det. of Information Engineering, Feng Chia Univ., Taiwan 407, OC. Email: cschao@fcu.edu.tw Abstract In order to meet
More informationA Symmetric FHE Scheme Based on Linear Algebra
A Symmetric FHE Scheme Based on Linear Algebra Iti Sharma University College of Engineering, Comuter Science Deartment. itisharma.uce@gmail.com Abstract FHE is considered to be Holy Grail of cloud comuting.
More informationMacro #clojureconj
Macro Club @stuartsierra #clojureconj 500 sq ft I ( ) If it seems simple, you're probably doing it wrong. You can pry EMACS from my cold, dead fingers. The First Rule of Macro Club You do not
More informationCollective Communication: Theory, Practice, and Experience. FLAME Working Note #22
Collective Communication: Theory, Practice, and Exerience FLAME Working Note # Ernie Chan Marcel Heimlich Avi Purkayastha Robert van de Geijn Setember, 6 Abstract We discuss the design and high-erformance
More informationaclass: ClassDeclaration (name=name) aspectstatement: Statement (place=name) methods method: MethodDeclaration
Asect Weaving with Grah Rewriting Uwe A mann and Andreas Ludwig Institut f r Programmstrukturen und Datenorganisation Universit t Karlsruhe, RZ, Postfach 6980, 76128 Karlsruhe, Germany (assmannjludwig)@id.info.uni-karlsruhe.de
More informationProperty Patterns for Runtime Monitoring of Web Service Conversations
Proerty Patterns for Runtime Monitoring of Web Service Conversations Jocelyn Simmonds, Marsha Chechik, and Shiva Nejati University of Toronto, Toronto ON M5S3G4, Canada {jsimmond,chechik,shiva}@cs.toronto.edu
More information