Application Partitioning - A Dynamic, Runtime, Object-level Approach

Size: px
Start display at page:

Download "Application Partitioning - A Dynamic, Runtime, Object-level Approach"

Transcription

1 Application Partitionin - A Dynamic, Runtime, Object-level Approach Dissertation submitted in partial fulllment of the requirements for the deree of Master of Technoloy by Anshu Veda (Roll no ) under the uidance of Prof. Sridhar Iyer Kanwal Rekhi School of Information Technoloy Indian Institute of Technoloy Bombay 2006

2

3 Dissertation Approval Sheet This is to certify that the dissertation entitled Application Partitionin - A Dynamic, Runtime, Object-level Approach by Anshu Veda (Roll no ) is approved for the deree of Master of Technoloy. Prof. Sridhar Iyer (Supervisor) Prof. Anirudha Sahoo (Internal Examiner) Prof. Om Damani (Internal Examiner) Prof. Varsha Apte (Chairperson) Date: Place: i

4

5 INDIAN INSTITUTE OF TECHNOLOGY BOMBAY CERTIFICATE OF COURSE WORK This is to certify that Ms. Anshu Veda was admitted to the candidacy of the M.Tech. Deree and has successfully completed all the courses required for the M.Tech. Proramme. The details of the course work done are iven below. Sr.No. Course No. Course Name Credits Semester 1 (Jul { Nov 2004) 1. IT601 Mobile Computin 6 2. HS699 Communication and Presentation Skills (P/NP) 4 3. IT603 Data Base Manaement Systems 6 4. IT619 IT Foundation Laboratory IT623 Foundation course of IT - Part II 6 6. IT694 Seminar 4 Semester 2 (Jan { Apr 2005) 7. CS686 Object Oriented Systems 6 8. EE701 Introduction to MEMS (Institute Elective) 6 9. IT630 Distributed Alorithms IT608 Dataminin and Data Warehousin IT680 Systems Lab. 6 Semester 3 (Jul { Nov 2005) 12. CS601 Alorithms and Complexity (Audit) CS681 Performance Evaluation of Computer Systems and Networks 6 Semester 4 (Jan { Apr 2006) 14. CS705 Web Search and Minin (Audit) 6 M.Tech. Project 15. IT696 M.Tech. Project Stae - I (Jul 2005) IT697 M.Tech. Project Stae - II (Jan 2006) IT698 M.Tech. Project Stae - III (Jul 2006) 42 I.I.T. Bombay Dated: Dy. Reistrar(Academic) v

6

7 Abstract With the advent of increase in the computational complexity of the prorams, it seems conducive to distribute a centralized proram written for a standalone system onto a network of nodes. Application partitionin is one such technique, that aims at division (allocation) of application components amonst dierent hosts in the network, thereby ettin a standalone application executed in a distributed settin. Most of the existin work in application partitionin, uses classes as the basic component for partitionin. However, the behavior of an application is determined by the interaction of its entities at run-time. In an object-oriented proram, the run-time entities are principally objects. We believe that, a more eective and relevant partitionin mechanism can be created by considerin objects as the basic components for distribution. We also believe that, a truly exible partitionin system should as far as possible, postpone the decision reardin the placement of each component to run-time. Any such decision should try to optimize on both - the number of remote invocations that a distribution stratey would result in, as well as the load distribution on the available hosts. We thus propose a workin architecture that exploits the dependency relationships between the components, to build a model prior to the proram execution. At run-time, the model proressively incorporates the information about already allocated components and helps in decidin the position of new component.

8

9 Contents Abstract List of ures i v 1 Introduction Application Partitionin Motivation Problem Statement Thesis Outline Related Work Introduction Existin Middleware Technoloies Distribution Infrastructures Issues Related with RMI Distribution Infrastructures as backends Doorastha Partitionin Schemes Features of a Partitionin Scheme Addistant and J-Orchestra Panaea Coin Application Partitionin - A Taxonomy Object-level Partitionin - Architecture and Desin Introduction and Motivation Architecture for Object Level Partitionin An example Dependency Analyzer Sinicance of initial placement Statistical Approach to O-L Partitionin Bayesian Belief Networks - Applicability iii

10 iv Contents Dependency Model Translator Run-time Analyzer and Query Enine Object allocation decision Functionin of Run-time Analyzer Run-time System Comparison with the Related Work Implementation Details Standalone Prolin Codin the object model - BBN Run-time Issues Extensions to the current Implementation Code Translation and Instrumentation for Run-time Conclusion and Future Work 35 Biblioraphy 37 Appendix 39 A Example 39 B Instrumentation and Prolin 42 B.1 Tracker Class B.2 Prolin Implementation B.3 Prolin Output B.3.1 Object Information Table B.3.2 Dependency Matrix B.4 Model C Example - Translated Code 51 C.1 Supportin Proxy class C.2 Supportin Wrapper class C.3 Instrumented CarModel class

11 List of Fiures 1.1 Standalone vs Distributed Application Proxy-Based Approach-Transparent handlin of remote and local references Panaea - Object Graph Application Partitionin Taxonomy Class vs Object Level Partitionin System Overview An Example Dependency Analyzer BBN - An Example network Runtime-Analyzer Illustration of the runtime Prolin Flow BBN Generator An example vistor pattern B.1 Taed object information extract B.2 Dependency Matrix B.3 Dependency Matrix v

12

13 Chapter 1 Introduction Distributed computin has emered as an inevitable need in the modern world of larescale systems and hih power networks. Since quite a lon while however, the emphasis has been on client-server prorams and to an extent, concurrent prorams intended for parallel prorammin. In current-day scenarios where there are multiple complex applications, deployed on a network of multiple nodes usin widely distributed resources, distributed execution is hihly useful. However, codin such an application is not so easy. Prorammin lanuaes like C/C++, Java provide RPC 1 -based RMI 2, CORBA and like techniques. However, these techniques do not provide enouh transparency to the prrammer. It is thus desirable to have a system which not only automatically distributes a standalone application, adaptin to varyin distribution settins, but also provides the advantaes of distributed computin. 1.1 Application Partitionin Application partitionin refers to, breakin up of the application into components while preservin the semantics of oriinal application. The source application miht be desined, implemented and debued to run on a standalone system. The resultin components however, are distributed so as to take advantae of distributed settin. 1.2 Motivation Partitionin of Object-Oriented prorams is motivated by the followin reasons : Distribution of proram components Considerin the scenario of multiple lare-scale, multi-user, heteroeneous applications usin a wide variety of resources in a network. Code for a standalone system based application, as shown in Fiure 1.1 would be monolithic, functionin at some 1 Remote Procedure Call 2 Remote Method Invocation-The object oriented counterpart 1

14 Motivation central node makin expensive network calls. A distributed application would however, have components (framents) distributed all over the network 1.1, reducin amount of remote communication overhead, thereby optimizin the proram execution. Fiure 1.1: Standalone vs Distributed Application For illustration, consider a lare bankin application, which has its databases distributed over eoraphically separated areas. A standalone code would be performin all the computations at the server end and make expensive network calls, whereas a distributed application can have computations dispersed accordin to resource distribution. In addition, idle hosts can share the load of a busy system by hostin a few components. With the increase in the computational complexity of the prorams, as well increase in number of network resources, it makes sense to have a tool that could distribute a centralized proram written for a standalone system on to a network of nodes. Such an idea comes with the natural advantaes of distributed computin - load reduction, resource sharin and to an extent improvement in concurrent execution. Thus, assumin the presence of an underlyin reliable, hih-speed computer network, on one hand when we would like to have distributed components of a sinle proram runnin at dierent computer nodes, at the same time we do not want prorammers to worry about the distribution aspects while codin. In other words, we would like to separate the distribution concerns from application loic. Abstraction over the middleware Java, C# provide Remote Method Invocation (RMI), CORBA and like mechanisms, for developin remotely invocable components. However, these middleware technoloies are complicated to code. They have special codin constructs, and pro-

15 1.3. Problem Statement 3 rammer has to think about the deployment scenario while desinin the classes. Java RMI for example, needs each remote class to be specially dened to extend a special interface. Creatin a remote object and ettin its access on remote node is a tedious job. Abstraction over deployment scenarios Primarily been desined to cater to client-server systems, current middleware technoloies also fail to provide enouh abstraction. The prorammer has to think and consider the distribution aspects while desinin the application. Finally, these constraints prevent the proram to be re-deployed eciently in dierent distributed settins.the above aruments justify the need of an automatic partitionin system, that optimally partitions source application written for a standalone system. In other words, a system that helps separate distribution concerns from application loic. We have studied and classied existin partitionin mechanisms, identied their limitations and subsequently desined a workin architecture which provides enouh exibility even at run-time to distribute components(objects). We have desined a Decision analyzer which aims at placin components intelliently without much human-intervention, accompanied by a run-time alorithm that uses modication of an existin backend (Doorastha [Dah00]) for distribution. 1.3 Problem Statement This thesis proposes a novel architecture for application partitionin - an automated, object-level, dynamic, run-time partitionin system, more specically a distribution analyzer and decision enine. We believe, that proposed architecture, would be an ecient and exible solution to the application partitionin problem. We have identied dierent issues involved in each component of the architecture and suested solutions for the same. The key ideas which make our approach novel, include the followin: Finer ranularity of components, considerin objects and not the classes. A statistics-based dependency model to represent interdependencies between application components. A truly dynamic, run-time allocation scheme for distribution of components We feel that ner ranularity partitionin decisions, would lead to more exibile and ecient partitionin mechanism. In addition to the ranularity of partitionin, it is also important to decide the placement of dierent components on available hosts. Finally, we stronly feel that there are numerous factors that can aect object allocation decisions, some of which come into picture at run-time. The existin systems are limited in the sense,

16 Thesis Outline that they statically decide the component allocation, before the execution of proram. Most of them depend on user-specication and do not emphasize on intial placement decision. This certainly is not a very ood idea for lon-runnin, lare-scale prorams, havin multiple components. We have implemented a statistics-based Decision Analyzer. This tries to learn and represent dependencies as well as independencies (between the components) as a probabilistic model. The run-time alorithm uses and updates this model. It is exible enouh to account for factors like load distribution, and hence is truly dynamic. We have used Java for the demonstration of our ideas. However, the ideas discussed are in eneral applicable for OO lanuaes. 1.4 Thesis Outline Chapter 2 discusses related work in application partitionin, based on which we propose a taxonomy for application partitionin. Chapter 3 discusses the various blocks of proposed O-L partitionin architecture includin the vrious desin decisions that were taken. Chapter 4 hihlihts the implementation details. Finally, we conclude in chapter 5 hihlihtin some limitations and future work.

17 Chapter 2 Related Work 2.1 Introduction The idea of distributed computin was introduced, based on RPC by lanuaes like Java. RMI 1, CORBA in Java or DCOM in C++, allowed user to access remote objects, and execute methods on them. However, all these are more suited for desinin client-server paradim based architectures. After these, there came up systems, which were built over middlewares like RMI/CORBA. They enable easy code eneration, for remote objects. These were then built upon by front-end systems which used some partitionin strateies to identify components to be distributed. The problem of partitionin in literature has also be dealt with mechanisms that work by modifyin the execution environment of application. This has been referred to as the implicit approach in [Spi02]. These systems do not rely on the prorammin lanuae. Instead, they use a Distributed Shared Memory(DSM) environment. DSM mechanisms involve cachin and replication, which can be done at dierent levels like pae and object. Thouh they make thins more transparent, as discussed in [Spi02], the eciency of these systems is not very commendable. Also, they are often non-standard and cannot be extended to dierent machine architectures. Thus, we have restricted our focus to what has been referred to as explicit approach in [Spi02]. To explain briey, explicit approach works from within the prorammin lanuae, rather than modifyin execution environment. Thus all the solutions that we discuss, actually form a layer above the standard middleware of the correspondin prorammin lanuae, and hence are more standard. The related work has been discussed under four heads. Section 2.2 discusses in brief about existin standard middlewares. Section 2.3 discusses the work done on the distribution infrastructures. Distribution infrastructures implement distribution policy, suested by the partitionin stratey. Section 2.4 discusses the existin work on partitionin strateies and mechanisms. 1 Remote Method Invocation 5

18 Existin Middleware Technoloies 2.2 Existin Middleware Technoloies Popular prorammin lanuaes like C++, Java,.NET provide distributed constructs for remote execution. This desin is reatly inuenced by the RPC mechanism. In the RPC mechanism, the caller invokes a dummy procedure(stub) on local machine, and this inturn sends network messae to the server which ets the method executed on actual object and returns the results. RMI does this at object-level. Each remote object has a stub which acts as a proxy at the client site for transferrin the call to the actual object. RMI [RMI96] is Sun's proprietary client-server oriented distribution technoloy for the Java lanuae. It allows the prorammer to create remote classes, i.e. classes that implement the java.rmi.remote interface. The user also provides an interface listin all the methods that may be called remotely which enforces such methods to be public. It uses the concept of reistry or name server, which hosts the objects. Each object is bound with a specic name on the server. When queried, the object server then returns a remote reference of object. This reference can then be used to invoke remote methods. Once the objects are reistered by the RMI system, they are represented as network references and remote objects are always passed by-refvalue. The backend used in current implementation is based on RMI. CORBA is based on the same basic principle, except that its more useful for interoperability between dierent platforms. DCOM for C++, aain uses the same concept of interfaces and stubs. The essence is that usin existin middleware standards, codin a distributed application requires a lot of plannin in the desin phase of application itself, concernin where dierent objects and classes should be created and how they should be accessed. Moreover, it is a lot of hassle to actually code such an application, because of special remote-enabled code constructs.

19 2.3. Distribution Infrastructures Distribution Infrastructures We dene Distribution Infrastructures as systems that form a thin layer over the middleware. These when provided with detailed distribution policy specication, usually work by code transformation and some extra code eneration. These systems have to deal with issues a little more specic to the middleware bein used. Most of the systems based on Java use RMI Issues Related with RMI RMI constructs in Java try to minimize the dierence between distributed and nondistributed syntax. Thus method invocation syntax is similar to that of eneral nondistributed Java prorams. However, there are certain issues that arise when we try to use it for distributin a eneral-purpose OO proram. First of all, each remote class should necessarily have an interface and an implementation. In addition, the exception handlin is not very convenient. Actually RMI was basically desined for client-server applications and so is not very convenient to proram a eneral OO system with inter-class relationships. Below is a list of few issues that arise when RMI is used for prorammin a eneral OO proram. Static and nal methods cannot be dened in RMI implementation classes. RMI only permits the use of public and abstract modiers for the method declaration in remote interfaces. Also in cases where class is hosted on multiple nodes, handlin static elds is a problem if they are not constants. Consistency of Object References (Identity of Objects) { Equality operator for remote objects(equals or == ) may not work properly. For e.. If two remote references of same object obtained from dierent sites, the == operator only compares references, and does not work accordin to OO semantics. { Reference translation does not happen when object is moved amonst multiple hosts. To explain further, if an object is passed from site 1 to 2 and then 3; when referenced from site 3, the object would be referred via site 2. Local object reference retrieved from a remote host as a RMI reference has to be accessed via indirect path. System Classes (with and without native code). Source code for system classes is not available. Thus we cannot expect system objects to be remotely accessible. But objects of system classes like Vector, if be dened remotely can help improvin performance.

20 Distribution Infrastructures Inheritance Super class needs to extend UniCastRemoteObject, even if sub-class needs to be made remote-capable. This does not seem to be quite correct if we o by OO semantics. { All implementation classes need to extend from UniCastRemote Interface. In Java, only sinle inheritance is allowed. This implies all super classes need to be modied (OO paradim violation). Transformations may cause breaks in inheritance chain and instance of, sub-classin may not work as in a centralized proram. { In case of classes extendin system classes, this too is not possible. Methods with packae scope have to be made public as the interface methods have to be public, or otherwise all packae references should be uaranteed local. Aruments By default a non-rmi object is passed by-value. System Objects cannot be made remotely accessible. If all the objects are made remote capable, we can handle usual pass-by-reference semantics of Java prorams. However, this may be too expensive in some cases. Based on these considerations for remote execution in addition to usual passin modes(by-value, by-reference) followin modes can be dened. { By reference value(ref value) The callee operates on the oriinal object via the iven reference and thus may alter its state. However, the reference cannot be modied. This mode is used when a centralized Java proram runs. { By copy The callee operates on a (deep) copy of the oriinal object which itself remains unaected. { By visit The object is moved back, after the invocation returns. { By move Here, the runtime system moves the object physically into the callee address space, and redirects any old references. Handlin of synchronized classes RMI does not allow synchronized methods to be declared in interface dened for the public class. Slow marshallin and de-marshallin process - RMI stubs serialize all the parameters bein passed(except network references) on a remote invocation. This process is very time consumin.

21 2.3. Distribution Infrastructures Distribution Infrastructures as backends These distribution infrastructures have been used as backends. The partitionin schemes as discussed in section 2.4, enerate a distribution or a partitionin policy, which is implemented at run-time by these backends with remote enabled code over the middleware. These systems allow specication of distribution policy for each class and its methods. The specication details some of the followin: 1. Location of the class if needed to be xed on one node J-Orchestra[TS02] 2. Location of an object when bein instantiated Doorastha[Dah00] 3. Parameter passin mode(visit, move, copy) for formal aruments for each method. 4. Classes can be taed as miratable in which case at run-time their instances can mirate to other nodes as aruments or return values durin a remote method invocation. Most of the systems have used statically determined positions computed by analysis or specied by the user. Thus run-time system never has to bother about the position of object. Some of the ways used to specify the distribution policy include the followin: 1. Additional Constructs: Additional keywords and constructs extendin Java lanuae are provided to declare remotely accessible classes. Java Party[PZ97] 2. Comments: Comments written above the classes in a specied format. Doorastha[Dah00] 3. Conuration File: Have conuration le per class. J-Orchestra[TS02], uses an XML con le, Addistant [TSCI01] uses a special conuration le, indexed by hosts for the same. These systems have a translation component which processes the distribution policy and transforms the source code into remote-enabled code accordinly. Another major task is to handle the various issues related to the middleware (RMI). There are a number of systems that provide such infrastructure support. Javaparty[PZ97], Doorastha[Dah00], J-Orchestra backend[ts02], Coin Backend[HS99], Addistant[TSCI01].. Most backends try to solve the issues hihlihted above. We are discussin the architecture of Doorastha in detail, as it has been modied and used as distribution backend in our architecture Doorastha Doorastha [Dah00], has a compiler subsystem that uses annotations within the source code (as comments), to enerate the RMI equivalent code.

22 Distribution Infrastructures Translator The Doorastha translator, apart from code conversions necessary to handle the RMI issues as discussed in section is responsible for maintainin transparency between remote and local object communication The key principle, which has also been used in javaparty[pz97], J-Orchestra backend [TS02] is a proxy-based approach shown in Fiure 2.1. This approach tries to maintain the transparency between local and remote Fiure 2.1: Proxy-Based Approach-Transparent handlin of remote and local references references of an object bein accessed by makin use of elicit mechanism of inheritance and polymorphism. More details can be referred from [Dah00]. The translator enerates the necessary code to implement the same Runtime System Doorastha run-time is a distributed alorithm, where run-time entities sit at each host and interact. This sub-system manaes translation of object references at run-time. It provides object factories at each host. Also, it maintains references of all objects, instantiated on a particular node. It manaes network-related issues like resolvin host-names etc. It manaes the start-up and runnin of run-time systems at all the hosts. It also helps manain dierent arument-passin modes by providin support for miration.

23 2.4. Partitionin Schemes Partitionin Schemes The distributed infrastructures discussed in section 2.3 expect a detailed specication about component. Specication in literature [TS02] has been dened as - the location of component instantiation, its mobility, and if it is dened miratable, a miration policy describin when it will move. This can be dened by specifyin the parameter-passin mode(visit/move, reference, value) in the conuration le for each function. We have mainly concentrated on initial placement as of now. Thus the distribution policy too considers the same. A partitionin scheme tries to use some heuristics to enerate a distribution policy. Hiher distribution causes more components to be distributed across dierent hosts. With increase in distribution, more local interactions are converted into remote. Remote invocations increase network overhead. Thus thouh various reasons suested above in section 1.2 motivate to distribute, the tradeo is that distribution increases remote communication overhead. A partitionin mechanism should try to balance between these two contradictin factors. We have identied some factors, that can be used to characterize a partitionin scheme Features of a Partitionin Scheme Granularity of Distribution Component Usually an OO proram comprises of classes and objects, and hence on the basis of ranularity of partitionin component we can classify the existin partitionin schemes. 1. Class-Level Partitionin This kind of partitionin aims at roupin closely interactin classes toether. The source code comprisin of dierent classes can be divided across the hosts. Some systems may also support replication of classes. This kind of partitionin is based on the assumption, that objects of a sinle class exhibit similar behavior, and will be usin same resources and hence should be instantiated on the same host. In a nutshell, all objects of one class are created on same host. Moreover, classes are clustered into roups. 2. Object-Level Partitionin This kind of partitionin aims at clusterin of objects. Object level partitionin stems from the aruments like - reusability bein an important aspect of OO prorammin, objects from the same class may exhibit dierent behaviors when they interact with dierent objects. Also, allocatin all objects of one class to one node is a reat limitation. Thus O-L Partitionin, does not primarily aim at division of source code, but division of objects across the hosts.

24 Partitionin Schemes Analysis Techniques The partitionin scheme needs to identify closely interactin components so that they can be co-located. This involves proram analysis, to identify dependency relationships between the components. The analysis can be static which can in turn be at source level or bytecode level. Alternatively, prolin can be used, to study the component interactions and subsequent los be then analyzed and classied. 1. Static Analysis Involves techniques like, call-raph creation and doin dependency analysis based on it. Available libraries for code analysis can be used. Source-code level analysis are more easy to understand, whereas Bytecode level analysis techniques are extendible to system classes. 2. Dynamic Analysis Involves instrumentation of the existin code, to prole application runs. This prolin aain can be of two types. It miht be on the standalone code itself, or remote-enabled code Allocation Decision This feature is based on the time of actual allocation decision. All the systems we know of, work by pre-decidin the component allocation before the execution of proram starts. 1. Oine Component allocation is decided and specied in some conuration le or in the form of annotations within the proram. 2. Online Component allocation decision is postponed till run-time. As per our knowlede, there are not any such systems usin online techniques as yet Addistant and J-Orchestra J-Orchestra [TS02] is a class-based partitionin mechanism. J-Orchestra also has a backend as discussed in section 2.3. Addistant[TSCI01] has a conuration le, which can be indexed by hosts. This le is used by the backend for code eneration. For each host, a class-level or packae level specication may be done. J-Orchestra too has a similar conuration le, where-in for each class, properties can be specied. For J-Orchestra however, partitionin mechanism, is expected to enerate this le. Once the host specication has been provided, J-Orchestra allows user to dra and drop classes to dierent hosts. The classes however et allocated in roups. A static analyzer and proler component are used to each time verify the oodness of partitionin

25 2.4. Partitionin Schemes 13 by prolin. It reports statistics on the interdependencies, based on which an ecient conuration can be decided. Major contribution of addistant and j-orchestra has been to enable distribution of leacy software. Operatin at bytecode level, they try to make objects mobile at runtime in the presence of unmodiable code (like that of JNI) Panaea Panaea [Spi02] uses Doorastha [Dah00] as the backend. Panaea does a primitive level of Object-level Partitionin. It uses a raphical tool to represent the proram structure as an object-raph. This object-raph is built usin purely static analysis of the code. An object raph Fiure 2.2, represents the followin: - The type information (data type) is considered and the data ow at the type-level is represented as a raph. - Dierent types of objects - static and dynamic (Concrete and indenite) are identied, for each class. The concrete are the ones which are certain to take specic value on creation. The indenite ones may assume one amonst a rane of values. E. Producer in producer/consumer example is concrete whereas an inteer could be indefinite. Dierent constructs of the proram - Constructors, static initializers, main(), Thread.run() Fiure 2.2: Panaea - Object Graph etc have been used to cateorize all the objects into the above cateories. Such objects become the nodes of the raph - Edes encode the followin relationships between the objects - Creation, Usae, reference(import, export). These can be identied by the analysis of method aruments, return types etc. - The object denitions are applied recursively and added to the raph. E. For each concrete object, concrete and indenite objects are added for the elds etc accordinly. - Finally, the references are propaated transitively. Once the object raph 2.2 is constructed its displayed to user, and user can assin objects to dierent hosts. For numerous objects round-robbin allocation is done amonst the hosts. Panaea then enerates the actual annotated code that can be interpreted by Doorastha Coin Coin [HS99] is implemented for COM-DCOM systems. It can support object-level partitionin. Input to the Coin system, is a COM application. Coin instruments

26 Partitionin Schemes and proles this application by invokin DCOM code, to actually calculate the cost, if components were distributed. A component can be a class or an object. Coin supports dierent types of classiers. The system can thus be conured to dene an appropriate component. Two of them for e are - Static type Classier : Classication descriptor is just the type. I3C Classier : Classication descriptor is full component call chain of instantiation request, concatenated with static type. Coin then creates a component raph, where nodes include the dierent component descriptors and edes represent the communication costs, calculated durin prolin. As Coin considers communication between remotely located components by-copy, all the functional aruments add up to communication costs. This raph can then be partitioned usin a standard raph partitionin alorithm, into number of partitions equal to number of hosts. The system has been mainly tested, for client-server applications.

27 2.5. Application Partitionin - A Taxonomy Application Partitionin - A Taxonomy Based on our study and analysis, we present a taxonomy of possible application partitionin approaches in Fiure 2.3. Application partitionin can be dealt with implicit or explicit mechanisms. Explicit mechanism based solution should have a partitionin stratey and a distribution backend. Distribution backend implements a partitionin policy specied by the partitionin stratey. Partitionin stratey aain can be classied on the basis of ranularity of partitionin component, allocation decision and analysis technique. Fiure 2.3: Application Partitionin Taxonomy The related work has been partly concentrated on distribution infrastructures - Doorastha [Dah00], Javaparty [PZ97], Addistant [TSCI01]. Thouh J-Orchestra does some static analysis, its major contribution has been on the distributed infrastructures front. Panaea [Spi02] advocated O-L partitionin in a very limited sense. It needs user to specify allocation details. Coin[Hun98] is O-L system, but has other drawbacks as discussed in section Its primarily desined for COM but still tries to eliminate human intervention. COM does dynamic analysis(prolin), but its done on DCOM based code.

28 Application Partitionin - A Taxonomy As per our knowlede, there does not exist any system which takes run-time allocation decisions. Also, none of the systems have a sophisticated analysis technique. Panaea and J-Orchestra do static analysis and are hihly user dependent. Coin does dynamic analysis and prolin but has the limitation that passes all aruments by complete copyin. In the next chapter3, we discuss our architecture for an object-level, dynamic analysis, and run-time allocation-decision based automatic partitionin system.

29 Chapter 3 Object-level Partitionin - Architecture and Desin 3.1 Introduction and Motivation This section discusses the detailed desin of an object-level, dynamic, automatic partitionin system which takes run-time allocation decisions. The key motivation behind this architecture is, that we want to exploit as much information as possible (available), oine and yet provide enouh exibility at run-time, to relocate object allocations dependin upon load distributions. Dynamics of an application are decided at the run-time, where objects are most relevant to partition. O-L partitionin as discussed in Section aims at clusterin closely interactin objects, to optimize on network overhead, while the application is distributed across a network of hosts. We stronly believe that O-L partitionin is an ecient partitionin technique motivated by the followin reasons: Importance of has-a relationships Class represents the behavior of a proram component, whereas an object is its instance, actually functional at run-time. Classlevel partitionin systems view proram as a collaboration of classes and inore the has-a relationships. A class can have multiple instances. Multiplicity of objects is one aspect which cannot be considered while doin a class-level partitionin. Instance Behavior In literature, most of the work has been on partitionin the application by placin its classes on dierent nodes. However, an important point here to note is that in a lare application, one class may be interactin with many other classes, which in turn may not be related at all. To explain with an example, we can consider distribution of a proram comprisin of Vector class 3.1 bein used by two totally unrelated classes for storin objects. Now keepin Vector class and all related classes on one node or makin remote references for all classes is not a ood idea. The key point to note here is that instances of vector class may be useful in two totally dierent contexts and hence we arue that a distribution policy considerin distribution of objects is more plausible. Arument Passin Modes Another point to be considered is that in class-level partitionin systems, while denin properties of the class-methods, we x the 17

30 Introduction and Motivation Fiure 3.1: Class vs Object Level Partitionin parameter-passin mode (call-by-visit/call-by-move/copy) for each method. Multiple invocations of the same method however by dierent classes, may make more sense to have dierent callin modes at runtime. Specially, if the class can be used in dierent contexts and its dierent instances are distributed. O-L partitionin surely provides reater exibility as far as the partitionin and distribution is concerned, but is complex to implement. In a lare-scale proram, however, where there are heavy objects, it certainly makes sense to consider dierent application scenarios, and object level interactions and then place the object. Section 3.2 describes an overview of architecture partitionin system. Subsequent sections then elaborate on dierent blocks of the same.

31 3.2. Architecture for Object Level Partitionin Architecture for Object Level Partitionin As discussed above in section 2.4, none of the existin schemes provide much exibility. We have tried to make this as exible so that it can be further extended to incorporate as many as factors possible at run-time. Fiure 3.2: System Overview The system as shown in ure 3.2 beins with the input of application source code, written for standalone environment. This code is analyzed by the dependency analyzer to enerate a model representin dependency relationships between the objects. The dependency analyzer also plays the role of identifyin dierent contexts in which objects may be created. This code is then iven to a translator, that uses some code analysis/manipulation library to enerate a remote enabled code. At run-time then, as proressively objects are allocated, all the available information is used to predict the most suitable location for object allocation. The run-time sits as a layer above RMI. In the next few sections, we discuss each of the blocks of the proposed architectures in detail accompanied with a tested example to illustrate our architecture.

32 An example 3.3 An example This is a very simple proram as depicted by the class-diaram in ure 3.3. The source code for the example is attached in the appendix A. We assume that there are three hosts available for placement. We will walk throuh this section illustratin this example to explain the functionin of each block. Fiure 3.3: An Example

33 3.4. Dependency Analyzer Dependency Analyzer The oal of a dependency analyzer is to learn application patterns, dependency relationships between the dierent components and represent it in a model that can be used at run-time. Fiure 3.4 shows the architecture of our dependency analyzer. The standalone code is instrumented and proled to enerate dependency related information. There can be several such runs of the proram. These can then be used by a learner to learn object dependencies. Fiure 3.4: Dependency Analyzer Section explains the need of a distribution analyzer. Subsequent sections mainly elaborate on the learner, illustratin our analytical model and justifyin its applicability Sinicance of initial placement We feel stronly that there is a need for an optimal partitionin stratey, if partitionin process has to be completely automated. Even if backend provides miration support, miration of heavy objects can often be a network overhead. Thus, a ood partitionin

34 Dependency Analyzer software must try to optimize initial placement of object. Now there are several factors that may inuence placement of an object O. Location of other objects that invoke methods on O Resources accessed by O. This is more class-dependent Control ow of the proram, which miht inuence creation of other objects, that may be accessed by O and thus indirectly the placement of O itself. Host-load scenario Statistical Approach to O-L Partitionin O-L partitionin aims at optimal placement of components - instances, to the most optimal position in the network at run-time, so as to minimize the communication overhead as well as use the distributed environment. Component interactions can be minimized, if hihly interactin components are co-located as discussed in Section We propose a slihtly dierent approach to this problem, based on machine learnin. We suest the use the prior knowlede available from prolin and represent it as a model. A probabilistic model is apt because if we have numerous runs of an application and a lare prolin data, a dependency model ttin most of the runs of the application can be built. Thus we suest the applicability of dependency-based classication techniques for this problem. The idea is to train a classier from the prolin runs for an application. This classier can be used to classify the instances at run time to dierent hosts. We however think, that this should be a case of active learnin classication as dependin upon the environment, the model should keep on adaptin Bayesian Belief Networks - Applicability Before explainin the details of the model, we would like to specify clearly what a component denotes in our desin. Each component in our system is identied by its unique call-trace(the exact sequence of method calls which led to the creation of the instance). It has a class-type(the class of which it is an instance). Thus one class can have multiple components represented. We are tryin to model the relationships between these components, on the basis of references. Bayesian Belief Networks [BBN98] is a well-known statistical modellin technique. BBNs model relationships between the dierent variables by representin the conditional dependence as well as independence between them. Structurally, BBN is a set of nodes and arcs. Nodes represent the variables. Each variable can assume a set of values(discrete/continuous). These values are also termed as class attribute 1 sometimes. 1 BBN is a well-known classication technique

35 3.4. Dependency Analyzer 23 Fiure 3.5: BBN - An Example network Arcs between the nodes represent dependency relationships. Each node is annotated with a probability table. Each row of this table, denotes a probability - the chance of variable to assume a value conditioned on dierent values assumed by its parents 2. Each combination of values of variable and its parents is a separate row. An example BBN could be as shown in Fiure 3.5. The BBN can easily be used to represent the followin: Conditional dependence as well as independence of objects on other objects. Cumulative eect of already allocated objects on other objects. Communication Overhead can be incorporated into the probability tables of nodes. We assume that objects are always passed-by-reference between components(as aainst Coin2.4.4). However, the interaction between the aruments passed when componenta invokes a method on componentb, passin componentc as arument, can be accounted as interaction between C and B. Thus DAG very aptly capture the dependency relationships between the objects. BBNs can be extended to also handle, dierent application control ows, and incorporate them usin probabilistic BBN learnin alorithms. Dependency information athered from dierent prolin runs, can be combined by a learner to develop a model. BBN learners can use this data as trainin data. Each prolin runs' output suests a dierent BBN structure. The BBN learnin would therefore be a kind of search amonst these structures, for an appropriate model. 2 Parents of node A, include nodes havin an outoin ede to A

36 Dependency Analyzer Dependency Model We model each component(as dened in 3.4.3) in our system as a Bayesian Node. The set of hosts represent the class attribute for each node. Thus each arc represents dependency between the components. Each row of the probability table denotes one conuration 3 of parent objects and the correspondin node. Accordin to the approach proposed, if we have lare los indicatin instantiation histories over several runs of the proram, a BBN learnin alorithm [Bou94] could be applied to learn a model that would be true representative of the application behavior for most runs. This would include the followin : Number of times that component occurs in all runs, and for each such existence, number of times a reference from a particular incomin parent was made. Averae communication overhead. This overhead would involve : { Number of times the two components communicate { Cost of exchane of immutable parameters like Strin 4 and others that are passed by total copy(if any) Location Constraints can be modelled in probability tables. By location constraint we mean that instances of a few classes may be constrained to be anchored on particular hosts Simplistic Version of the Model For the purpose of demo and to maintain simplicity, we have considered a sinle ow of application. For this sinle ow we try to develop a model, without usin specialized learnin alorithm. As per our simplistic version of the sophisticated dependency model, arcs of BBNs represent the referred to and referred by components for each node(component). We also consider communication overhead between two components as just the number of remote invocations Mathematical Formulation of the CPT Let the number of interactions of a component C i with component C j be N i;j. where C j 2 parent of(c i ) Number of rows in the CPT, sizeof(cp T ) = num of hosts num parents+1 (3.1) 3 object to host mappin 4 Java.lan.Strin

37 3.5. Translator 25 For a particular conuration(allocation) - A i;k, involvin C i and its parents 5, representin the k th row of the CPT, where H(C i ) represents the host allocated to component C i Number of remote invocations, R Ai;k = P H(C i )6=H(C j ) and C j 2 parent of (C i ) Chance of a conuration k denoted by chance Ai;k chance Ai;k = sizeof(cp T ) P is then computed as R Ai;t The CPT value P i;k for the k th row can then be computed as N i;j (3.2) t=1 (3.3) 1 + R Ai;k P i;k = P sizeof(cp T ) t=1 chance Ai;k chance Ai;t (3.4) For our example illustration, dependency analyzer takes as input the oriinal source code of appendix A and enerates a model as shown in appendix B.4. Further detail will be explained with implementation details in the chapter Translator The translator transforms the proram to incorporate remote capabilities. This component is dependent to a reat extent, on the middleware bein used.. Followin are the main features of a translator. Translator makes code remote-enabled. It takes code taretted for a standalone system, and transforms the classes, eneratin the interfaces and middleware related code. Followin code instrumentations are needed: { Object creation - Each new() has to be transformed to a query to run-time analyzer and followed by call to remote/local run-time system. { Method invocation - A function call will have to handle parameter passin modes or may have to make a previously local object remotely enabled etc. Similarly a return may need to create a remote reference to an existin local object { Method Return 5 This represents one row of the CPT

38 Translator Limitations of the middleware e.. those for RMI, hihlihted in section have to be handled. Code transformations may need to be made for the same. Code replacements E. Replace direct eld accesses by etters and setters, packae-scope access modiers, handlin ==,.equals operator etc. In addition it also involves handlin of some specic constructs E. static, synchronization, threads, inner classes, reection etc. Translation can be aain done at source code level 2.4.3as well as bytecode level as in The latter has the advantae that it can handle system classes as application classes except those usin machine-dependent constructs. However, the techniques discussed above should be applicable to both. We do not consider machine-dependent classes. J-orchestra2.4.2 exploits all the details for the various combinations of modifyable and unmodiable code and also discuss the solutions for the same. Code transformations from J-Orshestra can be added to a translator to increase the exibility of object allocation amonst the hosts. For the purpose of demo, we have only included application class objects for distribution.

39 3.6. Run-time Analyzer and Query Enine Run-time Analyzer and Query Enine Object allocation decision Fiure 3.6: Runtime-Analyzer Runtime decision on object allocation has been motivated for us by followin reasons: Postponin the nal allocation decision increases the exibility in allocation. It can help adjustin to varyin load scenarios on the host nodes. It can also help adaptin to situations like those of varyin resource locations(e.. Database Miration). Dierent control ows can lead to dierent sets of instantiations and hence, a more accurate placement, inuenced by already allocated objects will be taken. At run-time, we would like to use all decisions made reardin the components already instantiated, to be used as evidences. The load balancer feedbacks can be incorporated as weihts of hosts. This updation can be an external feedback from load-balancer, which obviously would present the actual load condition of the system.

40 Run-time Analyzer and Query Enine Functionin of Run-time Analyzer We have used, JavaBayes [jav98]. The functionin of the run-time analyzer has been explained in Fiure 3.6. This component plays the most important role in makin the architecture exible. The run-time analyzer as in our architecture is like a central oracle, for the system. It maintains the model learnt durin the oine phase. Runtime analyzer, is queried by the run-time system 3.2of each host whenever an object has to be created. Run-time analyzer uses the dependency model learnt by analyzer, propaates the current allocation as evidence in the BBN and updates the structure. We can use a standard BBN Inferencin software. We have used JavaBayes [jav98]

41 3.7. Run-time System Run-time System We briey explain the workin of our runtime architecture with our illustration. As specied in section 3.3 there are three hosts available. Fiure 3.7 illustrates the workin of runtime. Runtime is a distributed component sittin on each of the hosts. For the purpose of illustration, we x analyzer - the central oracle at Host-1. Suppose the main() of the proram starts at Host-3. When Host-3 ets a request for new object, it invokes the analyzer on Host-1 in step-1, sendin the current stack trace of the thread. Host-1 uses the runtime-analyzer and returns with some host say Host-2 in step-2. Followin this, Host-3 invokes the runtime object factory at Host2 in step-3 that instantiates a new object of specied type and return a remote reference in step4. Run-time system oers the necessary support durin execution to et the proram executed in distributed fashion. Fiure 3.7: Illustration of the runtime It is a distributed component present on each node where objects can be hosted. It interacts with the run-time analyzer, passin it necessary parameters like creator class, method, stacktrace of the thread, etc. Once the location of an object be decided, run-time provides object factories- one per node, binded as a well-known object. These factories handle creation requests for local as well as remote sites. It handles translation of references as the objects are passed as aruments to methods.

42 Comparison with the Related Work Ideal run-time system will support object miration as well and support modes like - call by visit/move and copy It maintains the information needed like stacktrace of the thread over the distributed nodes in a distributed fashion. Run-time systems at all nodes act as peers, manain object creation and references. 3.8 Comparison with the Related Work We expect that the above architecture would be more ecient and prove more exible than the existin softwares. In this section we try to compare our proposed approach to existin mechanisms. In literature [TS02], [Dah00],[PZ97], much importance has been iven to the backend systems, that manae object references at runtime and provide support for miration. Firstly, the analytical model that we propose usin statistical approach is a novel idea. Most of the systems in literature as discussed in Section 2.4 do static analysis. Dynamic analysis has been done in Coin with DCOM enabled code. We emphasize the sinicance of initial placement of the component. Most systems namely, [Spi02], [TS02] believe in user specifyin the initial position of the component(object/class). Thouh this provides room for user customization, a truly automated partitionin system can actually do some intellient work on this placement. We have identied some factors as discussed above and we incorporate them in our model. Secondly, none of the existin systems we know, support run-time decision based allocation. The usual desin of existin systems has been, to do some analysis (mostly class-based dependency), and enerate an allocation/partitionin policy oine. Panaea- Doorastha, section and for example, would let specication of each object as annotation within the code. However, this means that whenever a particular new instantiation has to be done it will be on a xed host. J-Orchestra, section on the other hand, tries best to make each object mobile(system class objects), so that it can be passed around as when instantiated from one host to other when functions are invoked. We arue that relyin on miration is not a very ood idea. Most work has been on the backend front, where policy is hihly dependent on user specication. The system closest to our desin is Coin [Hun98]. However, Coin mainly desined for COM-based systems is mostly taretted for client-server architectures has other shortcomins as hihlihted in Section Our idea of object classication is inuenced by Coin's I3C classier.

43 Chapter 4 Implementation Details We have shown the feasibility of this architecture, by implementin dierent blocks. This section hihlihts a few details of the implementation. We have implemented the entire architecture of the decision analyzer, as discussed in Section 3.2. The translation alorithm is straihtforward. We assume thus handcoded instrumented code to be the input of our implemented run-time alorithm. The desin of translator is discussed in Future extensions at the end of this chapter. The runtime analyzer uses a standard bayesian inferencin software. The run-time infrastructure, is a modication of Doorastha [Dah00]. It provides some features that our architecture proposes as a part of the run-time system. This has been discussed earlier with distributed infrastructures as explained in section 2.3. We have modied Doorastha run-time to provide basic run-time support. 4.1 Standalone Prolin As discussed in Section 3.4, we use dynamic analysis or prolin for dependency analysis, but do it oine, with standalone code. We have used Java Virtual Machine Tool Interface [jvm04] with JNI support. Prolin works by code instrumentation and event trappin. In other words, jvmti provides us an API throuh which we can dene our aents and execute necessary code on notication of dierent events like - JVM start/end. The code has partly been written in Java and partly in C. The Appendix B details further. Appendix B.1 is the Tracker class. The standalone code for prolin is instrumented to invoke methods of this class. The actual prolin which involves object tracin, method tracin, object-stacktrace maintenance and dependency matrix eneration is done in native code. The other options considered for prolin were - JVMPI [jvm], java.lan.instrument API [jdk96]. The former is now out-of-date and latter did not provide object tain which C interface allows. There exist some prolin tools yajp [yaj], [ejp], but most of them provide class based information and not object based. Fiure 4.1, shows the main loic used in the proler. We have used bytecode instrumentation, to record method invocation and object creation events. The output of prolin is : 31

44 Codin the object model - BBN Fiure 4.1: Prolin Flow 1. Object Information table - Unique stack traces encountered and their ids. Appendix B.3 shows the output of a sample run on the Motor car example. Each row of this table sinies one unique object type annotated by a unique stacktrace. Each class is represented as one object type too. This has been done for static data representation. All static methods invoked use this class-id. 2. Dependency Matrix - M(caller,callee) is number of times object id caller invoked a method on callee. Appendix B.3.2 shows a part of the matrix learnt. 4.2 Codin the object model - BBN For simple demo of the system, we have demonstrated Model learnin for a particular ow of the application. We have implemented a simplistic model as discussed in section The dependency data is just based on standalone prolin runs, and hence is independent of host knowlede. However, as discussed in section , the run-time will query the model for best location. Thus, the learner has to have a small component which we call BBNenerator. The BBNenerator, computes dierent combinations on object allocation based on each

45 4.3. Run-time Issues 33 Fiure 4.2: BBN Generator parent and calculates the CPTs for each node. In our system with simplistic model, it implements the alorithm discussed in section This codin is done in C. The Bayesian network learnt is represented in standard BIF(Bayesian Interchane Format) [bif98]. 4.3 Run-time Issues We have modied the Doorastha [Dah00] to incorporate object-level partitionin run-time alorithm. We needed to add support for interfacin with the analyzer enine. We have added support for maintainin the thread stacktrace durin the distributed execution, which is needed by the analyzer to index object creation requests in the object repository. 4.4 Extensions to the current Implementation Here we hihliht the desins of the components which could not be implemented, due to constrained time.

The SpecC Methodoloy Technical Report ICS December 29, 1999 Daniel D. Gajski Jianwen Zhu Rainer Doemer Andreas Gerstlauer Shuqin Zhao Department

The SpecC Methodoloy Technical Report ICS December 29, 1999 Daniel D. Gajski Jianwen Zhu Rainer Doemer Andreas Gerstlauer Shuqin Zhao Department The SpecC Methodoloy Technical Report ICS-99-56 December 29, 1999 Daniel D. Gajski Jianwen Zhu Rainer Doemer Andreas Gerstlauer Shuqin Zhao Department of Information and Computer Science University of

More information

Motivation Dynamic bindin facilitates more exible and extensible software architectures, e.., { Not all desin decisions need to be known durin the ini

Motivation Dynamic bindin facilitates more exible and extensible software architectures, e.., { Not all desin decisions need to be known durin the ini The C++ Prorammin Lanuae Dynamic Bindin Outline Motivation Dynamic vs. Static Bindin Shape Example Callin Mechanisms Downcastin Run-Time Type Identication Summary Motivation When desinin a system it is

More information

optimization agents user interface agents database agents program interface agents

optimization agents user interface agents database agents program interface agents A MULTIAGENT SIMULATION OPTIMIZATION SYSTEM Sven Hader Department of Computer Science Chemnitz University of Technoloy D-09107 Chemnitz, Germany E-Mail: sha@informatik.tu-chemnitz.de KEYWORDS simulation

More information

A SUIF Interface Module for Eli. W. M. Waite. University of Colorado

A SUIF Interface Module for Eli. W. M. Waite. University of Colorado A SUIF Interace Module or Eli W. M. Waite Department o Electrical and Computer Enineerin University o Colorado William.Waite@Colorado.edu 1 What is Eli? Eli [2] is a domain-specic prorammin environment

More information

Status. We ll do code generation first... Outline

Status. We ll do code generation first... Outline Status Run-time Environments Lecture 11 We have covered the ront-end phases Lexical analysis Parsin Semantic analysis Next are the back-end phases Optimization Code eneration We ll do code eneration irst...

More information

Ecient and Precise Modeling of Exceptions for the Analysis of Java Programs. IBM Research. Thomas J. Watson Research Center

Ecient and Precise Modeling of Exceptions for the Analysis of Java Programs. IBM Research. Thomas J. Watson Research Center Ecient and Precise Modelin of Exceptions for the Analysis of Java Prorams Jon-Deok Choi David Grove Michael Hind Vivek Sarkar IBM Research Thomas J. Watson Research Center P.O. Box 704, Yorktown Heihts,

More information

Module. Sanko Lan Avi Ziv Abbas El Gamal. and its accompanying FPGA CAD tools, we are focusing on

Module. Sanko Lan Avi Ziv Abbas El Gamal. and its accompanying FPGA CAD tools, we are focusing on Placement and Routin For A Field Prorammable Multi-Chip Module Sanko Lan Avi Ziv Abbas El Gamal Information Systems Laboratory, Stanford University, Stanford, CA 94305 Abstract Placemen t and routin heuristics

More information

main Entry main main pow Entry pow pow

main Entry main main pow Entry pow pow Interprocedural Path Prolin David Melski and Thomas Reps Computer Sciences Department, University of Wisconsin, 20 West Dayton Street, Madison, WI, 53706, USA, fmelski, reps@cs.wisc.edu Abstract. In path

More information

Salto: System for Assembly-Language. Transformation and Optimization. Erven Rohou, Francois Bodin, Andre Seznec.

Salto: System for Assembly-Language. Transformation and Optimization. Erven Rohou, Francois Bodin, Andre Seznec. Salto: System for Assembly-Lanuae Transformation and Optimization Erven Rohou, Francois Bodin, Andre Seznec ferohou,bodin,seznec@irisa.fr Abstract On critical applications the performance tunin requires

More information

Shifting up Java RMI from P2P to Multi-Point

Shifting up Java RMI from P2P to Multi-Point Walter Cazzola, Massimo Ancona, Fabio Canepa, Massimo Mancini, and Vanja Siccardi. Shiftin Up Java RMI from P2P to Multi-Point. Technical Report DISI-TR-01-13, DISI, Università deli Studi di Genova, December

More information

The Role of Switching in Reducing the Number of Electronic Ports in WDM Networks

The Role of Switching in Reducing the Number of Electronic Ports in WDM Networks 1 The Role of Switchin in Reducin the Number of Electronic Ports in WDM Networks Randall A. Berry and Eytan Modiano Abstract We consider the role of switchin in minimizin the number of electronic ports

More information

MetaTeD A Meta Language for Modeling. Telecommunication Networks. Kalyan S. Perumalla and Richard M. Fujimoto

MetaTeD A Meta Language for Modeling. Telecommunication Networks. Kalyan S. Perumalla and Richard M. Fujimoto MetaTeD A Meta Lanuae or Modelin Telecommunication Networks Kalyan S. Perumalla and Richard M. Fujimoto (kalyan@cc.atech.edu and ujimoto@cc.atech.edu) Collee o Computin Georia Institute o Technoloy Atlanta,

More information

Framework. Fatma Ozcan Sena Nural Pinar Koksal Mehmet Altinel Asuman Dogac. Software Research and Development Center of TUBITAK

Framework. Fatma Ozcan Sena Nural Pinar Koksal Mehmet Altinel Asuman Dogac. Software Research and Development Center of TUBITAK Reion Based Query Optimizer Throuh Cascades Query Optimizer Framework Fatma Ozcan Sena Nural Pinar Koksal Mehmet ltinel suman Doac Software Research and Development Center of TUBITK Dept. of Computer Enineerin

More information

Improving RFID System To Read Tags Efficiently

Improving RFID System To Read Tags Efficiently Improving RFID System To Read Tags Efficiently Dissertation submitted in partial fulfillment of the requirements for the degree of Master of Technology by Naval Bhandari (Roll Number 04329023) under the

More information

Language and Compiler Support for Dynamic Code Generation by Massimiliano A. Poletto S.B., Massachusetts Institute of Technology (1995) M.Eng., Massac

Language and Compiler Support for Dynamic Code Generation by Massimiliano A. Poletto S.B., Massachusetts Institute of Technology (1995) M.Eng., Massac Lanuae and Compiler Support for Dynamic Code Generation by Massimiliano A. Poletto S.B., Massachusetts Institute of Technoloy (1995) M.En., Massachusetts Institute of Technoloy (1995) Submitted to the

More information

IN SUPERSCALAR PROCESSORS DAVID CHU LIN. B.S., University of Illinois, 1990 THESIS. Submitted in partial fulllment of the requirements

IN SUPERSCALAR PROCESSORS DAVID CHU LIN. B.S., University of Illinois, 1990 THESIS. Submitted in partial fulllment of the requirements COMPILER SUPPORT FOR PREDICTED EXECUTION IN SUPERSCLR PROCESSORS BY DVID CHU LIN B.S., University of Illinois, 1990 THESIS Submitted in partial fulllment of the requirements for the deree of Master of

More information

to chanes in the user interface desin. By embeddin the object-oriented, interpreted lanuae into the application, it can also be used as a tool for rer

to chanes in the user interface desin. By embeddin the object-oriented, interpreted lanuae into the application, it can also be used as a tool for rer Usin C++ Class Libraries from an Interpreted Lanuae Wolfan Heidrich, Philipp Slusallek, Hans-Peter Seidel Computer Graphics Department, Universitat Erlanen-Nurnber Am Weichselarten 9, 91058 Erlanen, Germany.

More information

U1 S1 T1 U2 S1 T2 U3 S2 T3 U4 S3 T4

U1 S1 T1 U2 S1 T2 U3 S2 T3 U4 S3 T4 A Toolkit of Services for Implementin Fault-Tolerant Distributed Protocols Flaviu Cristian Department of Computer Science & Enineerin University of California, San Dieo La Jolla, CA 92093-0114, U.S.A.

More information

Declarative Specialization of Object-Oriented Programs

Declarative Specialization of Object-Oriented Programs INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE Declarative Specialization of Object-Oriented Prorams Euen N. Volanschi, Charles Consel, Gilles Muller, Crispin Cowan N 3118 Février 1997

More information

A Flexible Integration Strategy for In-Car Telematics Systems

A Flexible Integration Strategy for In-Car Telematics Systems A Flexible Interation Stratey for In-Car Telematics Systems Thomas Bauer Jens Herrmann Peter Liesmeyer Christopher Robinson-Mallett University of Potsdam Hasso-Plattner-Institute thomas.bauer @hpi.uni-potsdam.de

More information

Learning Geometric Concepts with an Evolutionary Algorithm. Andreas Birk. Universitat des Saarlandes, c/o Lehrstuhl Prof. W.J.

Learning Geometric Concepts with an Evolutionary Algorithm. Andreas Birk. Universitat des Saarlandes, c/o Lehrstuhl Prof. W.J. Learnin Geometric Concepts with an Evolutionary Alorithm Andreas Birk Universitat des Saarlandes, c/o Lehrstuhl Prof. W.J. Paul Postfach 151150, 66041 Saarbrucken, Germany cyrano@cs.uni-sb.de http://www-wjp.cs.uni-sb.de/cyrano/

More information

Imitation: An Alternative to Generalization in Programming by Demonstration Systems

Imitation: An Alternative to Generalization in Programming by Demonstration Systems Imitation: An Alternative to Generalization in Prorammin by Demonstration Systems Technical Report UW-CSE-98-08-06 Amir Michail University of Washinton amir@cs.washinton.edu http://www.cs.washinton.edu/homes/amir/opsis.html

More information

2 IEICE TRANS. COMMUN., VOL. 0, NO Table 1 Classication of Replacement Policies. Replacement Re-reference likelihood Non-uniformity Policies T

2 IEICE TRANS. COMMUN., VOL. 0, NO Table 1 Classication of Replacement Policies. Replacement Re-reference likelihood Non-uniformity Policies T IEICE TRANS. COMMUN., VOL. 0, NO. 0 2000 1 PAPER IEICE Transactions on Communications Exploitin Metadata of Absent Objects for Proxy Cache Consistency Jooyon Kim y,hyokyun Bahn yy, Nonmembers, and Kern

More information

environments with objects which diusely reect or emit liht [16]. The method is based on the enery radiation between surfaces of objects and accounts f

environments with objects which diusely reect or emit liht [16]. The method is based on the enery radiation between surfaces of objects and accounts f A Shared-Memory Implementation of the Hierarchical Radiosity Method Axel Podehl Fachbereich Informatik, Universitat des Saarlandes, PF 151150, 66041 Saarbrucken, Germany, axelp@tibco.com Thomas Rauber

More information

Dynamic Reconguration of. Distributed Applications. University of Maryland. College Park, MD Abstract

Dynamic Reconguration of. Distributed Applications. University of Maryland. College Park, MD Abstract Dynamic Reconuration of Distributed Applications Christine R. Hofmeister Department of Computer Science University of Maryland Collee Park, MD 20742 Abstract Applications requirin concurrency or access

More information

In Proceedings of ICPP 90, The 1990 International Conference on Parallel Processing, Chicago,Illinois, August 1990.

In Proceedings of ICPP 90, The 1990 International Conference on Parallel Processing, Chicago,Illinois, August 1990. In Proceedins of IPP 9, The 99 International onference on Parallel Processin, hicao,illinois, uust 99. SETH VLSI HIP FOR THE REL-TIME INFORMTION DISPERSL ND RETRIEVL FOR SEURITY ND FULT-TOLERNE zer estavros

More information

LEGEND. Cattail Sawgrass-Cattail Mixture Sawgrass-Slough. Everglades. National. Park. Area of Enlargement. Lake Okeechobee

LEGEND. Cattail Sawgrass-Cattail Mixture Sawgrass-Slough. Everglades. National. Park. Area of Enlargement. Lake Okeechobee An Ecient Parallel Implementation of the Everlades Landscape Fire Model Usin Checkpointin Fusen He and Jie Wu Department of Computer Science and Enineerin Florida Atlantic University Boca Raton, FL 33431

More information

Theory (CSc 473): Automata, Grammars, and Lanuaes. Let D = fwjw contains an equal number of occurrences of the substrins 0 and 0 Thus 0 2 D because 0

Theory (CSc 473): Automata, Grammars, and Lanuaes. Let D = fwjw contains an equal number of occurrences of the substrins 0 and 0 Thus 0 2 D because 0 Masters Examination Department of Computer Science October 3, 998 Instructions This examination consists of nine problems. The questions are in three areas:. Theory and Alorithms: CSc 473, 545, and 573;

More information

General Design of Grid-based Data Replication. Schemes Using Graphs and a Few Rules. availability of read and write operations they oer and

General Design of Grid-based Data Replication. Schemes Using Graphs and a Few Rules. availability of read and write operations they oer and General esin of Grid-based ata Replication Schemes Usin Graphs and a Few Rules Oliver Theel University of California epartment of Computer Science Riverside, C 92521-0304, US bstract Grid-based data replication

More information

Leveraging Models at Run-time to Retrieve Information for Feature Location

Leveraging Models at Run-time to Retrieve Information for Feature Location Leverain Models at Run-time to Retrieve Information for Feature Location Lorena Arcea,2, Jaime Font,2 Øystein Hauen 2,3, and Carlos Cetina San Jore University, SVIT Research Group, Zaraoza, Spain {larcea,jfont,ccetina}@usj.es

More information

Reducing network cost of many-to-many communication in unidirectional WDM rings with network coding

Reducing network cost of many-to-many communication in unidirectional WDM rings with network coding Reducin network cost of many-to-many communication in unidirectional WDM rins with network codin Lon Lon and Ahmed E. Kamal Department of Electrical and Computer Enineerin, Iowa State University Email:

More information

Reducing Network Cost of Many-to-Many Communication in Unidirectional WDM Rings with Network Coding

Reducing Network Cost of Many-to-Many Communication in Unidirectional WDM Rings with Network Coding 1 Reducin Network Cost of Many-to-Many Communication in Unidirectional WDM Rins with Network Codin Lon Lon and Ahmed E. Kamal, Senior Member, IEEE Abstract In this paper we address the problem of traffic

More information

Learning Deep Features for One-Class Classification

Learning Deep Features for One-Class Classification 1 Learnin Deep Features for One-Class Classification Pramuditha Perera, Student Member, IEEE, and Vishal M. Patel, Senior Member, IEEE Abstract We propose a deep learnin-based solution for the problem

More information

Web e-transactions. Svend Frolund, Fernando Pedone, Jim Pruyne Software Technology Laboratory HP Laboratories Palo Alto HPL July 12 th, 2001*

Web e-transactions. Svend Frolund, Fernando Pedone, Jim Pruyne Software Technology Laboratory HP Laboratories Palo Alto HPL July 12 th, 2001* Web e-transactions Svend Frolund, Fernando Pedone, Jim Pruyne Software Technoloy Laboratory HP Laboratories Palo Alto HPL-2001-177 July 12 th, 2001* E-mail: {frolund, pedone, pruyne} @ hpl.hp.com reliability,

More information

TOWARD A UNIFIED INFORMATION SPACE FOR THE SPECIFICATION OF BUILDING PERFORMANCE SIMULATION RESULTS

TOWARD A UNIFIED INFORMATION SPACE FOR THE SPECIFICATION OF BUILDING PERFORMANCE SIMULATION RESULTS Ninth International IBPSA Conference Montréal, Canada Auust 15-18, 2005 TOWARD A UNIFIED INFORMATION SPACE FOR THE SPECIFICATION OF BUILDING PERFORMANCE SIMULATION RESULTS Ardeshir Mahdavi, Julia Bachiner,

More information

Luca Benini Davide Bruni Alberto Macii Enrico Macii. Bologna, ITALY Torino, ITALY 10129

Luca Benini Davide Bruni Alberto Macii Enrico Macii. Bologna, ITALY Torino, ITALY 10129 Hardware-Assisted Data for Enery Minimization in Systems with Embedded Processors Luca Benini Davide Bruni Alberto Macii Enrico Macii Universita di Bolona Politecnico di Torino Bolona, ITALY 40136 Torino,

More information

Modular Design of Fuzzy Controller Integrating Deliberative and. Reactive Strategies. Technical Computer Science, Faculty of Technology,

Modular Design of Fuzzy Controller Integrating Deliberative and. Reactive Strategies. Technical Computer Science, Faculty of Technology, Modular Desin of Fuzzy Controller Interatin Deliberative and Reactive Strateies Jianwei Zhan, Frank Wille and Alois Knoll Technical Computer Science, Faculty of Technoloy, University of Bielefeld, 33501

More information

JAVA XML PARSING SPECIFICATION

JAVA XML PARSING SPECIFICATION JAVA XML PARSING SPECIFICATION Joona Palaste Abstract: XML is a mark-up lanuae, or more precisely, a definition of mark-up lanuaes which allows information of arbitrary kind to be accurately and hierarchically

More information

IBM Thomas J. Watson Research Center. Yorktown Heights, NY, U.S.A. The major advantage of BDDs is their eciency for a

IBM Thomas J. Watson Research Center. Yorktown Heights, NY, U.S.A. The major advantage of BDDs is their eciency for a Equivalence Checkin Usin Cuts and Heaps Andreas Kuehlmann Florian Krohm IBM Thomas J. Watson Research Center Yorktown Heihts, NY, U.S.A. Abstract This paper presents a verication technique which is specically

More information

The Gene Expression Messy Genetic Algorithm For. Hillol Kargupta & Kevin Buescher. Computational Science Methods division

The Gene Expression Messy Genetic Algorithm For. Hillol Kargupta & Kevin Buescher. Computational Science Methods division The Gene Expression Messy Genetic Alorithm For Financial Applications Hillol Karupta & Kevin Buescher Computational Science Methods division Los Alamos National Laboratory Los Alamos, NM, USA. Abstract

More information

Bus-Based Communication Synthesis on System-Level

Bus-Based Communication Synthesis on System-Level Bus-Based Communication Synthesis on System-Level Michael Gasteier Manfred Glesner Darmstadt University of Technoloy Institute of Microelectronic Systems Karlstrasse 15, 64283 Darmstadt, Germany Abstract

More information

Optimal Scheduling of Dynamic Progressive Processing

Optimal Scheduling of Dynamic Progressive Processing Optimal Schedulin of Dynamic roressive rocessin Abdel-Illah ouaddib and Shlomo Zilberstein Abstract. roressive processin allows a system to satisfy a set of requests under time pressure by limitin the

More information

Using LDAP Directory Caches. Olga Kapitskaia. AT&T Labs{Research. on sample queries from a directory enabled application

Using LDAP Directory Caches. Olga Kapitskaia. AT&T Labs{Research. on sample queries from a directory enabled application Usin LDAP Directory Caches Sophie Cluet INRIA Rocquencourt Sophie.Cluet@inria.fr Ola Kapitskaia AT&T Labs{Research ola@research.att.com Divesh Srivastava AT&T Labs{Research divesh@research.att.com 1 Introduction

More information

Aspect-oriented programming with AspectJ

Aspect-oriented programming with AspectJ Aspect-oriented prorammin with AspectJ & A. Colyer A. Clement Aspect-oriented prorammin (AOP) is an excitin new development in the field of software enineerin. The open-source AspectJt project has taken

More information

THE Cool PARALLEL PROGRAMMING LANGUAGE: DESIGN, IMPLEMENTATION, AND PERFORMANCE. a dissertation

THE Cool PARALLEL PROGRAMMING LANGUAGE: DESIGN, IMPLEMENTATION, AND PERFORMANCE. a dissertation THE Cool PARALLEL PROGRAMMING LANGUAGE: DESIGN, IMPLEMENTATION, AND PERFORMANCE a dissertation submi tted to the department of computer sci ence andthecommitteeonraduatestudies ofstanforduniversi ty inpartialfulfillmentoftherequirements

More information

Mission Families: a cost effective approach to Mission Control System development

Mission Families: a cost effective approach to Mission Control System development Mission Families: a cost effective approach to Mission Control System development Damiano Guerrucci, Vemund Reestad, Mario Merri, Pierpaolo Emanuelli European Space Aency (ESA) European Space Operations

More information

DSL Design. Overview of DSLE. DSL Design. DSL Desing. Domain specific languages

DSL Design. Overview of DSLE. DSL Design. DSL Desing. Domain specific languages Overview of DSLE Model driven software enineerin in eneral Grammars, and meta-models Code eneration Model-driven enineerin Goal: Raisin the level of abstraction from the computin domain to the problem

More information

JHDL - An HDL for Reconfigurable Systems Λ

JHDL - An HDL for Reconfigurable Systems Λ - An HDL for Reconfiurable Systems Λ Peter Bellows and Brad Hutchins y Department of Electrical and Computer Enineerin Briham Youn University, Provo, UT 84602 bellowsp@ee.byu.edu, hutch@ee.byu.edu Abstract

More information

Translator. Compiler Techniques. Runtime Techniques. Cluster of SMPs

Translator. Compiler Techniques. Runtime Techniques. Cluster of SMPs Compiler and Middleware Support for Scalable Data Minin Gaan Arawal Ruomin Jin Xiaoan Li Department of Computer and Information Sciences University of Delaware, Newark DE 19716 farawal,jrm,xili@cis.udel.edu

More information

Cached. Cached. Cached. Active. Active. Active. Active. Cached. Cached. Cached

Cached. Cached. Cached. Active. Active. Active. Active. Cached. Cached. Cached Manain Pipeline-Reconurable FPGAs Srihari Cadambi, Jerey Weener, Seth Copen Goldstein, Herman Schmit, and Donald E. Thomas Carneie Mellon University Pittsburh, PA 15213-3890 fcadambi,weener,seth,herman,thomas@ece.cmu.edu

More information

RE2C { A More Versatile Scanner Generator. Peter Bumbulis Donald D. Cowan. University of Waterloo. April 15, Abstract

RE2C { A More Versatile Scanner Generator. Peter Bumbulis Donald D. Cowan. University of Waterloo. April 15, Abstract RE2C { A More Versatile Scanner Generator Peter Bumbulis Donald D. Cowan Computer Science Department and Computer Systems Group University o Waterloo April 15, 1994 Abstract It is usually claimed that

More information

Stop & Copy. Gen1 Gen2 Gen3. top

Stop & Copy. Gen1 Gen2 Gen3. top A Customisable Memory Manaement Framework for C++ Giuseppe Attardi, Tito Flaella and Pietro Ilio Dipartimento di Informatica, Universita di Pisa Corso Italia 40, I-56125 Pisa, Italy email: attardi@di.unipi.it,

More information

M3AR: A Privacy Preserving Algorithm that Maintains Association Rules

M3AR: A Privacy Preserving Algorithm that Maintains Association Rules M3A: A Privacy Preservin Alorithm that Maintains Association ules Huynh Van Quoc Phuon, ran Khanh Dan, Vo hi Noc Chau Faculty of Computer Science and Enineerin, HCMU National University of Ho Chi Minh

More information

Performance and Overhead Measurements. on the Makbilan. Department of Computer Science. The Hebrew University of Jerusalem

Performance and Overhead Measurements. on the Makbilan. Department of Computer Science. The Hebrew University of Jerusalem Perormance and Overhead Measurements on the Makbilan Yosi Ben-Asher Dror G. Feitelson Dtment o Computer Science The Hebrew University o Jerusalem 91904 Jerusalem, Israel E-mail: yosi,dror@cs.huji.ac.il

More information

Texture Un mapping. Computer Vision Project May, Figure 1. The output: The object with texture.

Texture Un mapping. Computer Vision Project May, Figure 1. The output: The object with texture. Texture Un mappin Shinjiro Sueda sueda@cs.ruters.edu Dinesh K. Pai dpai@cs.ruters.edu Computer Vision Project May, 2003 Abstract In computer raphics, texture mappin refers to the technique where an imae

More information

Data-flow-based Testing of Object-Oriented Libraries

Data-flow-based Testing of Object-Oriented Libraries Data-flow-based Testin of Object-Oriented Libraries Ramkrishna Chatterjee Oracle Corporation One Oracle Drive Nashua, NH 03062, USA ph: +1 603 897 3515 Ramkrishna.Chatterjee@oracle.com Barbara G. Ryder

More information

Pizza ëordersky 1997ë. However, we felt that Pizza èand other similar lanuaesè suered from one fault that we had taken pains to avoid in the oriinal d

Pizza ëordersky 1997ë. However, we felt that Pizza èand other similar lanuaesè suered from one fault that we had taken pains to avoid in the oriinal d Multiparadim Extensions to Java Timothy A.Budd Department of Computer Science Oreon State University Corvallis, Oreon, USA November 1, 2000 Abstract In 1995 my students and I developed Leda, a multiparadim

More information

1 Theory 1 (CSc 473): Automata, Grammars, and Lanuaes For any strin w = w 1 w 2 :::w n, define w R to be the reversal of w: w R = w n w n 1 :::w 1. Su

1 Theory 1 (CSc 473): Automata, Grammars, and Lanuaes For any strin w = w 1 w 2 :::w n, define w R to be the reversal of w: w R = w n w n 1 :::w 1. Su Masters Examination Department of Computer Science March 27, 1999 Instructions This examination consists of nine problems. The questions are in three areas: 1. Theory and Alorithms: CSc 473, 545, and 573;

More information

An Internet Collaborative Environment for Sharing Java Applications

An Internet Collaborative Environment for Sharing Java Applications An Internet Collaborative Environment for Sharin Java Applications H. Abdel-Wahab and B. Kvande Department of Computer Science Old Dominion University Norfolk, Va 23529 fwahab,kvande@cs.odu.edu O. Kim

More information

A Flexible Generator Architecture for Improving Software Dependability

A Flexible Generator Architecture for Improving Software Dependability A Flexible Generator Architecture for Improvin Software Dependability Christof FETZER, Zhen XIAO AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 fchristof, xiao@research.att.com Abstract Improvin

More information

Minimum-Cost Multicast Routing for Multi-Layered Multimedia Distribution

Minimum-Cost Multicast Routing for Multi-Layered Multimedia Distribution Minimum-Cost Multicast Routin for Multi-Layered Multimedia Distribution Hsu-Chen Chen and Frank Yeon-Sun Lin Department of Information Manaement, National Taiwan University 50, Lane 144, Keelun Rd., Sec.4,

More information

Affinity Hybrid Tree: An Indexing Technique for Content-Based Image Retrieval in Multimedia Databases

Affinity Hybrid Tree: An Indexing Technique for Content-Based Image Retrieval in Multimedia Databases Affinity Hybrid Tree: An Indexin Technique for Content-Based Imae Retrieval in Multimedia Databases Kasturi Chatterjee and Shu-Chin Chen Florida International University Distributed Multimedia Information

More information

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton

Client Host. Server Host. Registry. Client Object. Server. Remote Object. Stub. Skeleton Compiler support or an RMI implementation usin NexusJava Fabian Bre Dennis Gannon December 16, 1997 1 Introduction Java [7] is a portable, object oriented prorammin lanuae. Its portability is obtained

More information

Low cost concurrent error masking using approximate logic circuits

Low cost concurrent error masking using approximate logic circuits 1 Low cost concurrent error maskin usin approximate loic circuits Mihir R. Choudhury, Member, IEEE and Kartik Mohanram, Member, IEEE Abstract With technoloy scalin, loical errors arisin due to sinle-event

More information

HMPI: Towards a Message-Passing Library for Heterogeneous Networks of Computers

HMPI: Towards a Message-Passing Library for Heterogeneous Networks of Computers HMPI: Towards a Messae-Passin Library for Heteroeneous Networks of Computers Alexey Lastovetsky, Ravi Reddy Department of Computer Science, University Collee Dublin, Belfield, Dublin 4, Ireland E-mail:

More information

[2] Gregory R. Andrews. Concurrent Programming: Principles and Practice. [3] K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object

[2] Gregory R. Andrews. Concurrent Programming: Principles and Practice. [3] K. M. Chandy and C. Kesselman. CC++: A declarative concurrent object References [1] W. B. Ackerman. Data ow lanuaes. IEEE Computer, 15(2):15{25, February 1982. [2] Greory R. Andrews. Concurrent Prorammin: Principles and Practice. Benjamin/Cummins, Redwood City, CA, 1991.

More information

A Recursive Algorithm for Low-Power Memory Partitioning Luca Benini* Alberto Macii** Massimo Poncino**

A Recursive Algorithm for Low-Power Memory Partitioning Luca Benini* Alberto Macii** Massimo Poncino** A Recursive Alorithm for Low-Power ory Partitionin Luca Benini* Alberto Macii** Massimo Poncino** *Universita di Bolona **Politecnico di Torino Bolona, Italy 40136 Torino, Italy 10129 Abstract ory-processor

More information

Process Synchronization with Readers and Writers Revisited

Process Synchronization with Readers and Writers Revisited Journal of Computin and Information Technoloy - CIT 13, 2005, 1, 43 51 43 Process Synchronization with Readers and Writers Revisited Jalal Kawash Department of Computer Science, American University of

More information

The goal of the Pangaea project, as we stated it in the introduction, was to show that

The goal of the Pangaea project, as we stated it in the introduction, was to show that Chapter 5 Conclusions This chapter serves two purposes. We will summarize and critically evaluate the achievements of the Pangaea project in section 5.1. Based on this, we will then open up our perspective

More information

Middleware for Semantic Multicast in Spontaneous Multi-hop Networks

Middleware for Semantic Multicast in Spontaneous Multi-hop Networks Middleware for Semantic Multicast in Spontaneous Multi-hop Networks Paolo Bellavista Carlo Giannelli 13.11.2012 - Mobilware'12 DISI, Università di Bolona Viale Risorimento, 2-40136 Bolona Italy paolo.bellavista@unibo.it

More information

Abstraction Library. Abstraction-Based Specializer

Abstraction Library. Abstraction-Based Specializer Bandera : Extractin Finite-state Models from Java Source Code James C. Corbett University of Hawai`i Department of Information and Computer Science Honolulu, HI 96822 +1 808 956 6107 corbett@hawaii.edu

More information

Implementation and Experimental Evaluation of. Graph Connectivity Algorithms using LEDA. Abstract

Implementation and Experimental Evaluation of. Graph Connectivity Algorithms using LEDA. Abstract Implementation and Experimental Evaluation of Graph Connectivity Alorithms usin LEDA Panaiota Fatourou y Paul Spirakis z Panaiotis Zaradis x Anna Zoura x Abstract In this paper we describe robust and ecient

More information

Grooming Multicast Traffic in Unidirectional SONET/WDM Rings

Grooming Multicast Traffic in Unidirectional SONET/WDM Rings 1 Groomin Multicast Traffic in Unidirectional SONET/WDM Rins Anuj Rawat, Richard La, Steven Marcus and Mark Shayman Abstract In this paper we study the problem of efficient roomin of iven non-uniform multicast

More information

Incommunicado: Efficient Communication for Isolates

Incommunicado: Efficient Communication for Isolates Incommunicado: Efficient Communication for Isolates Krzysztof Palacz Grzeorz Czajkowski y Laurent Daynès y Jan Vitek S 3 Lab, Dept of Computer Sciences, Purdue University, West Lafayette, IN, USA y Sun

More information

in two important ways. First, because each processor processes lare disk-resident datasets, the volume of the communication durin the lobal reduction

in two important ways. First, because each processor processes lare disk-resident datasets, the volume of the communication durin the lobal reduction Compiler and Runtime Analysis for Ecient Communication in Data Intensive Applications Renato Ferreira Gaan Arawal y Joel Saltz Department of Computer Science University of Maryland, Collee Park MD 20742

More information

Chapter 5 THE MODULE FOR DETERMINING AN OBJECT S TRUE GRAY LEVELS

Chapter 5 THE MODULE FOR DETERMINING AN OBJECT S TRUE GRAY LEVELS Qian u Chapter 5. Determinin an Object s True Gray evels 3 Chapter 5 THE MODUE OR DETERMNNG AN OJECT S TRUE GRAY EVES This chapter discusses the module for determinin an object s true ray levels. To compute

More information

Functional Elimination and 0/1/All Constraints. Yuanlin Zhang, Roland H.C. Yap and Joxan Jaar. fzhangyl, ryap,

Functional Elimination and 0/1/All Constraints. Yuanlin Zhang, Roland H.C. Yap and Joxan Jaar. fzhangyl, ryap, Functional Elimination and 0/1/All Constraints Yuanlin Zhan, Roland H.C. Yap and Joxan Jaar fzhanyl, ryap, joxan@comp.nus.edu.s Abstract We present new complexity results on the class of 0/1/All constraints.

More information

Reversible Image Merging for Low-level Machine Vision

Reversible Image Merging for Low-level Machine Vision Reversible Imae Merin for Low-level Machine Vision M. Kharinov St. Petersbur Institute for Informatics and Automation of RAS, 14_liniya Vasil evskoo ostrova 39, St. Petersbur, 199178 Russia, khar@iias.spb.su,

More information

Supporting Persistent Object Systems in a Single Address Space 1

Supporting Persistent Object Systems in a Single Address Space 1 Supportin Persistent Object Systems in a Sinle Address Space 1 Kevin Elphinstone, Stephen Russell, Gernot Heiser 2 School of Computer Science & Enineerin, The University of New South Wales, Sydney 2052,

More information

1.1 The Problem with Paed Virtual Memory The performance of out-of-core applications that rely simply on paed virtual memory to perform their I/O is t

1.1 The Problem with Paed Virtual Memory The performance of out-of-core applications that rely simply on paed virtual memory to perform their I/O is t Automatic Compiler-Inserted I/O Prefetchin for Out-of-Core Applications Todd C. Mowry, Anela K. Demke and Orran Krieer Department of Electrical and Computer Enineerin Department of Computer Science University

More information

Kent Academic Repository

Kent Academic Repository Kent Academic Repository Full text document (pdf) Citation for published version Barnes, David J. (1992) Observations and Recommendations on the Internationalisation of Software. Technical report., University

More information

Probabilistic Gaze Estimation Without Active Personal Calibration

Probabilistic Gaze Estimation Without Active Personal Calibration Probabilistic Gaze Estimation Without Active Personal Calibration Jixu Chen Qian Ji Department of Electrical,Computer and System Enineerin Rensselaer Polytechnic Institute Troy, NY 12180 chenji@e.com qji@ecse.rpi.edu

More information

... document map. Word category. blurred histogram. map. Word category. map Full text input. encoded context. encoded word.

... document map. Word category. blurred histogram. map. Word category. map Full text input. encoded context. encoded word. Exploration of Very Lare Databases by Self-Oranizin Maps Teuvo Kohonen Helsinki University of Technoloy Neural Networks Research Centre Rakentajanaukio 2 C, FIN-02150 Espoo, Finland ABSTRACT This paper

More information

f y f x f z exu f xu syu s y s x s zl ezl f zl s zu ezu f zu sign logic significand multiplier exponent adder inc multiplexor multiplexor ty

f y f x f z exu f xu syu s y s x s zl ezl f zl s zu ezu f zu sign logic significand multiplier exponent adder inc multiplexor multiplexor ty A Combined Interval and Floatin Point Multiplier James E. Stine and Michael J. Schulte Computer Architecture and Arithmetic Laboratory Electrical Enineerin and Computer Science Department Lehih University

More information

Appendix A - Glossary(of OO software term s)

Appendix A - Glossary(of OO software term s) Appendix A - Glossary(of OO software term s) Abstract Class A class that does not supply an implementation for its entire interface, and so consequently, cannot be instantiated. ActiveX Microsoft s component

More information

Code Optimization Techniques for Embedded DSP Microprocessors

Code Optimization Techniques for Embedded DSP Microprocessors Code Optimization Techniques for Embedded DSP Microprocessors Stan Liao Srinivas Devadas Kurt Keutzer Steve Tjian Albert Wan MIT Department of EECS Synopsys, Inc. Cambride, MA 02139 Mountain View, CA 94043

More information

abstract class CustomerRole abstract class ChargerRole abstract double cost(int qty, double unitprice, ItemRole item)

abstract class CustomerRole abstract class ChargerRole abstract double cost(int qty, double unitprice, ItemRole item) Component Interation with Pluable Composite Adapters Mira Mezini (mira@informatik.uni-sieen.de) University of Sieen Linda Seiter (lseiter@scu.edu) Santa Clara University Karl Lieberherr (lieber@ccs.neu.edu)

More information

FPGA Trojans through Detecting and Weakening of Cryptographic Primitives

FPGA Trojans through Detecting and Weakening of Cryptographic Primitives FPGA Trojans throuh Detectin and Weakenin of Cryptoraphic Primitives Pawel Swierczynski, Marc Fyrbiak, Philipp Koppe, and Christof Paar, Fellow, IEEE Horst Görtz Institute for IT Security, Ruhr University

More information

From Object-Z speci cation to Groovy implementation

From Object-Z speci cation to Groovy implementation Scientia Iranica D (2018) 25(6), 3415{3441 Sharif University of Technoloy Scientia Iranica Transactions D: Computer Science & Enineerin and Electrical Enineerin http://scientiairanica.sharif.edu From Object-Z

More information

Modied Java-to-bytecode compiler that extends the Java lanuae with eneralized operator overloadin; Array class libraries that use the operator overloa

Modied Java-to-bytecode compiler that extends the Java lanuae with eneralized operator overloadin; Array class libraries that use the operator overloa JaLA: a Java packae for Linear Alebra David F. Bacon IBM T.J. Watson Research Center 1 Introduction While the Java lanuae has taken the world by storm, it has left the scientic computin community out in

More information

BDK-1.3 Double Sheet Metal Monitor

BDK-1.3 Double Sheet Metal Monitor BDK-1.3 Double Sheet Metal Monitor Device Description GB 20.05-80, -81, -82, -93, 20.21-01 Edition 4.14 Contents 1. Application 1 2. Confiuration 1 3. Mode of Operation 1 4. Versions 2 5. Operation 3 6.

More information

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations

Outline. Computer Science 331. Information Hiding. What This Lecture is About. Data Structures, Abstract Data Types, and Their Implementations Outline Computer Science 331 Data Structures, Abstract Data Types, and Their Implementations Mike Jacobson 1 Overview 2 ADTs as Interfaces Department of Computer Science University of Calgary Lecture #8

More information

WAVELENGTH Division Multiplexing (WDM) significantly

WAVELENGTH Division Multiplexing (WDM) significantly IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, VOL. 25, NO. 6, AUGUST 27 1 Groomin Multicast Traffic in Unidirectional SONET/WDM Rins Anuj Rawat, Richard La, Steven Marcus, and Mark Shayman Abstract

More information

DESIGN PATTERNS IN GARBAGE COLLECTION. A thesis. submitted in partial fulfilment. of the requirements for the Degree

DESIGN PATTERNS IN GARBAGE COLLECTION. A thesis. submitted in partial fulfilment. of the requirements for the Degree DESIGN PATTERNS IN GARBAGE COLLECTION A thesis submitted in partial fulfilment of the requirements for the Deree of Master of Science in Computer Science in the University of Canterbury by Stuart Andrew

More information

2. Background. Figure 1. Dependence graph used for scheduling

2. Background. Figure 1. Dependence graph used for scheduling Speculative Hede: Reulatin Compile-Time Speculation Aainst Prole Variations Brian L. Deitrich Wen-mei W. Hwu Center for Reliable and Hih-Performance Computin University of Illinois Urbana-Champain, IL

More information

Indoor Presence System Using Wireless LAN

Indoor Presence System Using Wireless LAN Indoor Presence System Usin Wireless LAN WLAN Position Information Presence Indoor Presence System Usin Wireless LAN NTT DoCoMo has developed an indoor presence system usin mobile terminals with a wireless

More information

int FindToken(int *data, int count, int token) f int i = 0, *p = data while ((i < count) && (*p!= token)) f p++ i++ return (*p == token) typedef f <ty

int FindToken(int *data, int count, int token) f int i = 0, *p = data while ((i < count) && (*p!= token)) f p++ i++ return (*p == token) typedef f <ty Ecient Detection of All Pointer and Array Access Errors Todd M. Austin Scott E. Breach Gurindar S. Sohi Computer Sciences Department University of Wisconsin-Madison 1210 W. Dayton Street Madison, WI 53706

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

Language (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu. Abstract

Language (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu. Abstract Dartmouth Collee Computer Science Technical Report PCS-TR96-299 A Critique o the Telecommunication Description Lanuae (TeD) Brian J. Premore, David M. Nicol, Xiaowen Liu Department o Computer Science Dartmouth

More information

Department of Computer Science, University of Utah. 1 Introduction

Department of Computer Science, University of Utah. 1 Introduction International Conference on Computer Systems and Education, IISc, Banalore, 1994 Type-safe Composition of Object Modules Guruduth Banavar, Gary Lindstrom, Doulas Orr Department of Computer Science, University

More information