Hybrid Synchronous Languages Vijay Saraswat IBM TJ Watson Research Center March 2005.

Slides:



Advertisements
Similar presentations
Time averages and ensemble averages
Advertisements

Analysis of Computer Algorithms
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Hybrid Synchronous Languages Vijay Saraswat IBM TJ Watson Research Center March 2004.
The Emergence of Systems Biology Vijay Saraswat IBM TJ Watson Research Center and The Pennsylvania State University.
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
IBM Research: Software Technology © 2006 IBM Corporation 1 Programming Language X10 Christoph von Praun IBM Research HPC WPL Sandia National Labs December.
Intermediate Code Generation
Lect.3 Modeling in The Time Domain Basil Hamed
Compilation 2011 Static Analysis Johnni Winther Michael I. Schwartzbach Aarhus University.
IBM’s X10 Presentation by Isaac Dooley CS498LVK Spring 2006.
U NIVERSITY OF D ELAWARE C OMPUTER & I NFORMATION S CIENCES D EPARTMENT Optimizing Compilers CISC 673 Spring 2009 Potential Languages of the Future Chapel,
Concurrency Important and difficult (Ada slides copied from Ed Schonberg)
Time Constraints in Planning Sudhan Kanitkar
Timed Automata.
SBML2Murphi: a Translator from a Biology Markup Language to Murphy Andrea Romei Ciclo di Seminari su Model Checking Dipartimento di Informatica Università.
Verification of Hybrid Systems An Assessment of Current Techniques Holly Bowen.
Multiscale Stochastic Simulation Algorithm with Stochastic Partial Equilibrium Assumption for Chemically Reacting Systems Linda Petzold and Yang Cao University.
ISBN Chapter 3 Describing Syntax and Semantics.
What is an Algorithm? (And how do we analyze one?)
Models and methods in systems biology Daniel Kluesing Algorithms in Biology Spring 2009.
Petri net modeling of biological networks Claudine Chaouiya.
Constraint Logic Programming Ryan Kinworthy. Overview Introduction Logic Programming LP as a constraint programming language Constraint Logic Programming.
Discrete-Event Simulation: A First Course Steve Park and Larry Leemis College of William and Mary.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. Chapter 5 - Functions Outline 5.1Introduction 5.2Program.
Java for High Performance Computing Jordi Garcia Almiñana 14 de Octubre de 1998 de la era post-internet.
Programming Language Semantics Java Threads and Locks Informal Introduction The Java Specification Language Chapter 17.
Programming Language Semantics Mooly SagivEran Yahav Schrirber 317Open space html://
Programming Languages Structure
Efficient Parallelization for AMR MHD Multiphysics Calculations Implementation in AstroBEAR.
Semantics with Applications Mooly Sagiv Schrirber html:// Textbooks:Winskel The.
Describing Syntax and Semantics
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
1/25 Pointer Logic Changki PSWLAB Pointer Logic Daniel Kroening and Ofer Strichman Decision Procedure.
CSC 8310 Programming Languages Meeting 2 September 2/3, 2014.
SEC(R) 2008 Intel® Concurrent Collections for C++ - a model for parallel programming Nikolay Kurtov Software and Services.
Exercise problems for students taking the Programming Parallel Computers course. Janusz Kowalik Piotr Arlukowicz Tadeusz Puzniakowski Informatics Institute.
1 Chapter 5: Names, Bindings and Scopes Lionel Williams Jr. and Victoria Yan CSci 210, Advanced Software Paradigms September 26, 2010.
The Emergence of Systems Biology Vijay Saraswat Programming, Languages And Systems Group The Pennsylvania State University
Parallel Programming Models Jihad El-Sana These slides are based on the book: Introduction to Parallel Computing, Blaise Barney, Lawrence Livermore National.
CSC3315 (Spring 2009)1 CSC 3315 Programming Languages Hamid Harroud School of Science and Engineering, Akhawayn University
Converting Macromolecular Regulatory Models from Deterministic to Stochastic Formulation Pengyuan Wang, Ranjit Randhawa, Clifford A. Shaffer, Yang Cao,
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Unit III : Introduction To Data Structures and Analysis Of Algorithm 10/8/ Objective : 1.To understand primitive storage structures and types 2.To.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
© Copyright 1992–2004 by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. C How To Program - 4th edition Deitels Class 05 University.
Object-Oriented Program Development Using Java: A Class-Centered Approach, Enhanced Edition.
1 Compiler Construction (CS-636) Muhammad Bilal Bashir UIIT, Rawalpindi.
Major objective of this course is: Design and analysis of modern algorithms Different variants Accuracy Efficiency Comparing efficiencies Motivation thinking.
Introduction to Problem Solving. Steps in Programming A Very Simplified Picture –Problem Definition & Analysis – High Level Strategy for a solution –Arriving.
Fall 2004EE 3563 Digital Systems Design EE 3563 VHSIC Hardware Description Language  Required Reading: –These Slides –VHDL Tutorial  Very High Speed.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Introduction to OpenMP Eric Aubanel Advanced Computational Research Laboratory Faculty of Computer Science, UNB Fredericton, New Brunswick.
CS 484 Designing Parallel Algorithms Designing a parallel algorithm is not easy. There is no recipe or magical ingredient Except creativity We can benefit.
Object-Oriented Programming Chapter Chapter
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
A Pattern Language for Parallel Programming Beverly Sanders University of Florida.
Operational Semantics Mooly Sagiv Tel Aviv University Sunday Scrieber 8 Monday Schrieber.
IBM Research: Software Technology © 2005 IBM Corporation Programming Technologies 1 Temporal Rules Vijay Saraswat IBM TJ Watson July 27, 2012.
CPE779: Shared Memory and OpenMP Based on slides by Laxmikant V. Kale and David Padua of the University of Illinois.
Programming in hybrid constraint languages 上田研究室 M2 中村 好一.
Sub-fields of computer science. Sub-fields of computer science.
Advanced Algorithms Analysis and Design
TensorFlow– A system for large-scale machine learning
Advanced Computer Systems
Chapter 3 of Programming Languages by Ravi Sethi
User-Defined Functions
Chapter 5 - Functions Outline 5.1 Introduction
Objective of This Course
Presented By: Darlene Banta
Presentation transcript:

Hybrid Synchronous Languages Vijay Saraswat IBM TJ Watson Research Center March 2005

Outline CCP as a framework for concurrency theory Constraints CCP Defaults Discrete Time Hybrid Time Examples Themes Synchronous languages are widely applicable Space, as well as time, needs to be treated.

Constraint systems Any (intuitionistic, classical) system of partial information For Ai read as logical formulae, the basic relationship is: A1,…, An |- A Read as If each of the A1,…, An hold, then A holds Require conjunction, existential quantification A,B,D ::= atomic formulae | A&B |X^A G ::= multiset of formulae (Id) A |- A (Id) (Cut) G |- B G,B |- D G,G |- D (Weak) G |- A G,B |- A (Dup) G, A, A |- B G,A |- B (Xchg) G,A,B,G |- D G,B,A,G |- D (&-R) G,A,B |- D G, A&B |- D (&-L) G |- A G|- B G |- A&B (^-R) G |- A[t/X] G |- X^A (^-L,*) G,A |- D G,X^A |- D

Constraint system: Examples Gentzen Herbrand Lists Finite domain Propositional logic (SAT) Arithmetic constraints Naïve, Linear Nonlinear Interval arithmetic Orders Temporal Intervals Hash-tables Arrays Graphs Constraint systems are ubiquitous in computer science Type systems Compiler analysis Symbolic computation Concurrent system analysis

Concurrent Constraint Programming Use constraints for communication and control between concurrent agents operating on a shared store. Two basic operations tell c: Add c to the store ask c then A: If the store is strong enough to entail c, reduce to A. (Agents) A::= c c A A,B X^A (Config) G ::= A,…, A G, A&B G,A,B G, X^A G,A (X not free in G) G, c A G,A (s(G) |- c) [[A]] = set of fixed points of a clop Completeness for constraint entailment

Concurrent Constraint Programming A constraint expresses information about the possible values of variables. E.g. x = 0, 7x + 3y = 21. A cc program consists of a store, which is a set of constraints, and a set of subprograms independently interacting with it. A subprogram can add a constraint to the store. It can also ask if a constraint is entailed by the store, and if so, reduce to a new set of subprograms. The output is the store when all subprograms are quiescent. Example program: x = 10, x = 0, if x > 0 then x = -10 X = 10 X = 0 if x>0 then x=-10 if y=0 then z=1 store x = 0 X = 10 if x>0 then x=-10 if y=0 then z=1 store x = 0, x = 10 if x>0 then x=-10 if y=0 then z=1 store x = 0, x = 10 x=-10 if y=0 then z=1 store x = 0, x =10, x = -10 if y=0 then z=1 Basic combinators: c add constraint c to the store. if c then A if c is entailed by the store, execute subprogram A, otherwise wait. A, B execute subprograms A and B in independently. unless c then A if c will not be entailed in the current phase, execute A (default cc). Output Gupta/Carlson

Default CCP A ::= c ~~> A Unless c holds of the final store, run A (ask c) \/ A Leads to nondet behavior (c ~~> c) No behavior (c 1 ~~> c 2, c 2 ~~> c 1 ) gives c 1 or c 2 (c ~~> d): gives d (c, c~~>d): gives c [A] = set S of pairs (c,d) st S d ={c | (c,d) in S} denotes a clop. Operational implementation: Backtracking search Open question: compile-time analysis use negation as failure

Discrete Timed CCP Synchronicity principle System reacts instantaneously to the environment Semantic idea Run a default CCP program at each time point Add: A ::= next A No connection between the store at one point and the next. Future cannot affect past. Semantics Sets of sequences of (pairs of) constraints Non-empty Prefix-closed P after s =d= {e | s.e in P} is denotation of a default CC program

Timed Default CCP: basic results The usual combinators can be programmed: always A do A watching c whenever c do A time A on c A general combinator can be defined time A on B: the clock fed to A is determined by (agent) B Discrete timed synchronous programming language with the power of Esterel Present is translated using defaults Proof system Compilation to automata

jcc Implementation of Default Timed cc in Java Uses Java as a host language Full implementation of Timed Default CCP Promises, unification. More CSs can be added. Implements defaults via backtracking. Uses Java GC Saraswat,Jagadeesan, Gupta jcc: Integrating Timed Default CCP into Java Very useful as a prototyping language. Currently only backend implemented. Available from sourceforge aswat/jcc.html aswat/jcc.html LGPL

The Esterel stopwatch program public void WatchAgent() { watch = WATCH; whenever (watch==WATCH) { unless (changeMode) { print("Watch Mode"); } when (p == UL) { next enterSetWatch = ENTER_SET_WATCH; changeMode=CHANGE_MODE; print("Set Watch Mode"); } when (p == LL) { next stopWatch=STOP_WATCH; changeMode=CHANGE_MODE; print("Stop Watch Mode"); } do { always watch = WATCH; } watching ( changeMode ) unless (changeMode) { beep(); } time.setAlarmBeeps(beeper); }

Hybrid Systems Traditional Computer Science Discrete state, discrete change (assignment) E.g. Turing Machine Brittleness: Small error major impact Devastating with large code! Traditional Mathematics Continuous variables (Reals) Smooth state change Mean-value theorem e.g. computing rocket trajectories Robustness in the face of change Stochastic systems (e.g. Brownian motion) Hybrid Systems combine both Discrete control Continuous state evolution Intuition: Run program at every real value. Approximate by: Discrete change at an instant Continuous change in an interval Primary application areas Engineering and Control systems Paper transport Autonomous vehicles… And now.. Biological Computation. Emerged in early 90s in the work of Nerode, Kohn, Alur, Dill, Henzinger…

Basic assupmtion: The evolution of a system is piecewise continuous. Thus, a system evolution can be modeled a sequence of alternating point and interval phases. Constraints will now include time-varying expressions e.g. ODEs. Execute a cc program in each phase to determine the output of that phase. This will also determine the cc program to be run in the next phase. In an interval phase, any constraints asked of the store are recorded as transition conditions. Integrate the ODEs in the store to evolve the time dependent variables, using the store in the previous point phase to determine the initial conditions. The phase ends when any transition condition changes status. The values of the variables at the end of the phase can be used by the next point phase. Example program: x=10,x=0, hence {if x>0 then x=-10, if prev(x)=0 then x=-0.5*prev(x)} cc prog output t = x = 10, x = 0 x = 10, x = 0 if x>0 then x = -10 if prev(x)=0 then x=-0.5*prev(x) x=-10 x=10,x=0 x > 0, prev(x) = 0 x=-10 x=0,x= x > 0, prev(x) = 0 if x>0 then x = -10 if prev(x)=0 then x=-0.5*prev(x) x = 0, x = 7.07 t = 0 t = 0+ t = New combinator: hence A execute a copy of A in each phase (except the current point phase, if any) Gupta, Jagadeesan, Saraswat Computing with continuous change, SCP 1998 Gupta/Carlson Extending cc to Hybrid cc

Hybrid CC with interval constraints n Arithmetic variables are interval valued. Arithmetic constraints are non- linear algebraic equations over these, using standard operators like +, *, ^, etc. n Object-oriented system with methods and inheritance. n Various combinators defined on the basic combinators e.g. do A watching c --- execute A, abort it when c becomes true when c do A --- start A at the first instant when c becomes true wait N do A --- start A after N time units forall C(X) do A(X) --- execute a copy of A for each object X of class C n Methods and class definitions are constraints and can be changed during the course of a program. Recursive functions are allowed. n Arithmetic expressions compiled to byte code and then machine code for efficiency. Common sub-expressions are recognized. n Copying garbage collector speeds up execution, and allows taking snapshots of states. n API from Java/C to use Hybrid cc as a library. System runs on Solaris, Linux, SGI and Windows NT. n Users can easily add their own operators as C libraries (useful for connecting with external C tools, simulators etc.). Carlson, Gupta Hybrid CC with Interval ConstraintsGupta/Carlson

The arithmetic constraint system n Constraints are used to narrow the intervals of their variables. n For example, x^2 + y^2 = 1 reduces the intervals for x and y to [-1,1] each. Further adding x >= 0.5 reduces the interval for x to [0.5, 1], and for y to [-0.866, 0.866]. n Various interval pruning methods prune one variable at a time. n Indexicals: Given a constraint f(x,y) = 0, rewrite it as x = g(y). If x I and y J, then set x I g(J). Note: y can be a vector of variables. n Interval splitting: If x [a, b], do binary search to determine minimum c in [a,b] such that 0 f([c,c], J), where y J. Similary determine maximum such d in [a,b], and set x [c,d]. n Newton Raphson: Get minimum and maximum roots of f(x,J) = 0, where y J. Set x as above. n Simplex: Given the constraints on x, find its minimum and maximum These methods can be combined to increase efficiency. Gupta/Carlson

Integrating the differential equations Differential equations are just ordinary algebraic equations relating some variables and their derivatives, e.g. f=m*a, x+d*x+k*x=0 We provide various integrators --- Euler, 4th order Runge Kutta, 4th order Runge Kutta with adaptive stepsize, Bulirsch-Stoer with polynomial extrapolation. Others can be added if necessary All integrators have been modified to integrate implicit differential equations, over interval valued variables. Exact determination of discrete changes (to determine the end of an interval phase) is done using cubic Hermite interpolation. For example, in the example program we need to check if x = 0. We use the value of x and x at the beginning and end of an integration step to determine if x = 0 anywhere in this step. If so, the step is rolled back, and a smaller step is taken based on the estimate of the time when x = 0. This is repeated till the exact time when x = 0 is determined. Gupta/Carlson

Planet = (m, initpx, initpy, initpz, initvx, initvy,initvz) [px, py, pz, mass]{ px = initpx, py = initpy, pz = initpz, px' = initvx, py' = initvy, pz'=initvz, always { mass := m, px'' := sum(g * P.mass * (P.px - px)/((P.px -px)^2 + (P.py -py)^2 + (P.pz -pz)^2)^1.5, Planet(P), P != Self), py'' := sum(g * P.mass * (P.py - py)/((P.px -px)^2 + (P.py -py)^2 + (P.pz -pz)^2)^1.5, Planet(P), P != Self), pz'' := sum(g * P.mass * (P.pz - pz)/((P.px -px)^2 + (P.py -py)^2 + (P.pz -pz)^2)^1.5, Planet(P), P != Self) } }, always p Tg := e-10, //Coordinates, velocities on 1998-jul-01 00:00 Planet(Sun, , , , , , , ), Planet(Mercury, , , , , , , ), Planet(Venus, , , , , , , ), Planet(Earth, 1.0, , , , , , ), /* A fragment of a model for the Solar system. The remaining lines give the coordinates and velocities of the other planets on July 1, The class planet implements each planet as one of n bodies, determining its acceleration to be the sum of the accelerations due to all other bodies (this is defined by the sum constraint). Units are Earth-mass, Astronomical units and Earth days.*/ Results of simulation: Simulated time units (~9 years). CPU time = 55 s. Accuracy: Mercury < 4°, Venus < 1°, other < ° away from actual positions after 9 years. Gupta/Carlson Example: The solar system

Programming in jcc public class Furnace implements Plant { const Real heatR, coolR, initTemp; public readOnly Fluent temp; public inputOnly Fluent switchOn; public Furnace(Real heatR, Real coolR, Real initT ) { this.heatR = heatR; this.coolR = coolR; this.initTemp = initT; } public void run() { temp = initT; time always { temp=heatR} on switchOn; time always {temp=-coolR} on ~switchOn; }} public class Controller { Plant plant; public void setPlant(Plant p) { this.plant=p;} … } public class ControlledFurnace { Controller c; Furnace f; public ControlledFurnace(Furnace f, Controller c) { this.c = c; this.f = f;} public void run() { c.run(); c.setPlant(f); f.run(); }

Systems Biology Develop system-level understanding of biological systems Genomic DNA, Messenger RNA, proteins, information pathways, signaling networks Intra-cellular systems, Inter- cell regulation… Cells, Organs, Organisms ~12 orders of magnitude in space and time! Key question: Function from Structure How do various components of a biological system interact in order to produce complex biological functions? How do you design systems with specific properties (e.g. organs from cells)? Share Formal Theories, Code, Models … Promises profound advances in Biology and Computer Science Goal: To help the biologist model, simulate, analyze, design and diagnose biological systems.

Chemical Reactions Cells host thousands of chemical reactions (e.g. citric acid cycle, glycolis…) Chemical Reaction X+Y 0 –k 0 XY 0 XY 0 –k -0 X+Y 0 Law of Mass Action Rate of reaction is proportional to product of conc of components [X]= -k 0 [X][Y] + k -0 [XY 0 ] [Y]=[X] [XY]=k 0 [X][Y]-K -0 [XY 0 ] Conservation of Mass When multiple reactions, sum mass flows across all sources and sinks to get rate of change. Same analysis useful for enzyme-catalyzed reactions Michaelis-Menten kinetics May be simulated Using deterministic means. Using stochastic means (Gillespie algorithm). At high concentration, species concentration can be modeled as a continuous variable.

State dependent rate equations Expression of gene x inhibits expression of gene y; above a certain threshold, gene y inhibits expression of gene x: /* Two constant signals fed on different conditions generated from a sawtooth wave. */ #SAMPLE_INTERVAL_MAX 0.05 x=0,y=0, always { if (y < 0.8) then x' = -0.02*x+0.01, if (y >= 0.8) then x' = -0.02*x, y' = 0.01*x }, sample(x,y) Bockmayr and Courtois: Modeling biological systems in hybrid concurrent constraint programming

Cell division: Delta-Notch signaling in X. Laevis Consider cell differentiation in a population of epidermic cells. Cells arranged in a hexagonal lattice. Each cell interacts concurrently with its neighbors. The concentration of Delta and Notch proteins in each cell varies continuously. Cell can be in one of four states: Delta and Notch inhibited or expressed. Experimental Observations: Delta (Notch) concentrations show typical spike at a threshold level. At equilibrium, cells are in only two states (D or N expressed; other inhibited). Ghosh, Tomlin: Lateral inhibition through Delta-Notch signaling: A piece- wise affine hybrid model, HSCC 2001

Delta-Notch Signaling Model: VD, VN: concentration of Delta and Notch protein in the cell. UD, UN: Delta (Notch) production capacity of cell. UN=sum_i VD_i (neighbors) UD = -VN Parameters: Threshold values: HD,HN Degradation rates: MD, MN Production rates: RD, RN Model: Cell in 1 of 4 states: {D,N} x {Expressed (above), Inhibited (below)} Stochastic variables used to set random initial state. Model can be expressed directly in hcc. if (UN(i,j) < HN) {VN= -MN*VN}, if (UN(I,j)>=HN){VN=RN-MN*VN}, if (UD(I,j)<HD){VD=-MD*VD}, if (UD(I,j)>=HD){VD=RD-MD*VD}, Results: Simulation confirms observations. Tiwari/Lincoln prove that States 2 and 3 are stable.

HCC2: Integration of Space Need to add continuous space. Need to add discrete space. Use same idea as when extending CCP to HCC Extend uniformly across space with an elsewhere (= spatial hence) operator. Think as if a default CC program is running simultaneously at each spatial point. Implementation: Move to PDEs from ODEs. Much more complicated to solve. Need to generate meshes. Use Petsc (parallel ANL library). Uses MPI for parallel execution.

Generating code for parallel machines There is a large gap between a simple declarative representation and an efficient parallel implementation Cf Molecular dynamics Central challenge: How can additional pieces of information (e.g. about target architecture, about mapping data to processors) be added compositionally so as to obtain efficient parallel algorithm? Need to support round-tripping. Identify patterns, integrate libraries of high-performance code (e.g. petsc).

The X10 language X10=Java–Threads+Locales A locale is a region containing data and activities An activity may atomically execute statements that refer to data on current locale. Arrays are striped across locales. An activity may asynchronously spawn activities in other locales. Locales may be named through data. Barriers are used to detect termination. Supports SPMD computations. Load input into array A striped into K locales in parallel; finish forall( i : A) { async A[i] { int j = f(A[i]); async atomic A[j]{ A[j]++; } A language for massively parallel non-uniform SMPs The GUPS benchmark

The X10 Programming Model A program is a collection of places, each containing resident data and a dynamic collection of activities. Program may distribute aggregate data (arrays) across places during allocation. Program may directly operate only on local data, using atomic sections. Program may spawn multiple (local or remote) activities in parallel. Program must use asynchronous operations to access/update remote data. Program may repeatedly detect quiescence of a programmer-specified, data-dependent, distributed set of activities. Shared Memory (P=1) MPI (P > 1) Cluster Computing: Common framework for P=1 and P > 1 heap stack control heap stack control... Activities & Activity-local storage Place-local heap Partitioned Global heap heap stack control heap stack control... Place-local heap Partitioned Global heap Outbound activities Inbound activities Outbound activity replies Inbound activity replies... Place Activities & Activity-local storage Immutable Data Granularity of place can range from single register file to an entire SMP system

X10 Programming Subsumes MPI and OpenMP programming Closely related to Cilk Load input into array A striped into K locales in parallel; finish forall( i : A) { async A[i] { int j = f(A[i]); async atomic A[j]{ A[j]++; } The GUPS benchmark

Integration of symbolic reasoning techniques Use state of the art constraint solvers ICS from SRI Shostak combination of theories (SAT, Herbrand, RCF, linear arithmetic over integers). Finite state analysis of hybrid systems Generate code for HAL Predicate abstraction techniques. Develop bounded model checking. Parameter search techniques. Use/Generate constraints on parameters to rule out portions of the space. Integrate QR work Qualitative simulation of hybrid systems

Conclusion We believe biological system modeling and analysis will be a very productive area for constraint programming and programming languages Handle continuous/discrete space+time Handle stochastic descriptions Handle models varying over many orders of magnitude Handle symbolic analysis Handle parallel implementations

HCC references Gupta, Jagadeesan, Saraswat Computing with Continuous Change, Science of Computer Programming, Jan 1998, 30 (12), pp Saraswat, Jagadeesan, Gupta Timed Default Concurrent Constraint Programming, Journal of Symbolic Computation, Nov-Dec1996, 22 (56), pp Gupta, Jagadeesan, Saraswat Programming in Hybrid Constraint Languages, Nov 1995, Hybrid Systems II, LNCS 999. Alenius, Gupta Modeling an AERCam: A case study in modeling with concurrent constraint languages, CP98 Workshop on Modeling and Constraints, Oct 1998.

Systems Biology Work subsumes past work on mathematical modeling in biology: Hodgkin-Huxley model for neural firing Michaelis-Menten equation for Enzyme Kinetics Gillespie algorithm for Monte-Carlo simulation of stochastic systems. Bifurcation analysis for Xenopus cell cycle Flux balance analysis, metabolic control analysis… Why Now? Exploiting genomic data Scale Across the internet, across space and time. Integration of computational tools Integration of new analysis techniques Collaboration using markup- based interlingua (SBML) Moores Law! This is not the first time…

Alternative splicing regulation Alternative splicing occurs in post transcriptional regulation of RNA Through selective elimination of introns, the same premessenger RNA can be used to generate many kinds of mature RNA The SR protein appears to control this process through activation and inhibition. Because of complexity, experimentation can focus on only one site at a time. Bockmayr et al use Hybrid CCP to model SR regulation at a single site. Michaelis-Menten model using 7 kinetic reactions This is used to create an n- site model by abstracting the action at one site via a splice efficiency function. Results described in [Alt], uses default reasoning properties of HCC.

Controlling Cell division: The p53-Mdm2 feedback loop 1/ [p53]=[p53] 0 –[p53]*[Mdm2]*deg -d p53 *[p53] 2/ [Mdm2]=p1+p2 max *(I^n)/(K^n+I^n)-d Mdm2* [Mdm2] I is some intermediary unknown mechanism; induction of [Mdm2] must be steep, n is usually > 10. May be better to use a discontinuous change? 3/ [I]=a*[p53]-k delay *I This introduces a time delay between the activation of p53 and the induction of Mdm2. There appears to be some hidden gearing up mechanism at work. 4/ a=c 1 *sig/(1+c 2 *[Mdm2]*[p53]) 5/ sig=-r*sig(t) Models initial stimulus (signal) which decays rapidly, at a rate determined by repair. 6/ deg=deg basal -[k deg *sig-thresh] 7/ thresh=-k damp *thresh*sig(t=0) Lev Bar-Or, Maya et al Generation of oscillations by the p53-Mdm2 feedback loop..,2000

The p53-Mdm2 feedback loop Biologists are interested in: Dependence of amplitude and width of first wave on different parameters Dependence of waveform on delay parameter. Constraint expressions on parameters that still lead to desired oscillatory waveform would be most useful! There is a more elaborate model of the kinetics of the G2 DNA damage checkpoint system. 23 species, rate equations Multiple interacting cycles/pathways/regulatory networks: Signal transduction MPF Cdc25 Wee1 Aguda A quantitative analysis of the kinetics of the G2 DNA damage checkpoint system, 1999

Support for scalability Axiom: Programmer must have explicit linguistic constructs to deal with non-uniformity of access. Axiom: A program must be able to specify a large collection of asynchronous activities to allow for efficient overlap of computation and communication. Axiom: A program must use scalable synchronization constructs. Axiom: The runtime may implement aggregate operations more efficiently than user- specified iterations with index variables. Axiom: The user may know more than the compiler/RTS. The X10 Programming Model Support for productivity Axiom: OO provides proven baseline productivity, maintenance, portability benefits. Axiom: Design must rule out large classes of errors (Type safe, Memory safe, Pointer safe, Lock safe, Clock safe …) Axiom: Design must support incremental introduction of explicit place types/remote operations. Axiom: PM must integrate with static tools (Eclipse) -- flag performance problems, refactor code, detect races. Axiom: PM must support automatic static and dynamic optimization (CPO). Places / data distribut ion async / future / force Explicit Syntax scan / reduce / lift intra- place atomic